Agile testing is becoming established.

Good hardware can be ruined by poor software

FORCE Technology is underway with a project called ‘Physics of Failure’. The key focus of the project is finding out what is required to develop reliable products. In the project, we examine all mechanisms leading to product failure. One of these mechanisms is software. Even though software is not of a physical nature, it is incorporated into the majority of products, and thus a critical parameter in ensuring the reliability of products.

Test-first principle

An idea from Agile software development that has become popular in recent years within certain areas is the test-first principle. The premise of the idea is that the test should be developed before you even start programming. The benefit of this is that when you develop the test, it has a major positive influence on the subsequent software development. In essence, when you develop software, first and foremost you consider the big picture, whereas when you test, you consider exceptions and boundaries. In other words, if the test is developed before the programming, you get many more details into your considerations while programming.

Unit testing and subsystem testing

One of the places where the test-first principle can be used is with unit testing. You develop some artificial program surroundings, where you can insert the unit to be developed. Once the unit is developed, it is inserted into the artificial environment and tested automatically. When the unit in question is to be extended, you also extend the test (still before you begin the development of the new feature).

The advantage of automating the test is that you can repeat the test simply and easily each time there are new changes – which ensures that code is still working with later changes.

Subsystems can be fully tested like units – in other words, there is no difference here. When we come to the graphical user interface, however, the way of testing changes.

Graphical user interfaces

The test-first principle also applies to graphical user interfaces, but there are some specific concerns that apply. To begin with, you can outline the interface and ask users to consider its comprehensibility and user-friendliness before you develop it.

When it comes to testing it, however, automating the test is not always that simple, but there are tools that can help you. In this case, you cannot be certain that the investment in automation is worthwhile. In some cases, you end up with a ‘manual’ test script and in practice, repeating your test requires more resources. You should still repeat your test, but not as frequently.

Reliable products

Software test is important, but only one piece of the jigsaw in creating reliable software and reliable devices. The examples illustrated in this article on the test-first principle should be considered by every organisation to find out whether they can be used and generalised in the development of the software for achieving the desired reliability.