Integrated QA is the Need of the Hour
For almost two decades, Quality Assurance (QA) teams have played the role of gatekeeper in the world of software development ensuring that each solution works well and meets clients’ requirements before it is finally delivered to them. It is an important tool to build client trust.
In the traditional ‘waterfall’ model, most people acknowledge the role the QA team plays at the end of the software development cycle in validating all the code that has been written. With software development evolving into Agile and DevOps models that lay greater emphasis on timelines, it may sometimes be tempting to question the relevance of QA. Delivery cycles have gone from six months to six weeks, making development folks wonder about the value of an additional QA layer, given that it adds more time to the software development process.
Can Developers Become Testers
A prevalent line of thinking suggests that developers do the testing themselves, to reduce the number of hand offs and speed up the delivery process. Though it appears to be a compelling argument, in reality, the idea is severely flawed for several reasons.
Even in days past, when developers presumably had adequate time to write good, flawless code, there were always bugs to be fixed. Given that timelines are so much tighter in a DevOps environment; will developers make fewer mistakes or have the time to take on the additional responsibility of testing?
Secondly, the QA function needs a certain focus and temperament that is quite different from that of a developer. Developers will never have the depth of focus on testing that a QA team has, just like a QA person may not be the most proficient when it comes to writing code. Not just that, the team that writes the code are often too myopic in their view of the work to be able to spot errors with ease.
The QA function encourages manic focus on end customer-centricity, with a hawk-eyed emphasis on quality. Companies need to acknowledge that there is an urgent need for the QA function to evolve beyond their end-to-end blinkered focus, and become more integral to the development process in order to be relevant.
Integrated Quality Assurance is the Future
Many industry analysts have also recognized the role of QA in DevOps and are already beginning to refer to it as DevTestOps. Independent QA teams that were characteristic of the waterfall era may not be suited to the fast-changing world of DevTestOps. Therefore, it is time to relook at the monolithic and centralized QA functions and change how they interact with development teams. ‘Independent QA’ needs to transform into ‘Integrated QA’ while addressing the specific nuances of processes, tools and people as relevant to the new world.
Beyond End-to-End Testing
Today, the Agile process is a widely used methodology in digital projects as it focuses on shorter sprint cycles, where value is realized in weeks as against months. Therefore, the new QA process should also focus on testing that is not limited to black box / end-to-end tests, but starts contributing value as soon as a code is developed. Static testing, build verification tests, and component level security/performance tests become imperative. Involvement of QA teams during sprint planning and stand up meetings through the life cycle is also key.
The traditional UI-based validation tools are now giving way to service virtualization, API testing and performance engineering-focused utilities. Helping build quality into the code and catching potential vulnerabilities early is changing the entire dynamics of the tools market.
For a large telecom player based out of the United States, Infosys helped achieve twice-a-week deployments. A seamless zero touch Continuous Integration testing / Continuous Deployment framework was set up to support automatized script execution for functional and non-functional tests. 80% automated regression suite helped reduce cycle time by 25%.
New Skills for the Testers of Tomorrow
The test cases of tomorrow will be code snippets in Java, Perl, Python etc. and not the traditional English language test cases. This makes it challenging, especially since traditional QA has always emphasized domain, rather than technology skills. The testers of tomorrow will, however, need to be far more adept at technology than their peers from yesterday. For most organizations, this would mean a massive reskilling of the workforce and infusing new talent into the digital QA team.
Infosys helped a leading fashion retailer improve agility throughout the enterprise by transforming its QA organization into a federated Agile team implementing DevOps. The team was reskilled in Agile/DevOps practices and QA processes were realigned to the Agile/DevOps methodology, enabling more frequent releases leading to 80% improvement in time to market with zero critical defects leaked to production.
This new workforce is now called – SDETs, full stack QA, Integration Engineers etc. Irrespective of what we call them; they will need to be the new ninjas ready to work shoulder to shoulder with their development and operations counterparts. Also, they need to speak a common language of tools and technology.
QA to Align More with Business Goals
What will set the QA teams apart from the software developers will be their appreciation of the business domain. It will help them seamlessly translate user stories and priorities into a set of test objectives and scripts. This, when coupled with the right tooling, can significantly help the organization deliver on the clients’ business objectives.
Infosys helped a leading retailer looking to improve customer satisfaction and time to market, achieve eight releases per year with 100% schedule adherence and zero critical defects leaked to production, through continuous automation and analytics-based testing.
It is important that we accept the new normal where the definition of quality as delivered by the QA teams is not limited to absence of defects, coverage etc. instead, it actually ensures that the business goals are achieved with greater agility and minimum risk.
The whole debate of whether or not QA is required as a separate focus in the new world of DevOps is moot. The need for QA remains irrespective of the software development model. Instead, we need to focus our energies on a constructive dialogue of how we can reimagine QA such that it is relevant to the changing needs of business.