Software Testing Overview

Testing of the product is essential whether it's for software development or a game or even for mechanical equipment. Without the proper testing of products, it will not be an assured product having well-maintained quality and assurance cannot be given to those un-tested products. Hence testing becomes an essential phase of software development lifecycle. In this tutorial, you will be learning about the importance of testing, various testing types and its ways and phases.

Define Software Testing

Software testing can be defined as the action for checking if the tangible result or output of product matches with the projected or expected output (of your client) and testing also ensures that the product is free from any bug or defect. Testing of software also involves the implementation of a product's module or system's part for evaluating all or some of its properties. Through testing, testers can identify errors, gaps in the requirement or missing elements in a project or system (that has been developed). Testing can be done both manually or with the help of automated tools available in the market. Software testing can be broken into two main testing types - White box testing and Black Box Testing

Why is Software Testing Important?

Software testing plays a significant role in software or system bugs can be expensive and can lead to a dangerous situation. Bugs in software or application can likely lead to loss of monetary value, jobs or even loss of human. Here is some real-life example of how untested software can become hazardous:

  • It was April 2015, the Bloomberg terminal of London crashed because of software malfunction which affects 300,000+ traders on financial markets.
  • The car company, Nissan have to withdraw more than 1 million cars (which was launched in the market) because of failure in airbag sensory software. 2 accident has been reported due to this.
  • A company name 'Starbucks' was strained to close around 60% of its stores forcefully in U.S and Canada because of POS system-software failure.
  • Some Amazon's 3rd party retailers noticed abnormalities in product price which gets reduced to one paisa because of bug.
  • There are frequently heard vulnerability found in Window 10 which is all because of lack of proper system testing.
  • An Airlines' Airbus of China got crashed because of bug which leads to the mass killing of 264 naive lives.

Who does Testing?

This question's answer is depending on the process and its connected project-stakeholders. In the industry of information technology, big companies have team members who bear the responsibility for evaluating the project or software based on the requirements during the test phase. Moreover, some bugs can get detected if proper testing is done in the development of a software or application. So, people who can do testing are:

  • Software Testers
  • Project Developer
  • Project Lead
  • Team Manager
  • End Users

SDLC

SDLC abbreviated as Software Development Life Cycle can be defined as the stages of producing software having the maximum quality and least or minimum cost. It comprises of a detailed plan as to how development, altering, maintenance along with replacement of software or product take place.

SDLC contains some discrete phases which include planning, designing, construction, test, and deployment of the project. Some of the most famous SDLC models are:

  • Waterfall model
  • Spiral model and
  • Agile model

Here's a diagram of how the SDLC Cycle looks like:

Software Development Life Cycle (SDLC)