In the world of Agile testing, we have different types of activities for the different levels of the software development process. This article reviews the test activities related to the project and sprint levels.
Agile Testing Activities at the Project Level
The Agile testing activities at the project level are important because they relate to the definition of the test strategy, which is a crucial part of Agile software development. As part of the test strategy, we define key features of the testing process such as:
Test objectives – Every project should start by determining its objectives. Testing projects are not different, we need to determine the objectives that we want to achieve and what we should do to accomplish them, for example:
All tests with priority 1 and 2 should be executed and pass.
Teams must cover performance, load and stress tests.
All bugs should be fixed as part of the same sprint.
Full automation coverage of the component, integration and system levels.
The total test coverage of the project should be 90% or above.
Test items related to the Definition of Done (DoD) – One of the most important activities at the project level is to define the test items that will be part of the DoD used in the feature/story level.
Test Planning – Once you have a general idea of what is being developed, you can start to think of the test strategy you will follow throughout the project (and change it accordingly at the start of each sprint).
Test environments – Define the environments needed, which the team will use during test execution. Test environments include different aspects such as architecture, topologies, platforms, etc.
Tools – We can execute tests either manually or by automating and executing tests with dedicated tools. This raises questions like:
What tools can we use to support the testing process?
What tools will be used to implement automated scripts?
What tools will be used for test management?
Quality Metrics – Metrics are important as they allow us to determine how the team has progressed to achieve different quality aspects such as:
The average time for the development team to repair bugs.
Failed test cases percentage.
The number of bugs deferred.
The number of escaped bugs.
Closing knowledge gaps – To ensure that the teams can complete the testing efforts, you must identify and close the knowledge gaps in this area. For example, if the project involves security tests that have never been done before, a good idea is to bring in an external consultant who will guide the teams and provide all the information they need to meet the challenge.
Agile Testing Activities at the Sprint Level
Agile sprints include different activities such as coding, researching, and of course testing. As part of each sprint, the team needs to develop and test each user story, which involves test activities such as:
Estimating testing efforts of user stories – The development of each user story should follow a specific DoD that covers both testing and coding activities. Each one of these activities has a decisive impact on the effort estimates determined by the team.
Test Environments and Tools – Test challenges and efforts may be different from one sprint to another. Therefore, the team must always ensure they have the supported environments/topologies and the appropriate test tools needed.
Determining Test strategy – As part of each sprint, the team should determine their test strategy. The test strategy can be dedicated to either a specific feature or to multiple stories related to different projects.
Writing Test Cases – Each user story should be tested in one way or another. The team writes test cases to be executed manually or as part of an automated test.
Executing Tests – The basic thing is to actually run the tests, which takes place as part of every user story. Test execution can be done at different levels, including unit, component, integration, system and end-to-end tests.
Bug Tracking – As part of executing the actual testing during the sprint, the team will also need to open bugs, fix them and then verify the fixes.