Agile Testing and Test Management
Recently, I attended to a webinar called “Where Agile Testing and Test Management Collide”, that mainly focused on two tools for Test Management and testing: Zephyr and TestMaker. Basically, Zephyr is Test Management software and TestMaker is a tool for performance and automated testing (the demo of these two products took most of the time of the webinar, my opinion is that it was missing more information about how Agile Testing is performed).
In this post I will first analyze what Agile software development is, how testing in this model is achieved, and what features are needed in a Test management tool.
Agile Testing basically adapts to Agile software development. If you do a search for Agile development you will find the Agile Manifesto, written by a group of developers in 2001. According to the Manifesto, there are 12 principles of the model:
- Satisfy customer through early and continuous delivery of valuable software
- Welcome changing requirements even late in development
- Deliver working software quickly
- Business people and developers work together daily through the project
- Build project with motivated individuals
- To obtain information the most efficient method is face-to-face conversation
- Working Software is a measure of progress
- Agile processes promote sustainable development
- Continuous attention to technical excellence and good design
- Simplicity is considered to be the art of maximizing the amount of work not done
- The best architecture, requirements and design emerge from self-organized teams
- At regular intervals, team should talk about how to become more effective and adjust their behavior
In the Agile model, a project is divided in iterations that include: analysis, design, development, testing and acceptance testing when the product is demonstrated to stakeholders. Each one can last up to four weeks. The measure of progress is working software, so the goal of each is to have an available release with the minimum amount of bugs. At the end of each iteration, stakeholders and a customer representative need to review the progress and redefine the priorities of the project. (Wikipedia — Agile Model)
In Agile development, a project needs to adapt to changes quickly, there is not enough time for detailed documentation. When developers find questions, a customer representative needs to be available to respond and stakeholders need to produce documentation as required. As principle #6 in the manifesto mentions, face-to-face conversation is the most efficient way to obtain information; this applies to communication with the client as well as within the team. In Agile projects, there is usually a quick, daily meeting attended by the whole team, a customer representative and any other stakeholder. During these meetings, each member reports what they did the day before, develops the plan for the current day and reports any blocker.
In an Agile model, the testing team needs to adapt to a rapid development cycle, test with a customer perspective and have a constant communication with the whole team. Testers need to provide testing results as soon as possible so the developers can resolve any bugs; thus producing the least number of bugs at the end of an iteration. As mentioned before, in the Agile model communication is essential; therefore, the testing team needs to have a good relationship with the developers.
In Agile development, the test manager needs to ensure that the testing team is reporting issues, communicating these issues to the development team and giving daily reports about critical issues. See the testing cycle in the following graphic:
In this scenario, a test management tool ideally needs to have the following features:
- Divide testing into Releases/Iterations
- Link test cases with requirements
- Assign test cases to testers
- Create, edit and reuse test cases
- Link test cases with bugs
- Allow sharing of the results with the whole team
These features will help the Test Manager to adapt testing to a rapid development cycle and to keep the team updated with the current status of the project. In an Agile model, “the measure of success is working software”, so it is very important that the Test Management tool helps to keep the team informed about critical issues in each iteration.
Finally, I feel that a good Test Management tool is very helpful in Agile Software development; however, the Test Manager should never lose attention of the other aspects, like testing with end-user perspective and having good relationships with developers and clients, needed to achieve a collaborative and successful project.