One might wonder – why software testing is necessary? Is it worth it to invest in testing? We’ve been wondering the same thing.
As a field of software engineering, testing is often underrated by digital agencies. IT companies tend to hire inexperienced employees as testers. The reason might be that testing is still not a very well-known discipline and a lot of people do not realize how important and crucial for the product this process is.
Testers’ lack of qualification is often risky and can be expensive, as well. Late bug detection can cause serious implications. That’s why it is important to find them as soon as possible, during the early stages of the project.
In this article, we collected many examples of what can go bad if the software is not tested properly. They are spectacular, so hold on tight. Let’s find out why the lack of testing can often have fatal consequences.
Before we start – let’s define what testing is
There are many different testing definitions. Their authors consider each of them to be the right one. One thing is for sure – testing is as old as software development itself. And we can say it existed since the first program was coded.
“Testing is an infinite process of comparing the invisible to the ambiguous in order to avoid the unthinkable happening to the anonymous.”
– James Bach
But what does it mean?
Simply put – testing allows us to verify and validate software written by programmers.
- Verification answers the question: “Is the product produced correctly?” (is the software following standards and specifications)
- Validation answers the question: “Is the produced product correct?” (is the software following the client’s needs and demands)
Big fails caused by lack of testing
Situations described below prove how critical testing can be. They happened in real life. These are large-scale projects and large-scale fuckups!
Number 1 – Small bug = big problem
In 1962, NASA and JPL built Mariner 1 – the first American spacecraft. It cost 18,5 million dollars. Political pressure was enormous. Rush and ambition instead of common sense and carefulness caused one of the most grotesque catastrophes in the history of space programs.
The mission began on July 22nd and its goal was Venus exploration. After 294 seconds of flight, the rocket received the autodestruction command. Long investigation showed that the emergency program had a very small bug: lack of “-” in the equation.
Number 2 – Old doesn’t mean better
European Space Agency wanted to have a bigger and faster rocket than “Ariane-4”. Building “Ariane-5” cost 7 billion dollars and took 10 years to complete. The audience witnessed rocket collapsing less than one minute after its take-off.
Some of the software was copied from the old rocket. During the flight, one of the functions reported an error that would input incorrect data into the internal navigation system. The main system would then command a sudden 20-degree bend. The investigation determined that there was no prior system testing. Also, there was no flight simulation.
Number 3 – Precision is key
Mars Climate Orbiter cost 700 million dollars to build. After flying for 10 months, it finally reached Mars. At 9:04 AM, after finding itself on the other side of the planet, space probe lost touch with control tower. Since the probe burned down in Mars’ atmosphere, the connection was lost forever.
As investigation showed, part of the software written in England operated in different units than the rest of it which was developed by NASA in the United States. The bug was serious enough to disrupt the work of the probe’s afterburners. Mars Climate Orbiter neared itself too close to the atmosphere and burned.
Number 4 – Small details matter
In 2008, a tragic accident happened – “stealth” type bomber B-2 which was built for 1.4 billion dollars crashed. It was proven that the flight control computers were provided with invalid data caused by moisture in units responsible for sending information from the sensors on the aircraft’s wings. As a result, the pilot decided to lift the bomber too early.
Number 5 – When a bug cost lives
Therac-25 machines were used in x-ray therapy in 1985-1986. They had 2 modes with different levels of radiation. If the operator switched the modes too fast, two sets of instructions were sent at the same time which means the patients would get a much higher dose of radiation. Life span after receiving 5gy (gray) of radiation is approximately 14 days. Therac-25 would give its patients a dose of hundreds of gy. At least 5 people died as a consequence of this mistake.
Number 6 – Timing is everything
Another tragedy caused by software bugs happened in 1991 in Saudi Arabia, military unit Dhahran. Surface-to-air missile MIM-104 Patriot didn’t prevent Scud rocket from hitting the base and killing 28 soldiers, destroying lots of infrastructures. Its battery was on for 100 hours straight. During this time the clock of the battery delayed itself for ⅓ seconds. What happened is that the system detected the rocket but it scanned the wrong part of the sky and didn’t manage to confirm the danger.
Number 7 – Same mistake twice
Two Boeing 737 MAX catastrophes. First in Indonesia in October, 2018 and then in Ethiopia in March, 2019. Total of 346 people died. The reason behind it was a defective software for MCAS (Maneuvering Characteristics Augmentation System). The airplane was receiving the wrong data from the angle of attack sensor which caused the launch of MCAS. The system tried to unnecessarily correct the aircraft’s position causing the crash.
Number 8 – Last but not least: the one with a happy end
Stanislav Pietrov actually saved the world from World War III. He checked the alarm sent on Monday, September 26, 1983, by “OKO” – a Soviet missile defense early warning program. The alarming claim that the United States launched 5 missiles in the direction of the USSR. It turned out that the program had a bug. The system would recognize solar radiation reflecting from the clouds above the US as a missile launch. This event was classified as top secret and revealed to the public only in 1998.
Now you know why testing is crucial
Examples above show some of the biggest and most expensive mistakes in history. They did not only cause huge financial losses and reputational damage. Some of them cost the most important price – human lives.
Unfortunately, we could recall even more examples like that. All those events could have been avoided if buggy software wouldn’t be authorized to use. Let’s face it – there is no way to know if there are any errors that can cause dangerous situations and malfunctions if there is no testing included.
Testing is an integral part of software development at iteo
So to answer the question – why do we need testing? Most importantly, to find out if a system or a product can be allowed to use. Testing provides us with information to evaluate the state of whatever we develop.
At iteo, we always pay attention to details and care about the high quality of what we create for our clients. Testing is one of the main steps in this process. What’s important is that we always pick adequate tools and procedures for testing. We know that e-commerce stores need different testing methods than flight control systems. Our Quality Assurance Team consists of experienced and qualified employees. All that so we can be sure that apps, websites and other products we build work according to their purpose.