Software Testing Techniques
Published: 2023-10-17 14:20:27

There  are different types of Software Testing techniques available to test the application or product and give the desired defect free results. Let us discuss some of them in detail.
1)**Boundary Value Analysis**:
It is a software testing technique based on the process of removing defects with the help of boundary value testing. It is used to test the boundary values of the input because the input values near the boundary have higher chances of error. Here, tests are designed to include representatives of boundary values in a range. Boundary value analysis is one of the widely used case design technique for **black box testing**
Three-Value Boundary value analysis: In this type, we use the boundary value itself and one value(as close as possible) on either side of the boundary. This is called 'three-value BVA' or the 'full boundary value analysis'
Two-value Boundary value analysis: In this analysis, only the boundary value and the invalid value are considered
Example: If the application is designed to accept the input values from 0 to 100, testing the input values of 0,1, 99, and 100 which are the boundary input values for 0 and 100 are most likely to cause an error.
Benefits include:
-  Wider test coverage 
- Better Software Quality
- Early identification of errors
- Reduces risk and more reliable
- Cost and time efficient
2) **Decision Table Testing**:
It is a software testing technique used to test system behavior for different input combinations. This is a systematic approach where the different input combinations and their corresponding system behavior (Output) are captured in a tabular form. That is why it is also called as a Cause-Effect table where Cause and effects are captured for better test coverage.
            A Decision Table is a tabular representation of inputs versus rules/cases/test conditions. It is a very effective tool used for both complex software testing and requirements management.
For Example: Consider the following Decision Table
Conditions 	Rule 1 	Rule 2 	Rule 3 	Rule 4
Username (T/F) 	F 	T 	F	T
Password (T/F) 	F 	F	T	T
Output (E/H) 	E	E 	E       H

    Case 1 – Username and password both were wrong. The user is shown an error message.
    Case 2 – Username was correct, but the password was wrong. The user is shown an error message.
    Case 3 – Username was wrong, but the password was correct. The user is shown an error message.
    Case 4 – Username and password both were correct, and the user navigated to the homepage
Benefits include:
- When the system behavior is different for different inputs and not the same for a range of inputs, a decision table can be used.
- Useful to make effective combinations and can ensure better coverage for testing
- Complex business conditions can be easily turned into decision tables
3) **Use Case Testing:**
It is testing technique that helps to identify the test cases that cover the entire system from start to finish. Whatever can used by the user on the application/system is tested.
It is the description of a particular use of the system by the user. As the testing team thinks from the user's perspective, it helps them in identifying any issues related to the user experience. The use case testing type focuses on the user and is carried out from the user's perspective.
Use cases help in understanding
-     Who's using the software or website
-     The user's goal and what the user wants to do
-     What ordered steps the user takes to complete a specific 
      task
-     How the software or website reacts to the user's action
Example of Use Case testing: 
Train ticket booking, Bus ticket booking, e-commerce sites and many more.
In Train ticket booking, software engineers conduct several use cases to establish how the booking flow works and identify potential concerns. They run cases that include: 
-     A customer browsing train schedules and prices
-     A customer selecting a train date and time
-     A customer paying with a personal credit card
Benefits include:
Providing the best possible outcome scenario
Prioritizing elements and features.
Establishing system goals and targets

4) **LCSAJ Testing Technique:**
LCSAJ stands for Linear Code Sequence and Jump.
LCSAJ testing is a white-box testing methodology used to determine what percentage of the code is executed with the existing test cases. It helps in designing new test cases, which can increase the coverage of the code under test. Once the code coverage reaches a certain level, we can stop the testing.
It is a software code path fragment consisting of a sequence of code (a linear code sequence) followed by a control flow Jump, and consists of the following three items:
-   the start of the linear sequence of executable statements
-   the end of the linear sequence
-   the target line to which control flow is transferred at the 
    end of the linear sequence.
The main use of LCSAJ coverage forces the analysis of loops and the analysis of combinations of program constructs and hence ensures that more, potentially error yielding, aspects of a software application are analyzed than with any other available method.