Why Do We Test Software?

Testing is a crucial part of any software development project, regardless of the industry, preferred methodology or how much you trust your development team. After all we all make mistakes. It is part of what makes us human. When it comes to software leaving a mistake unchecked, especially in terms of safety critical systems, can result in a disastrous outcome.

Of course the identification and removal of bugs is undoubtedly important, but is it the only reason to test software? Certainly not. There is so much more to testing than bug elimination. Just take a look at these top alternative benefits.

Assess If The Stated Requirements Were Met

Behind every system there should be a set of requirements, defining what the system is supposed to do and how it is supposed to behave. Ideally outlined at the start of a development, these requirements should act as a roadmap against which software should be developed and tested.

When it comes to writing code it is all too easy to become tunnel visioned. Focusing on a small collection of tasks and forgetting the system as a whole. By testing against the requirements you ensure that every expected function has been addressed.

Provide Validation That The Solution Meets The Need Of The User

In an ideal world requirements would be crystal clear, outline every desire of the client and never require a single alteration. Unfortunately, this is very rarely the case. User desires, and as a result requirements, have a tendency to grow and change over the course of a development. Therefore, even software that is developed to every single one of the original requirements may in fact, no longer meet the need of the user.

By getting the end user to interact with the software you can quickly find out if the system works as expected, or if there are requirements that have been overlooked or miscommunicated. In having this feedback you can rest assured that you have developed a suitable solution.

Provide Evidence Of Compliance To Safety Standards

When developing safety critical systems, you will need need to be compliant with the relevant safety standards for your industry. E.g. BS EN 50128 for rail, DO-178B for airborne systems.

In order to prove compliance to these standards you need evidence that your software runs both reliably and in accordance to the defined requirements, especially those related to safety. By testing your software, which, in the case of compliance to safety standards should be carried out independently, you can quickly acquire the evidence you need.

In addition to proving that your software system will run reliably, safety standards require evidence that if your system were to fail that it would do so in a safe way.

Allow For Interoperability

It is very unusual for a software system to be truly independent, without any need to interact with other systems or components. So whilst it is important to ensure that your solution runs correctly in its own right, some consideration needs to be given to how successfully it interacts with other systems.

For example, when making a ballpoint pen, each individual part, such as the cap, body and button mechanism, will all be produced and tested separately. When each of these parts have been produced they will be assembled and tested to see if they work together in the correct manner. After all, just because the process to make the cap has been followed to the letter and it has passed all of its individual test, it does not guarantee that it will fit onto the body.

Ensure Minor Changes Don’t Impact The System As A Whole

Software requirements will change over time. Unfortunately, this is an unavoidable truth. Some changes may make themselves known during the original development period, whilst others may take several years to appear.

By making modifications to any pre existing software system, you run the risk of introducing new bugs, and in some cases reintroducing previously resolved bugs. Increasing the chances for working components to fail. However, re-running original test cases, alongside the new, will help to ensure that in making these alterations you don’t break the original system.

More From The Blog

IR35, Here it Comes Again…

IR35, Here it Comes Again…

IR35, Here it Comes Again...In 2021 the reform to IR35 Off-Payroll rules is to be rolled out to the private sector. As before the reform will only affect companies that do not meet the following attributes: an annual turnover below £10m fewer than 50 employees or a...

Solving the Resource Conundrum

Solving the Resource Conundrum

Solving the Resource ConundrumPicture this. One minute all is fine and dandy, you have access to all the resources you could possibly need, then bam an unexpected challenge arises. Suddenly you find yourself lacking the capacity to meet the new need. What are your...

Quality – An Aid to Produce Consistent Rubbish

Quality – An Aid to Produce Consistent Rubbish

Quality - An Aid to Produce Consistent RubbishAnother year has passed, and myself and a colleague have hosted a BSI auditor for our annual ISO9001/TickITplus check-up, and in fact this was more than the regular check, in that it was our 3-year re-certification audit,...

The Hazards of Legacy Systems

The Hazards of Legacy Systems

The Hazards of Legacy SystemsBeing the owner of a software system with a dedicated customer base sounds like the kind of position one would like to find themselves in. At least until it gets superseded and you have to face dealing with a legacy system. Many developers...

How to Test Without Access to The Test Environment

How to Test Without Access to The Test Environment

How to Test Without Access to The Test EnvironmentIn many of our previous articles, we have expressed the importance of achieving a high standard of testing. Potentially blocking this achievement, several factors can come together to affect the quality of your...

The Technical Workshop – How To Make Them Work For You

The Technical Workshop – How To Make Them Work For You

The Technical Workshop - How To Make Them Work For YouAnyone experienced in product design will understand just how valuable a facilitated workshop can be. Bringing together a project's key stakeholders into a single space allows for the exploration of diverse...

Developing Software for Safety Related Systems

Developing Software for Safety Related Systems

Developing Software for Safety Related SystemsSoftware systems should always be both robust and reliable, however the moment you introduce a safety element, this need for reliability increases significantly. The level of safety required is governed by the severity and...

How to Choose an Outsourcing Partner

How to Choose an Outsourcing Partner

How to Choose an Outsourcing PartnerHaving recognised a need to outsource, and worked your way through the initial preparations, you are now in a strong position to seek out a suitable partner. Choosing an outsourcing partner is no trivial affair, so taking the time...