Hard skills
Types of testing. Part 1
25 Aug 2021

In this article, you will learn about the types of testing. In order not to get confused about their diversity, we will introduce you to the basic ones. 

Testing based on access to the code and application architecture 

Let`s start with testing based on access to the code and application architecture. It is divided into: 

  1. White box testing. 
  2. Black box testing. 
  3. Gray box testing. 

White box testing  

This type of testing implies that a tester has access to the internal structure and the code of an application and has enough knowledge to understand what he sees. 

Why does a tester need access to the internal structure of an application? 

It is necessary to understand the functioning of an application from the beginning to the end. 


We take a vending machine as an example. It consists of: 

  1. Containers with orders. 
  2. An electronic lock. 
  3. Displays to enter the order number or password. 

A user enters the order number on the display, the electronic lock opens, and the user picks up his order. 

Why does a tester need access to the application code? 

This is necessary to understand how one module runs and how application modules interact with each other.

Black box testing 

This type of testing implies that a tester either does not have access to the structure of an application and to the application code, or does not have enough knowledge to understand both, or the tester deliberately does not address them during the testing process. 

At the same time, most of the types of testing use black box technique, the idea of which in the alternative definition can be expressed as follows: a tester exerts influence on an application and tests reaction in the same way, as users or other applications would affect it in real-life operation. 

In black box testing, documentation and common sense are the basic information for creating test cases (for cases when the application's behavior is not explicitly regulated in some situations; this is sometimes called "implicit requirements testing," but this approach has no canonical definition). 


Let`s take a food vending machine as an example.

Not every person has an idea how a food vending machine works, how many drives there are, and what parts of it interact with each other. But most people have the idea that if you drop a coin into a coin receiver and selects a certain food number, the machine will give you the right snack.

Gray box testing 

This is a combination of white box and black box technique, meaning that a tester has only partial access to the code and the architecture. Usually, white box or black box technique are applied to certain parts of an application, meaning that the "entire application" is tested using gray box technique.  

Check out the following articles, where we talk about other popular types of testing: Types of testing. Part 2 and Types of testing. Part 3.

A reminder that in EPAM, you can study Software Testing on our free educational courses. Register and learn testing under the guidance of the best EPAM experts!