Author: Deniz DEMİRBAŞ, Software Engineer – Corporate Applications Group
Technology is growing as fast as world population. The swiftness of technological advancements are affecting every human being on this planet. With this “quick” trend, people are also involving into the technology rapidly. From a CEO of a company to a 4 years old child, everyone got something to catch. Every small piece of data has an incredible value depends on who would like to know. Air Traffic Controller would like to know about weather to inform pilots for “safe landing”, passengers want to learn about it for their holiday and more.
Since “The Internet” became the most popular way of spreading the information, software applications became the cheapest, fastest and most reliable tools for sharing the information. However, the software solutions are intangible and this is the point that makes them unpredictable and hard to measure. The only thing that we can measure in a software is our “experience”. Software is made by software engineers but sometimes a team of engineers may not be enough to turn a software into a product. Since there is human factor in it, developing a software needs testing with a real user perspective.
The most important thing in every work is surely reaching the achievements. One of the most significant reason of testing is to avoid failures in software. In other words, testing helps to ensure customer happiness with a high-quality product.
Let’s consider to create a software for online shopping. We need to define some steps such as:
- Design the software for every platform like android, ioS, web, etc.
- Configure ordering process
- Get the recent prices from the seller in run time
- Transfer money easy and fast from buyer to seller
- Deliver the order from seller to the buyer
In every step we need detailed tests to reach achievement. Otherwise, if there is a problem in any of those steps in the real life, both buyer and seller may be disappointed due to the failure of software.
What is testing?
Testing is the process of analyzing and proving product’s qualifications. In software testing, there are lots of dependencies. Depending on the size of the software, methodologies, scope, complexity etc. software testing has different aspects.
Most usually, software testing has the following objectives:
- Finding defects and reporting,
- Examine the level of product,
- Gaining confidence about the level of quality,
- Providing information for decision-makers,
- Ensuring that the project is still within the scope,
- Validating and verifying the requirements of software,
- Preventing defects and lowering the risks.
Why software testing is vital?
Since, software are products made for specific purposes, even a small mistake may cause vital results. At this point, software testing is the most crucial part of software development process.
Without testing the software on development process, the following cases may occur and they are well known cases for the test engineers.
- “I am sure that it was working yesterday!” says software engineer – But, test engineer is sure that it was not working before.
- “It is too complicated, I do not understand why I need to do this first?” says user – Before user reacts, test engineer can alert program manager / analyst about the complexity.
- “Automation is not needed at this phase.” says program manager – test engineer can find recurrent mistakes from start to end via automated tests.
Recent top software failures 
- 2014, Toyota: Toyota has launched a global recall of its redesigned Toyota Prius Sedan after reports of a potentially deadly defect involving the parking brake. The company has been recalled 340,000 units of the Prius globally, including 212,000 in Japan and 92,000 of the 2016 and 2017 models in the U.S.
- 2015, Starbucks: In April 2015 Starbucks witnessed a register malfunction which according to Starbucks, was caused by an ‘internal failure’ during its routine refresh. This resulted in 60 percent of stores in the US and Canada being forced to close. During this period some stores were giving coffee away for free.
- 2015, F-35: In March 2015 F-35 Joint Strike Fighter aircrafts fell victim to a serious glitch, a software bug meant that the aircraft could not detect targets correctly. The sensors on the plane couldn’t tell the difference between a singular or multiple threats.
- 2015, US Prisoners: In December 2015 a glitch cause more than 3200 US prisoners to be released early because of the software wrong calculations.
- 2016, Google: In mid-January 2016 the Nest ‘smart’ thermostat (owned by Google) was hit with a software glitch which left users, literally, out in the cold. A software update went wrong.
As a conclusion, technology is an indispensable demand and part of our future, so we are using technology to have better lives, that’s why we need software. Better software testing creates more qualified software which make us reach to reliable and flawless lives. And it should not be forgotten that a small error that is ignored or overlooked can lead to an irreversible error.