TASK 2 -TESTING TECHNIQUES
Tags: testing
Published: 2023-12-17 13:25:51


**BOUNDARY VALUE ANALYSIS**
      Boundary testing is the process of testing between boundaries or extreme ends between partitions of the input values. So these extreme ends like **Maximum-Minimum, Lower- Upper, Start- End, Just Inside-Just Outside values** are called boundary values and the testing is called “boundary testing”. 

Boundary testing is the type of **black box testing**

Based on this testing the boundary values of valid and invalid partitions. In this Testing Behaviour at the edge of the equivalence partition is more likely to be incorrect than the behaviour within the partition, so boundaries are an area where testing is likely to yield defects.

Equivalence Class Partitioning plays a good role in the boundary testing. It is type of black box testing technique which can be applied to all levels of software testing like unit, integration, system, etc. In this technique, input data units are divided into equivalent partitions that can be used to derive test cases which reduces time required for testing because of small number of test cases.

Equivalence Partitioning or Equivalence Class Partitioning divides the input data of software into different equivalence data classes, where there is a range in the input field.

The boundary value for a valid partition is consider as valid boundary value.
The boundary value for an invalid partition is considered as invalid boundary value.
For each variable we check- Minimum value, just above the minimum, Nominal Value, just below Max value, Max value.

**Example 1**: Consider a system that accepts ages from 18 to 58.
        Boundary Value Analysis (Age accepts 18 to 58)

Invalid = (min - 1)

Valid= (min, min + 1, nominal, max – 1, max)

Invalid= (max + 1)

**Valid Test cases**: Valid test cases for this below example might be any value entered greater than 18 and less than 58.

**Invalid Testcases**: When any value less than 18 and greater than 58 is entered.

**If We Take (17,18,19,37,55,58,59)**

If we Enter the value - 18 
If we Enter the value - 19
If we Enter the value - 37
If we Enter the value - 55
If we Enter the value - 58

**The above are all Valid test cases**

If we Enter the value - 17
If we Enter the value - 59
**The above are all Invalid test cases**
**Example 2** Below is the example to combine Boundary Value and Equivalence Partitioning.

Consider a field that accepts a **minimum of 8 characters** and a **maximum of 12 characters.** Then the partition of the test cases **ranges 0 – 7, 8 – 12, 13 – 18.**
Enter value **0 to 7** character - **Not accepted**.
Enter **8 to 12** character - **Accepted**.
Enter **13 to 18** character - **Not accepted**.


**DECISION TABLE TESTING**
       Decision table testing is a type of software testing technique where the testers has used to **test system behaviour for different input combinations**. This testing includes type of Black Box Testing. 
In this where the different input combinations and their corresponding system behaviour (Output) are captured in a tabular form. The output may be dependent on many input conditions, decision tables give a tabular view of various combinations of input conditions and these conditions are in the form of True(T) and False(F).That is why it is also called as a Cause-Effect table where Cause and effects are captured for better test coverage.

This technique is an effective tool used for both complex software testing and requirements management. It helps to check all possible combinations of conditions for testing and the testers can also identify missed conditions easily.
**Example: Decision Base Table for Login Screen**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/viv8yn1bzp16e83e6avt.jpg)

**The user provides the correct username and password the user will be redirected to the homepage. If the user input is wrong, an error message will be displayed**.

Test Case 1 – Username and password both were wrong. It shows an error message.
Test Case 2 – Username was correct, but the password was wrong. It shows an error message.
Test Case 3 – Username was wrong, but the password was correct. It shows an error message.
Test Case 4 – Username and password both were correct, and the user navigated to the homepage.
**Example: Decision Table for Upload Screen**
You can upload only ‘.jpg’ format image.
file size less than 50kb
resolution 250*250


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvy8jxfumrrzhkilgurs.jpg)

**Test Case 1** - Upload a photo with format ‘.jpg’, size less than 50kb and resolution 250*250 and click on upload. The result is Photo should upload successfully.

**Test Case 2** - User Upload a photo with format ‘.jpg’, size less than 50kb and resolution not 250*250 and click on upload. The result is Error message must be displayed.

**Test Case 3**- User Upload a photo with format ‘.jpg’, size more than 50kb and resolution 250*250 and click on upload. The result is Error message size mismatch should be displayed.

**Test Case 4** - User Upload a photo with format ‘.jpg’, size more than equal to 50kb and resolution not 250*250 and click on upload. The result is Error message size and resolution mismatch might be displayed.

**Test Case 5** - User Upload a photo with format other than ‘.jpg’, size less than 50kb and resolution 250*250 and click on upload. The result is Error message for format mismatch must be displayed.

**Test Case 6** - User Upload a photo with format other than ‘.jpg’, size less than 50kb and resolution not 250*250 and click on upload. The result is Error message format and resolution mismatch should be displayed.

**Test Case 7** - User Upload a photo with format other than ‘.jpg’, size more than 50kb and resolution 250*250 and click on upload. The result is Error message for format and size mismatch must be displayed.

**Test Case 8** - User Upload a photo with format other than ‘.jpg’, size more than 50kb and resolution not 250*250 and click on upload. The result is Error message for format, size and resolution mismatch must be displayed.

**USE CASE TESTING**
       Use Case Testing is a part of black box testing, and it helps the developers and testers to identify test scenarios that exercise the whole system on each transaction basis from start to finish.
Use case testing helps to identify the gaps in software that might not be identified by testing individual component and helps to identify the gaps in software that might not be identified by testing individual components.
It is a type of end-to-end testing it won’t ensure the entire coverage of the user application and it will find out the defects in integration testing.
Example: In this a person is represented by “P” and system by “S”. We create Use for a login functionality of a Web Application as displayed below.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q91d8ke4pf2txjjuhh6d.jpg)

- The Person enters email and password and the next step, the system will validate the password.
- If the password is correct, then the access will be granted.
- If in case password is not valid system will display a message and ask for re-try three times.
- If Password, not valid three times system will ban the IP address.

**Linear code sequence and jump**
       It is a white box testing technique to identify the code coverage, which begins at the start of the program and ends at the end of the program.
It is also called JJ-path, standing for jump-to-jump path.
LCSAJ means 100% Statement Coverage, Branch Coverage, procedure or Function call Coverage, Multiple condition Coverage.

**Example: checking the Age Eligibility to Vote**

Input age of the person and check whether a person is eligible or not. 

Eligible - Age >= 18
Not Eligible - Age < 18

Check the condition, whether age is greater than or equal to 
18, will be eligible for the voting. 

If it is less than 18 the person will not be eligible for the voting.