What is Software Testing? - Best Practices & Methods

Instructor: Sudha Aravindan

Sudha Aravindan has taught high school Math and professional development in Information Technology for over 10 years. Sudha has a Doctorate of Education degree in Mathematics Education from the University of Delaware, USA, a Masters degree in English Literature from the University of Kerala, India, a Bachelor of Education degree in Teaching of Math from the University of Kerala, India, and a Bachelor of Science degree in Math, Physics and Statistics from the University of Kerala, India. Sudha has a certificate in Java programming and Statistical Analysis.

When you play a video game, you are using software that allows you to interact with the events and objects in the game. Ever wondered what goes into making the game run without errors? In this lesson, we will learn about software testing, which allows all software to be tested before it is made available to everyone.

Software Testing

When you play a game on your computer, run an app on your mobile device or use the computer to write a Word document, you are using a software program. A software program is a computer language that is used to write applications that interact with human beings and run on electronic devices.

Software testing is the process of testing the design and functionality of a computer software or computer program to find out whether there are any errors in the program that might cause it to terminate unexpectedly and if the program is working as intended.

Suppose you are making soup for a competition in your town. First, you would make the soup, test it, and tweak the recipe before making the final version for the competition. If the first batch does not match up to your expectations, you would make another batch, and test it again. Software testing is similar to testing a sample of your soup before making it available for judging.

Software Testing Methods

There are three main methods used in software testing:

  • Black-box testing: This is similar to you giving your family different variations of the soup recipe in different bowls and asking them to pick the tastiest without knowing which recipe they are selecting. In black-box testing, a person who is not familiar with the software code or how the program is expected to perform is asked to test and report on any inconsistencies and errors. Black-box testing is from the point of view of the novice user.
  • White-box testing: This is similar to you going through the recipe in detail and making modifications to the ingredients to get a soup with better taste and texture. In white-box testing, a technical expert examines the code in detail, and uses software testing tools to identify code that can be corrected or edited to improve the user interactions and the program outcomes. White-box testing is from the point of view of the technical expert.
  • Gray-box testing: This is similar to you taking advice from a family member who is a better cook and then modifying the recipe. In gray-box testing, a person with knowledge of the technical expectations and programming code is asked to test the program and report on the problem areas. Gray-box testing is from the point of view of the expert user.

Purposes of Testing

We will discuss two main purposes of software testing:

Quality Assurance

The purpose of quality assurance is to make sure that the program executes as intended without any errors. If your first test batch of soup did not turn out as expected, you would identify the errors, correct them, and repeat the recipe with the modifications.

In the same way, when testing a gaming software, for example, if the program unexpectedly quits and does not allow the player to continue with the game, the software code has to be reviewed to identify what the cause of the unexpected error is. Once the cause is identified, the code is then modified to incorporate the remedy before the software is considered as successfully passing the testing process.

Functional Testing

Another purpose of software testing is functional testing, which makes sure the software performs the functions as intended. For example, let's say your soup has to match the competition guidelines with a liquid to solids ratio of 2:1. If your sample batch of soup does not meet these guidelines, you would need to modify the recipe and make another test batch.

In the same way, when testing a gaming software, if the player does not get the option to move up to Level 2 after successfully completing Level 1, that is a functional error in the software program that needs to be corrected. The programmer would review the code and identify whether the software code is written so that the game moves to Level 2 after Level 1 was completed with a 100% score.

Best Practices

Software testing is a critical component of any software development process. For testing to be effective in identifying and correcting possible errors, the testing strategy should be defined before the testing process is started. Some of the best practices of the components of software testing include:

To unlock this lesson you must be a Study.com Member.
Create your account

Register to view this lesson

Are you a student or a teacher?

Unlock Your Education

See for yourself why 30 million people use Study.com

Become a Study.com member and start learning now.
Become a Member  Back

Resources created by teachers for teachers

Over 30,000 video lessons & teaching resources‐all in one place.
Video lessons
Quizzes & Worksheets
Classroom Integration
Lesson Plans

I would definitely recommend Study.com to my colleagues. It’s like a teacher waved a magic wand and did the work for me. I feel like it’s a lifeline.

Jennifer B.
Jennifer B.
Create an account to start this course today
Used by over 30 million students worldwide
Create an account