## Software Testing Techniques

Software testing technique is nothing but the way, procedure and the steps which may be used to test software. A software testing technique is the one who may help us to develop smarter test cases, reducing the number of steps required in the test cases.

A good software testing technique may make help us to design the test case in such a way that minimal steps of the test cases are able to test maximum functionalities of the software.

Note : A software testing technique also helps us to test some logically complicated statements which are generally overseen by normal test cases.

There are different types of software testing techniques all over the world, but we shall confine our study to the most used software testing technique throughout the world. Let us see some of the most important software testing techniques below and see how they work.

Different type of software testing :

## Boundary Value Analysis

In this software testing techniques, we take values that create a boundary to the input which has to be input to the software. In this testing technique, we create values which are at the boundary between the partitions. Its values may include the maximum, minimum or outside the boundaries.

It also contains the typical values, complicated boundary value and also the error values. This technique is designed as it is seen how most of the error is occurring at the boundary values of the defined input values. The value which is at the center is not causing an error to that extent.

This software testing technique not only helps to check the boundary values but also helps us to see whether the software performs when any overlapped modules perform on the same values which are overlapping.

Software testing technique is the opposite of the equivalence class partitioning testing technique. Let us see the steps to be followed for using this software testing technique:

• It can input contains values a and b as the boundary values, then while applying the technique, it is required to use the value a and b as well while considering the complete boundary values.
• Even if the input values are also in a higher range or order, that is many numbers of value are there. Then also, it should be able to work the value lower than the minimum and the value higher than the maximum. Here both the extreme values are tested.
• We have to keep in mind that the same steps as above should be followed to the output values as well. That means, as the values lower or higher were used in the input, the same is expected from the output as well.

Below is an example:

The input value is valid between 1 and 5. Boundary value will be: 0, 1, 2 and 4, 5, 6.

## Equivalence Class Partitioning

In the equivalence class partitioning technique, the input values are divided into a set of partitions. And this is done by choosing the different boundaries, and when we choose data from a class which belongs to the same partition, it says whether the set we have chosen is valid or not.

In the equivalence class partitioning technique, we are concerned about the classes of input values and are laying emphasis on the valid and the invalid partitions as well, which is not the case in the boundary value analysis where we are only concerned about the boundary values.

The importance of equivalence class partitioning technique is that it can be clearly seen which set of values are going to provide us a wrong result and that can be added to the list of the expected result.

Let us see the below example:

Let the input values are partitioned as 10 to 20. and 40 to 60.

Now we make different can be classified as:

-- to 9 Invalid.

10 to 20 Valid.

21 to 39 Invalid.

40 to 60 Valid

61 to --- Invalid

Now we may select values from each class:

-7, 16, 31, 49, 88 and see directly whether is it is valid or invalid.

Your link suggestions goes here

## Testing using Decision Table

This software testing technique is used in the case of the functions where the functions respond or work for the combination of inputs and do not depend on the single input. This software testing technique is useful when there are function works on complicated inputs.

For example, The Finish button will be activated only when all the credentials will be types into the boxes. As shown in the diagram.

As shown in the figure above, we have seen that the validate function came TRUE only when all the required inputs have satisfied all the Rules mentioned.

It may be noted that for every function, this decision table has to be created and all the rules must be checked before it can be concluded that whether the function should respond or not. The first task is to identify all the combinations of the inputs when the function should respond.

For every function, we should create a table for all the individual function and see the response of the function.

The steps to be followed while creating the decision table:

• Create the rows and write all the input fields.
• Write the function in the end row, and mark all the fields along with the inputs rows as well.
• The last row comes TRUE for the Rule which has seen that all the inputs which were returned TRUE.

## Testing Using State Transition

State transition technique is used when the input may be changed to see the API behavior. The state transition is used to when it is required to test a sequence of events occurring in the software.

State transition technique must be used when the tester wants to test the software for a limited set of input values.

Let us see an example:

if a user enters valid credentials in any of the five attempts, the user will be able to sign in or log in. Here, we have seen that the user is trying for the first attempt, if he/she is failing, the next session is started and the user may apply again with the credentials.

In case, the user fails again, then the user is prompted to make the third attempts. It goes on up to the fifth attempt. And here if the user is not entering valid credentials into the software, then the user is barred to access the Log-in API for a limited time.

And also in some cases, the user may be requested to reset the user credentials or maybe only the password, in case of some highly secured software.

Let us see a practical example with a state tradition diagram:

As shown the above example, the user is given two chances after entering the incorrect PIN and on the third chance, if the PIN is entered incorrectly then the account is blocked for some time or the software may request the user to reset the user PIN or any credentials to be able to log in again.

## Error Guessing Technique

Error guessing is a software testing technique, which is solely based on guessing the error.

This technique is used when the tester is much more expect or the software is of the organic type, that is similar kind of software and the related test is performed earlier by the tester and so the tester knows possible error.

This type of technique is used when there is no time to apply the boundary value analysis or the equivalence class partitioning.

For the application of this kind of technique, the tester must have the following qualities:

• The tester must be experienced enough handling similar kind of problems earlier.
• The person must not be over smart, that is the tester should not assume that he knows it all.
• The tester should be able to read the previous data and reports which were already created by testers for the same kind of problems and similar kind of application or software.
• The tester should have the habit of learning new kind of problems every day, which in fact will increase the experience of the person while guessing the error.

## Summary

Software testing techniques are nothing but the set of rules and procedures, by which the testing of the codes in software can be tested for their logical and functional validity.

Mainly, the testing techniques are for performing white-box testing. There are different kinds of techniques which are used by different companies or entities. But in this article, we have discussed some of the most universal techniques such as the equivalence class partitioning, error guessing, boundary value analysis, testing with decision table, testing with state transition diagram, etc.

###### Recommended Reading
Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions
• SUSHIL
`can please more elaborate this Software Testing Techniques with Test case design example.. `
Reply