Test@agile software development - a case study

February 27, 2019

Agile software development is the state-of-the-art procedure in project management. What role does testing play in the agile world? In the Scrum methodology, however, the terms QA or testing does not apply. How can we ensure the quality of our product through testing processes within agile development? Learn how testing drives our agile project development to deliver value.

The initial situation

Mimacom implements a web portal application for a large mechanical engineering company that combine several departments all in one place and accesses different systems via different interfaces. The project is developed agile using Scrum. The scrum process places higher demands on quality management.

By integrating test processes into the agile development process, it was possible to ensure a consistently high quality.

There are 3 key objects in Scrum, the roles, artefacts and events. By adding test objects to these three areas, we improve Scrum framework by the meaning of quality

2 new scrum roles

The Scrum framework defines the three roles product owner, scrum master and development team. We extended the Scrum roles with the roles tester and test manager

Scrum roles wWith added test roles

The tester is a member of the Scrum team. The role may be occupied by a developer performing technical component testing (i.E.unit test or code review), or by a separate person, who tests functionalities. The critical external perspective of the seperate tester prevents from becoming routine-blinded. Only if testing is firmly integrated into the development process problems can be solved early and reliably. The test manager serves as interface between testers, development team and product owner. It is highly recommended that the test manager/tester is integrated in the requirements engineering process as early as possible. Specification and prioritization of test cases performed by the test manager in close consultation with the requirement engineering guarantees quality and at least cost reduction.

1 new artifact

The artifacts include by default the product backlog, the sprint backlog and the productincrement. Often the definition of done and the definition of ready are added. We extend the articfacts by testreports.

scrum artefacts with added test artefact

The test reports describe the testcases and record the results of the tests. For each type of test, we have created individual report templates that meet the specific test objectives. Moreover we have used a Bug Template to report bugs in a uniform way. Requirements in agile projects are written as user stories. The test cases and the bugs point to the acceptance criteria, which are part of the user stories. Of course, the prerequisite for this is that the acceptance criteria is worked out in as much detail as possible.

Bug Template: template for bug report

3 new events

The Scrum framework specifies the events sprint, sprint planning, daily scrum, sprint review and sprint retro. We enhanced the events by three test events.

scrum events with added test events Within the development team, it is already common to process component testing (unit test and code reviews). These tests look at the developed functionality, but complex tests of the entire product are not provided in the Scrum method. We have added three tests as seperate events in sprint.

The acceptance test verifies the functionality based on the acceptance criteria. We have two times for acceptance testing. Once within the sprint, where the tester can check all the already implemented functionalities. The other after the development phase, where all functionalities are tested for their integrity and accuracy before the demo of the increment to the customer. The smoke test ensures that all interfaces are reachable after deployment to the test environment. It does not check content and thus does not last long. In regression test previous tests are repeated to ensure that modifications in parts of the software do not cause new errors.

As different projects follows different priorities, some other projects will need other test events. Here it is important to select suitable tests according to the needs.

Integration of test events in sprint

The sprint cycle with the additional events for testing

This is the chronology of the test processes into a sprint, how we lived it in our project. That may be adjusted for other projects.

The tester should have a professional test environment available as early as possible. The sooner the tester gets an environment that closely matches the production environment, the better. The test data used should meet exactly the test cases.

With using a structured test process, we can meet the requirements the scrum methodology demands for quality purpose.

Lessons learned

What did we learn about testing in agile projects? It is especially valuable from our experience

All in all, adding testing to our Scrum process has turned out to be very valuable. How do you handle testing in your Scrum process? Share your experiences and leave a comment below!

About the author: Ulrike Jungmann
Join us