The 'Physics of Failure' project aims to determine what is required to develop reliable products, examining all mechanisms leading to product failure – including software.

Software: a critical parameter for ensuring the reliability of a product

Even though software is not of a physical nature, it is incorporated into most products and is therefore a crucial parameter in ensuring product reliability.

Test first before you programme

The test-first principle from Agile software development has become popular in recent years. The premise is that you develop the test before you start programming. The benefit is that creating the test has a significant favourable influence on the subsequent software development. When you build software, 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 and perspectives that you can feed into your considerations when programming.

Unit testing and subsystem testing can improve software

Unit testing is one of the places where you can use the test-first principle. First, you develop artificial programme surroundings where you can insert the unit to be developed. Once the unit is developed, you insert it into the artificial environment and test it automatically. When you want to extend the unit, you also extend the test – this is all 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, ensuring that the code still works with later modifications. Subsystems can be fully tested like units, too.

Test user-friendliness of graphical user interfaces

The test-first principle also applies to graphical user interfaces, but some specific concerns apply. As a start, you can outline the interface and ask users to consider its comprehensibility and user-friendliness before you develop it. Automating the test is not always simple, but some tools can help you. In this case, you cannot be sure that the investment in automation is worthwhile. Sometimes, 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.

Software testing is a steppingstone to creating reliable devices

Software testing is an essential piece of the jigsaw when creating reliable software and devices. Any software-developing organisation could benefit from considering the test-first principle to determine whether it can be used and generalised in developing software to achieve the desired reliability.

Contact us to find out how we can help design and test reliable software and devices.