Why is software testing important ?

What is Software Testing?

Software testing is a process where the quality engineer takes the Product Requirement Document and create test cases to validate what is produced by engineering matches what was designed. Moreover, the goal of software testing is to identify bugs or risks in the application under test (AUT) using different testing strategies. Engineer can do it manually or using automation. Typically, automation testing is used only after the feature is stabled.

While most applications under test don’t hold high levels of risk or liability, there are occasions where software bugs could cause expensive or even dangerous outcomes. Software bugs can potentially cause monetary loss and sometimes human loss. Here are some examples.

  • The Nissan car company had to recall 1 million cars due to a software bug found in its airbag system. In fact, two accidents were reported due to this software bug.
  • Failure in the Point of Sale system at Starbucks caused a temporary closure of 60% of their stores in the US and Canada. They had to give away free coffee because of the software bug. 
  • A software bug caused an Airbus A300 to crash killing 264 people.
  • A failed launch of a $1.2 billion military satellite, the costliest incident in history, was caused by a software bug.
  • The bank accounts of over 800 customers that were credited with a total of $920 million was traced to a software bug in the banking system.

As you can see, software testing is very important and necessary for most of the software products out there. Therefore, neglect in software testing can cause monetary damages and maybe even loss of life.

Types of Software Testing

Software testing can be classified into these categories.

  • Functional Testing
  • Non-Functional Testing
  • Regression (maintenance) Testing

Below are some examples of each category

Testing Category Types of Testing
Functional Testing Unit 
Integration 
Smoke 
User Acceptance 
Localization 
Use Case 
Non-Functional Testing Performance
Endurance
Load
Volume
Usability
Regression Maintenance
Regression (feature and bug)

Above are only a few samples of each category and there are many other types. Depending on the application under test, not all types are applicable. The scope is determined by the team.

Regression Testing

One type that should be a part of all testing strategies is regression testing. Whether automated or manual, regression testing is key to make sure the product is stable at every release. 

Because regression testing is highly mundane and repetitive, one of the best strategies is to outsource this type of testing to an experienced software quality assurance company. Doing so allows the internal QA team to effectively test new features and deep dive into complex features without worrying about bug or feature regression. Outsourcing your regression testing to the team at blueotterqa.com will give you this benefit for a fraction of the cost of a full time QA hire. Contact us if you would like a FREE consultation.