Communicating test status is essential to ensure that tasks are completed in a timely and efficient manner. During daily stand-up meetings, test status can be discussed using standard test management tools and messengers. Test status is determined by whether all tests for the task have passed or not. If they have, the task is considered “Done”.
Test Progress
Tracking test progress is important in order to assess development progress. Scrum boards, burndown charts, and automated test results can be used to monitor progress. Progress has a direct impact on the Acceptance Criteria of a User Story, which is decided by Test Status. If there are any delays or blockages, the team must work together to resolve the issue.
In Agile Projects, changes are a common occurrence and can affect existing features from previous iterations. In these cases, manual and automated tests must be updated to handle regression risk. Additionally, regression testing must be done to ensure the quality of the product. It is important that the Agile testers provide the team with the necessary information so that the right decisions can be made in order to stay on track.
Product Quality
In order to ensure that the product quality remains at a high level, the Agile team should obtain customer feedback at the end of each iteration. This feedback will provide valuable insight into whether the product meets the customer’s expectations and can be used to inform and shape subsequent iterations. Gathering and reporting product quality metrics such as tests pass/fail, defects found/fixed, test coverage, test pass/fail rates, defect discovery rates, and defect density can also help to maintain transparency, gather the necessary metrics in a timely manner, report them immediately, and allow testers to focus on testing. Automating the process of gathering and reporting these metrics can also help to prevent any misuse.
Key Success Factors
In order for Agile testing to be successful, the following points should be taken into consideration: • Choosing the right Testing Tools that are compatible with Agile testing and its test-first and continuous testing approaches. • Automating tests earlier in the development lifecycle in order to reduce total testing time. • Proper planning, tracking, and re-planning of the testing activities in order to keep up with the development release schedule. • Ensuring that testers with expertise are part of the Agile team, as manual testing accounts for the majority of testing in projects. • Defining user stories that emphasize the product behavior expected by end users. • Identifying Acceptance Criteria at user story and task levels based on customer expectations. • Effort and duration estimation for testing activities. • Upfront test design in alignment with the development team to ensure production of code that meets the requirements. • Test first and continuous testing to ensure the done status is reached and the acceptance criteria is met. • Testing at all levels within the sprint and regression testing at the end of each sprint. • Collecting and analyzing product metrics that are useful for the success of the project. • Analyzing defects to determine which need to be fixed in the current sprint and which can be delayed to subsequent sprints. • Focusing on what is important from the customer’s point of view.
Lisa Crispin has identified seven key factors for successful Agile Testing: • A Whole Team approach that involves the developers training the testers and the testers training other team members. This encourages collaboration and contribution from everyone, and facilitates collaboration between testers and customers to ensure customer expectations are met. • An Agile Testing Mindset that prioritizes continually improving the quality of the product and encourages collaboration with the rest of the team. • Automating Regression Testing by designing for testability and driving development with tests. • Providing and Obtaining Feedback as a core Agile value, including relevant and necessary information from testers. • Building a Foundation of Core Agile Practices, such as testing alongside coding, continuous integration, collaborative test environments, working incrementally, acceptance of changes, and maintaining synergy. • Collaborating with Customers to elicit examples, understand requirements mapping to product behavior, set up Acceptance Criteria, and obtain feedback. • Looking at the Big Picture by driving development with business-facing tests and examples using real world test data and thinking about impacts on other areas.