Quality of testing is a key factor in agile software development

software development testing

Software development projects have traditionally been carried out using a waterfall model. The project moves forward in a process-oriented way, with the schedule, work steps and milestones being planned from start to finish as precisely as possible. In the waterfall model, the testing focus is often concentrated at the end of the project, which makes testing difficult to carry out. With deadlines knocking at the door, testing is often compromised and quality targets are neglected.

Agile methods, such as scrum, have been well established in software development for years. One of the absolute advantages of the agile development model is that you don’t have to plan the whole project at once, but build it piece by piece. You start with a baseline and set deadlines to work towards during the project, but it also allows you to build on new ideas as they emerge along the way.

A software development project using the Scrum model requires a team of developers, testers and customer representatives. The development team usually consists of 2 to 5 expert members from the areas of the project. In addition to the coders, there may be a security expert or a web designer, for example. The scrum master is responsible for removing any obstacles in the way of the development team.

From both the supplier and the customer side, the program owner is also involved. The supplier’s program owner takes care of the implementation of the project’s policies. The customer’s program owner acts as a bridge between the development project and the customer’s business. If the specifications need to be changed during the project, it is up to the customer’s program owner to ensure that the changes also take the customer’s business into account.

Testing plays as important a role in an agile project as it does in a waterfall model. However, the burden of testing is eased by the fact that not all the pieces need to be tested at once, but rather in batches, like a development project.

As a general guideline, the more software is tested, the better the quality. However, there are a few factors that have a significant impact on the likelihood of a successful outcome.

The first is to use standard solutions in development wherever it makes sense to do so. They are tried and tested solutions that are already in use and have already overcome the errors that have occurred. The more complex the environment, the more likely it is that the use of standard solutions will help to achieve the desired result.

A good product starts with high-quality specifications made by the customer’s representative. These form the basis for the test specifications and the happy case, i.e. how the software will perform in the optimum situation. A good tester is able to examine all cases outside the test situations and tries to break the implemented functionality. If this fails, the development is likely to have succeeded. Based on my own experience, I would say that a sufficient number of test environments and data, together with high quality specifications, form the basis for a successful development project.

Finally, it is worth mentioning that testing and quality control are also a collaboration between the supplier and the customer. The supplier bears the main responsibility, but the final quality of the software must be able to be assessed during acceptance testing by the customer. Sometimes we forget that computers and systems work according to code written by humans, and that human errors may be introduced during the development phase. Therefore, quality testing is key in any software development project.

Markku Kestikievari, Senior Consultant