Similarly to software development, testing can be done in the traditional way or by using agile methods. These two approaches differ from each other in several ways, for example in terms of practices, extensiveness of testing levels, and ways of thinking. The traditional testing approach often follows either the waterfall model or the V model. The best known agile methods include Scrum, Kanban, and Lean.
Recently, Gofore published a Built-in quality and security in DevOps booklet that describes the agile quality landscape of testing, that is, the DevSecOps model created by Gofore. This model combines testing, agility, and data security. To further clarify the purpose of the DevSecOps model, this blog post discusses five examples of the differences between the traditional and agile testing.
In the traditional model, test planning begins well before the software is developed. The creation of the test plan is often a long process, and the resulting test plan can be very heavy with details. The test plan is often followed carefully throughout the testing process.
In agile testing, the test plan is created in a more flexible way and it is kept relatively light. The resulting test plan is often not as detailed as in the traditional method, and the testing process is focused on making things proceed quickly. The test plan is continuously updated when needed as the testing process goes on.
In the traditional model, documentation is also more detailed, and the test cases are often very carefully described. They are based on documented definitions, which are created before the testing begins.
In agile testing, documentation is lighter and the focus is on testing the software rather than on creating documentation. User stories are often used in creating the test cases. They clearly define how users will be using the software, thus allowing testers to create useful test cases in an agile manner. Test cases are created once parts of the software are ready to be tested or the changes to the software version are known, and they are continuously updated as needed.
Download a free booklet: Built-in quality and security in DevOps!
3. Test timing and change management
In the traditional model, software development is either in its final stage or completed before testing begins. This takes up more time, as software developers have to wait for test results, and making the necessary corrections and changes to the software is inevitably slower.
In agile testing, testing is carried out during sprints or iterations, so software developers can quickly learn about the test results and bugs. Agile testing also allows quicker detection of bugs occurring in the early stage of software development, before the development work goes any further.
4. Extensiveness of testing levels
In the traditional model, software developers usually produce either a major release or an entire software for the different testing levels, which means that completing the testing levels takes a great deal of time and work. This usually requires plenty of preparation and planning so that the software can be tested as extensively as necessary.
In agile testing, selected testing levels are included in a sprint or iteration. This means that the developed software goes through unit testing, integration testing, and acceptance testing during the same sprint. This allows for quick development and modification of the software.
5. Customer engagement
In the traditional model, the customer’s experience and feedback on the software is usually received at the end of the software development process, during acceptance testing. If it turns out at this point that the software is not what the customer was hoping for, this can lead to problems and additional costs. This is why precise definitions help guide the software development process in the right direction.
In agile testing, customers are more actively involved in the testing process. They provide instant feedback during the sprints, and developers can react to it quickly. Of course this means that the customer is more engaged in creating the software, but it can also help the customer understand their own needs better.
The choice of testing approach often depends on the organisation’s practices and the method of software development. The practices of the traditional model and agile testing can also be combined into different hybrid models best suited for the needs of the particular software development project and the skills of the team.