As is evident from its name, Agile testing practice follows the same principles of agile software development. That is, it is iterative, it promotes collaboration, it aligns development with the business needs and fosters simplicity and transparency. This means continuous feedback in the context of the agile workflow.
To explain the fundamentals of Agile testing, coaches Karen Greaves and Samantha Laing compiled this version of the Testing Manifesto. This is essentially a quick summary of the mindset that teams should adopt for agile testing. Since then the testing manifesto has been popularly used to better facilitate the understanding of the principles.
Here’s looking at the fundamentals to see how each point can help you shift left and move from QA to QE:
1) Testing throughout over Testing at the end:
Iterative development and testing has been around for a while. But many companies fail to test early and often in the cycle, ultimately adopting a partial approach to Agile. The key is to frequently produce working versions of the final system that have a key component of the required features and to keep testing continuously right at the outset.
To achieve this, treat QA and testing as an ongoing activity rather than a phase.
2) Preventing bugs over finding bugs:
This point is an extension of the ideal established in the first one. Starting the quality lifecycle as early as possible gives you visibility and insight into potential loopholes and failures. Several bugs can be weeded out at the requirements phase. QA involvement at the beginning essentially helps you prevent defects and saves considerable amount of time.
3) Testing understanding over checking functionality
The traditional mindset of testing to tick some or all of the boxes is at cross-purposes if you need to fast track your development and testing cycle. With the help of automated testing tools and practices, you can set up a large number of functionality checks. QA’s role is therefore enhanced now in ensuring the client requirements are well understood and met in the design, before development begins.
4) Building the best system over breaking the system
In a DevOps and Agile environment, teams should function as a whole, with a single vision and goal for the product or software. This means moving away from the siloed approach where developers want to build up to specs and testers’ role is to see how and in what ways the system breaks. With continuous feedback and collaboration, the intent for all teams is to ship the best quality release.
5) Team responsibility for quality over Tester responsibility
Quality is of course everyone’s responsibility. But when you have been working with a siloed approach, this becomes less obvious. Charles G. Cobb, author of “The Project Manager’s Guide to Mastering Agile,” mentions that ‘the best way to ensure code quality is to make the development team take responsibility for the quality of the product they are working on.’
This means thinking like a quality assurance professional, no matter what your role is.
Thus, we find more acceptance for test-driven development and other evolutionary practices that put the onus of quality on everyone.
By definition agile development needs pace. It is possible to lose sight of the forest for the trees if you are caught up in sweating the small stuff. The principles of agile testing serve as a constant compass to help you focus on the big picture and yet manage the speed and quality of your sprints.