5 Key Principles in Agile Testing

5 Key Principles in Agile Testing

Agile testing practice follows the rules of agile software development and it is a different mindset to traditional testing. Agile testing doesn’t mean just testing the way we’ve always done it, and the whole way the team thinks about testing should change. Some standard problems with testing are like this, “testing is always behind”, “there is blame around bugs”, “testers can’t work until development is complete” and so on. With agile testing, we aim to eliminate these problems. Here are the five principles that will help us understand the agile way of thinking.

1. Testing is an activity, not a phase

In traditional testing, testing happens at the end of the development. We have to wait until the development is finished and then start testing the issues. However, in agile testing tasks happen along with coding or documentation. We could start creating test cases before coding is started. Writing test cases and thinking about the positive and negative scenarios before, could also help developers if we inform them about the edge cases. Other tasks may be gathering or creating test data and building the test environment. Doing these beforehand help us save time and if we face problems, we would have enough time to fix them before the testing process started.

2. Preventing bugs instead of finding bugs

The goal of testing is thought to find bugs mostly. Some organizations measure productivity based on the number of bugs testers find or do not find. This approach supports the idea that testing happens at the end. With agile testing, we aim to prevent bugs by eliminating all the unknowns before starting coding. The developer, tester, and customer should have the same understanding of how the product should be. The tester should ask a lot of questions to prevent bugs. By finding answers to the questions, the developer and tester have the same understanding of the product.

3. The tester should not be a controller

Tester’s job should not be just checking how closely the developer follows the specifications. This checking could be automated so testers could do things that computers could not, like usability testing or exploratory testing. In agile testing, the tester should ensure that the feature meets the actual needs of the customer, not just the specification. The tester should understand what the customer is looking for in order to create acceptance criteria for the team.

4. The tester should help to build the best possible system

There is common sense that developers build the system and testers try to break the system. With an agile mindset, the goal should be to figure out how to test the system from the user’s perspective and share that with the developer before coding begins. If the developer builds a system to make these tests pass, the tester would have helped to build the system not breaking it.

5. The whole team is responsible for quality

In traditional testing, the only responsible is the tester for the quality. The tester decides whether the product is ready for release or not. With this approach, if a bug is found after release, the tester is the one to blame. In agile, the team is aware that testing is an activity that happens throughout the work and so the team is responsible for the quality. If there is a bug in production, testers are not blamed. The whole team takes responsibility and tries to find what goes wrong and how to prevent it in the future.

To sum up, all five principles are intertwined and they will be useful in adopting a quality-oriented approach. The mindset of considering testing as an activity should be considered first and testers should work closely with developers to carry out other principles on it.

Commencis Thoughts

Commencis Thoughts explores industry trends, emerging technologies and global consumer culture through the eyes of Commencis leaders, strategists, designers and engineers.