After a new version has been deployed on the QA environment, the new functionalities are tested. Up to now, only an automated unit and integration test was carried out within the build, which ensured the technical correctness of a unit or the integration of modules with each other. In the context of DevOps this is also called continuous testing, which provides for the process of executing automated tests as part of the deployment pipeline.
In addition to automated tests, manual testing of the new functions and features is often necessary. This is the case, for example, when the automation of test cases causes high costs. In these cases a structured test management is helpful. Test management is an accompanying measure that covers the entire test process. It includes planning, monitoring and controlling the activities of all test steps. Keeping an overview of all activities, data and status is the art of good test management. For this reason, test management is ideally always tool-supported in practice, as this is the only way to ensure that there is a complete flow of information between all project participants.
In general, testing follows the following steps:
- After sprint planning, the team transfers requirements / user stories to the sprint backlog.
- A developer pulls a requirement / user story / bug.
- He discusses the details with the responsible tester and / or describes details in the work item.
- The tester creates test cases for the respective requirement based on the work item and the details (test-driven development).
- The developer implements the requirement / bug fix and briefly tests the implemented functionality (also in consultation with the tester if necessary or based on the test cases created).
- The tester starts his test of the requirement. In case of an error, a bug is created and assigned to the developer. In individual cases, details can also be discussed with the developer.
- Regression or error post-tests are used to validate the fix and set the status of the bug to Done.
- If all test cases of a requirement have been successfully completed, the owner accepts the requirement. After successful acceptance, the owner sets the requirement to Closed.
The status progression of a bug from identification to resolution can be mapped in Azure DevOps as follows: