Software testing methods
Tags: softwaretesting, methods
Published: 2023-10-20 17:46:26

Software testing is important to check if the application does what it is supposed to do, is free of errors and bugs and meets the requirements. During the testing plan designing phase in STLC, test case scenarios are created to find defects in the test execution stage. These are done through various testing methods and testing techniques.

> Testing methods are specific approaches used to test software.
 
They define the steps that the tester should follow to execute the test and what the desired result is. The following are the different methods of testing:

_Black box testing:_ where the tester, as an end user, uses the software to test that it functions accurately in every situation and checks for performance defects, bugs, missing functions and other errors. 

_White box testing_ where the tester, with a complete knowledge of the source code and the design documents, analyzes the code.

_Grey box testing_ where the tester, with a partial knowledge of the code, tests for errors due to improper structure.

_Regression testing_ where the tester checks for new defects after updates and changes made to the original software. 

> Testing techniques are specific tools and techniques used to implement testing methods.

 They can be used to test different aspects of the software such as functionality, performance, security and reliability. The test cases can be entered manually or through automated tools.There are four commonly used testing techniques, and they are as follows:

**Boundary Value Analysis:**

As the name suggests, it is a process of testing input values closer to the boundaries or outside values that could throw an error. Test cases selected for this testing are closer to  minimum - maximum and inside -outside boundary.  

_Example of BVA:_

Let’s take a case where the system accepts ages between 18 and 60. Here the valid test cases will be _17, 19, 59 and 61_. Here 17 and 61 should show error as they are outside the boundaries.

**Decision Table Testing:**

This process of testing is used when there are multiple inputs and their combination could lead to different output. The input and their corresponding outputs are captured in a table form. This technique is very effective in testing the software with the requirements. 

Example of DTT:

In the scenario of testing a software for checking a ticket price based on age(discounted price for people over 60) and membership status, the test cases will be 
Members - < 60 and >61 and Non-members - <60 and >61.

_Membership Status        <60          >61_

_Members_

_Non- Members_


**Use case testing:**


The entire software is tested from end- to- end from a user’s perspective. It finds gaps in the system that will otherwise not be found in testing individual components. It is also a description of how a user uses the system.

In the scenario of ordering pizza online with different options including _size, toppings, extra cheese, drinks and  add-ons_, test cases will be created with multiple combinations to check for the right price.

**Linear Code Sequence & Jump Testing:**

This is a linear sequencing of code where the sequence starts from the beginning of the code or from a point where the control flow jumps. This is a white box testing method where the tester has access to the code.

Different test cases can be created in LCSJT and for every test case  should specify the _start of the sequence, end of the sequence and a specific target line_.

In conclusion, testing techniques makes it possible to design better cases with lead to achievement of desired results.