Agile methods currently applied in the field of software development also play a large role in the finance industry. The main reasons for employing agile models rather than the classic waterfall model lies in increasing the speed of a process, i.e. enabling a more rapid deployment of a software. However, a variety of factors must be taken into account in order to realize this benefit. One factor consists of a modified approach to testing, which must be conceptualized as part of the overall agile development process and must be regarded as indispensable to the success of the project. Another factor is a change in the way partners participate in the development process. This new role allocation is characterized by a more intensely solution-focused interaction of the team members across the organizational division between the architectural and procedural units.
The goal of agile software development is to reduce the complexity of the development process by reducing bureaurcratic effort, cutting the number of rules, and an employing an iterative process. Software is usually delivered for testing in a two-to-four-week rhythm. The first software components are provided early on for technical testing, which makes it possible to derive a business value from the development in a very early phase of the process.
Agile development processes are characterized by high revision frequency and, as a result, a high degree of change within the software delivered. This is facilitated not only by the short intervals between deliveries of software ready for testing, but also through the continuously changing requirements, which are honed and finalized more intensely than in classic forms of project sequencing throughout the development process. Both of these factors result in an increase in significance for the regression test. A high degree of test automatization is necessary in order to maintain the necessary rapid reactive ability even in the testing phases. Through use of a Continuous Integration Environment for automated unit, integration and system tests, software modifications are selected according to a fitting risk-oriented strategy and then carried out as regression tests.
Figure: Agile approach vs waterfall model in software development
While these tests, conducted throughout the agile development process, provide results early on regarding the quality of the individual components delivered, a significant overall result is not achieved until closer to the end of the entire development cycle, as in the classic models. A complete parallelization of the acceptance test (UAT) is not possible. However, this limitation does not relativize the advantages of the agile test, rather, it is necessary to combine the agile approaches in the first test phases (unit test, system integration test) in a sensible manner with classic end-to-end procedures during the acceptance test phase, in order to generate an optimal test procedure for agile software development projects. Early quality assurance of the first delivered components and the feeding back of these into the development process enable an increase in quality and thereby offer the best prerequisites for a stable acceptance test.
The modified requirements for the test procedure in agile development projects has an impact on organizational aspects. Agile software development is characterized by tight coordination and communication processes. The core team of developers and testers works together and in close cooperation with the client’s IT team to implement the software in development. The test specifications are thereby developed in parallel with the software that is to be tested. The collective analysis of the specialized requirements assumes close cooperation between software developers and testers and leads to a collective understanding of the goals and risks inherent in the realization of the project.
The operational division between the development and the test teams is thereby dissolved in favor of closer collaboration and a higher degree of rigor when it comes to content. Simultaneously, the development is safeguarded through the rapid provision of feedback, which contributes to an overall increase in quality. The classic view that the tester simply checks the implementation of what the developer has programmed based on a requirement, is therefore shifted to the benefit of a situation of equal cooperation.
The prerequisite for agile testing is an open development culture and a new team structure. The newly required close interaction with development colleagues and tests of individual components conducted early on in the process lead to changes in job requirements for testers. As a result of these changes, more comprehensive qualifications, especially a deeper knowledge of technical aspects, become necessary.
In a nutshell: Agile processes are not limited to the development areas, but also have an impact on other areas of the process, particularly on test management. The speed and flexibility of the agile development process and the resulting higher revision frequency serve as special requirements that can be realized only to a limited extent with traditional test procedures and allocation of responsibilities.
The success of agile projects therefore depends on an overall agile approach that goes beyond narrowly defined software development processes to integrate additional components, in particular test management. When test procedures and test teams are adapted to the changed requirements, they can contribute significantly to the success of a project.