Testing approaches have changed remarkably, thanks to Agile and subsequently DevOps practices.
As the new world order decrees testing faster and earlier, while using automation, it seems that quality gets the short shrift.
It is not as if agile methodology undermines the value of QA. On the contrary, the shift left principle and testing early require QA input at every stage in the sprint.
Yet, it still poses a unique challenge because in an Agile world, speed is everything. But good QA and validation take time.
Different organizations approach this dilemma in their own ways. Some have already foregone QA practice as we know it. Alternatively, some teams only test in piecemeal on the outputs of each sprint. That is, they don’t test the product as whole or in the context of requirements.
Since both traditional lab and outsourced testing are inadequate and slow to match the pace of agile testing, they are indeed killing the QA function.
The end of traditional testing as we know it
One major challenge that businesses have faced first-hand is the lack of talent. For many, the QA role is just a stepping stone that leads to more attractive roles like product manager or developer.
This causes a talent shortage because smaller QA teams can’t scale up to the speed and volume of the software being developed and released.
Platform diversification and device proliferation have further compounded this problem.
Limited QA resources in teams can’t possibly achieve the test coverage required to make sure that releases don’t carry critical bugs. New devices like voice assistants and more complex IoT testing pose significant quality risks for internal QA.
You either need to scale up with a diverse and broader skill-set within your QA team or need a bigger budget to deal with this growing challenge.
Unfortunately, the outsourcing/offshoring model has not seen much success either in keeping up with the demands of DevOps and Agile environments. It might work well as a stop-gap solution or a short-term measure but it will take a while before they can provide the kind of test coverage and speed that Agile demands.
How QA can survive Agile and DevOps?
In a sense, Agile and DevOps have probably rung the death knell for traditional QA.
But the QA function has risen like the phoenix with Agile Testing, Continuous Testing and various other strategies to match their pace with the modern development demands:
Focus on new QA skills
The World Quality Report 2018-19 notes that new trends like IoT, blockchain and AI require new skills and generate new roles for QA and testing professionals. The report notes that trends such as AI, IoT, and blockchain all require new skills and roles for QA and testing professionals. The report has four key recommendations for hiring QA talent:
- Recruiting agile test specialists with automation skills, or reskill existing QA team members
- Get software developers in test (SDETs) into the team.
- To make sure that the testers have skills in security, nonfunctional testing, test environments, and data management.
- Hiring QA experts with AI skills.
Shift Left Testing
Shift Left as the name suggests shifts the QA process to the left of the development phase. So, testers and automation engineers need to be a part of the product development right from the start of the product lifecycle.
Unlike traditional testing methodology, where testers get involved once the product/feature is developed, Shift Left requires the testers and QA team to get involved right from the product ideation to requirement gathering to development. Testers continue to test in parallel of these development stages.
The approach relies on continuous testing and shorter feedback loops.
DevOps relies on lean methodologies aimed at reducing manual hand-offs between development, operations, and ultimately customers.
DevOps needs test automation to shorten the feedback loop and integrate continuously. The adoption of automated testing has grown remarkably in the past couple of years.
And while automation is not a complete substitute for all testing, it enhances your strategy and speed considerably. For instance, lower priority tests such as smoke, sanity and regression testing can be taken off the QA teams to free up bandwidth for more strategic testing.
Choose the test automation tool based on your team size and specific requirements. You will need test automation expertise in-house to get it rolling.
Automation is awesome but it is no cure-all. It won’t be able to resolve many potential testing challenges for your team.
This is because automation uses a consistent approach and repeated steps/data to execute same workflows over and over again.
Manual testing on the other hand can provide much creative input and choose any means to achieve the goal with the help of Exploratory Testing The ideal world scenario combines the two approaches for optimum results.
Using automation for the most repeated workflows aided by traditional scripted testing, you can free up bandwidth for manual testers to make the most of exploratory testing. This helps them identify crucial defects and enhance the overall quality of software to meet the practical needs of users.
After all, one key benefit of exploratory testing is to unveil major real-world defects. This fits in nicely with the DevOps paradigm. The rest of testing requirements can be covered using context-driven testing, with well-defined charters for specific areas of focus and manual exploratory test sessions.
The evolving needs of DevOps and Agile teams demand a shift in the conventional role of QA and the way we look at testing and QA. It demands many new skills, re-skilling and a process/culture change to fit the ever-changing landscape.