Independent Testing in Agile Development
One of the principles of Agile is to develop small, manageable pieces of functionality known as user stories. Each story goes through a cycle of design, development, and testing, resulting in a potentially releasable increment of software. However, the question remains: who should perform the testing?
An agile team typically involves developers creating unit tests, and one tester in the team performing test tasks. However, this approach can lead to a loss of independence and objectivity for the tester. To avoid this, a separate team of testers can be established, who are not involved in the development process and can bring an unbiased perspective to testing.
Having a separate test team provides independence and objectivity, ensuring that testing is not biased towards the development team. The agile team can then call the test team to test the user stories for them. This is done mostly at the end of the sprint. However, lack of time and understanding of the product can be a problem for this approach. It is essential to ensure that this team has a good understanding of the features, and communication with stakeholders and developers should also be effective to be successful.
Another approach is to have a separate test team like the previous solution. The testers of that separate team are lent to another team in the long term. This approach provides independence and ensures that testers understand the product and have a better relationship with developers and business stakeholders. By working collaboratively with the development team, independent testers can provide valuable feedback and ensure that testing is comprehensive and effective.
While having a separate team of testers can be helpful, it is not always necessary to achieve high-quality software. Developers might be irresponsible for quality as they might assume that independent testing team is there to find the issues within the system. In this case the quality mindset of the team is going downwards. That is why I still advocate to have a dedicated test profile in an agile team.
As a tester who has worked several years in different agile teams, I have seen the importance of ensuring that each story is thoroughly understood to detect gaps that could lead to defects. This means that testers need to have a good understanding of the features, business requirements, and end-user needs. Yes, when testing is performed by the development team, there is a risk of overlooking certain aspects that could lead to issues later on. But when that happens, a new story or bug is created and it is fixed with a high priority. That is the flexibility that agile advocates.
Independent testing can be usefull in Agile development to ensure that defects and failures are detected early. While having a separate team of testers can be beneficial, it is not always necessary to achieve high-quality software. The key is to ensure that testers have a good understanding of the features and work collaboratively with the development team to ensure that testing is comprehensive and effective. In the end, the goal is to deliver high-quality software that meets the needs of end-users while maintaining flexibility and agility in the development process.
References
- Photo by Markus Spiske