Nerd For Tech
Published in

Nerd For Tech

Types of Software Testing & Techniques.

There are 3 types of Testing namely:

  1. Functional testing
  2. Non-Functional testing
  3. Regression/Maintenance testing

Functional testing verifies every function of the software while Non-functional testing verifies the non-functional aspects of the software like it’s reliability, security and performance. Regression testing on the other hand is done after we make changes to the code to check that the modified/new piece of code doesn’t effect the existing functionality of the product and works just fine without the update posing new bugs or threats.

Table: Difference between Functional and Non-Functional testing
Credits: The Knowledge Academy

We will go in depth about the individual tests in the next post. Until then, let’s get a brief idea about the testing techniques.

Software Testing Techniques

There are 3 testing techniques namely:

  1. Black-Box testing
  2. White-Box testing
  3. Grey-Box testing

Black Box Testing:

Also known as Behavioural testing. It is high level testing, that tests the functionality of the product. Here the tester has no idea about the internal structure of the software/product or about it’s source code. Now, you must be wondering then how is the tester going to test the product? Well, the answer is: the tester is told what is expected out of the product and how it’s supposed to work. Based on that information, the tester test’s the product by providing the required input. In simpler words it’s about the user’s experience.

Credits: Invesis

Let’s say, a tester who has no knowledge about the internal structure of a website is about to test it’s working. The tester will be providing inputs(here clicks, keystrokes) to the website and verify the output against their expected outcomes.

White Box Testing:

Also known as Transparent testing/Glass testing/Open testing/Clear testing. Here, the tester knows the internal structure, source cod and implementation of the product. Most of the time the tester is also the developer of the product. With his programming know-how and by studying the implementation of the product the tester prepares a set of inputs to go through the different paths of the source code and determine its expected output.

Credits: Invesis

Let’s say the tester prepares a set of valid and invalid inputs to compare it’s outcomes with the expected outcomes.

White Box testing is like the work of a doctor who has to examine the patient know the patient’s illness and treat him accordingly.

Grey Box Testing:

Also known as Translucent testing. This is a combination of partial White box and partial Black box testing. Here the tester has limited knowledge about the internal structure, implementation of the code and the product. It’s main goal is to find issues that occur due to incorrect internal structure/ incorrect usage of the product and to improve the product’s quality.

Credits: Pintrest

Let’s take an example, say a tester is testing a website and on clicking any link or button ends up with an error , now the grey box tester can analyse, explore the code and make the necessary changes to ensure he get’s the expected outcome.

Hope you understood the types and techniques of Software Testing :) . Do let me know your views.

Written by, R P Pavitra.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store