Non Functional testing with its 6 prime pillars – Load/Performance, Disaster Recovery (Including HA), Security, Accessibility, Usability and Operational Readiness is customarily considered late during the development life cycle. Currently in our waterfall world, majority of projects impatiently gale through to ensure deployment dates are met without clearly defined NFRs and hence compromise on non- functional test quality.
We all have experienced our average non-functional test life cycle range between 3-7 weeks depending upon complexity of application being tested. With the new DevOps/Agile practice, it will be abridged to ~2 weeks for any application? Can we reduce timelines and deliver quality in new ways of working?
Based on my experience, we can certainly deliver outcomes within 2 weeks if we have right skilled resources and teams follow basic DevOps principles of transparency, inspection and adaption.
Right from the beginning of iteration (sprint), non-functional architects being part of DevOps eco-system should analyse features, stories or themes and provide recommendation. If non-functional stories don’t exist, Can architects/SMEs write user stories? Answer is “YES”. Product owner, Operational SME, Business Analyst and tester can together define “testable” NFRs to precisely measure menaces concomitant along fetter of systems. This conforms to DevOps principle which accentuates “working with business” and “understanding business/operational inputs” along the delivery life cycle.
During the sprint, Non-Functional SMEs perform testing continuously from smallest testable component to a final solution. Testing is performed with correct workload, code profile, interactions, guidelines and compliance aspects. This conforms to DevOps principle which accentuates “inspection” along the delivery life cycle to detect undesirable variances.
Along the sprint journey, business and operational teams provide inputs based on market behaviour and production diagnostic information available to fine-tune and adjust test criteria for minimizing deviations before deployment. This conforms to DevOps principle which accentuates “adaption” along the delivery life cycle to adjust and improve. All of the above can support speed to market, robust operating systems, better communication, improved collaboration and modernization but not without numerous challenges along the journey to set this up initially…………