Software Testing Techniques with Test Case Design Examples

What are the different types of software testing techniques?

Software Testing Techniques assist you in creating more effective test cases. Manual Testing Techniques help reduce the number of test cases to be executed while increasing test coverage because exhaustive testing is not possible. They aid in the detection of test circumstances that might otherwise be difficult to detect.

Boundary Values Analysis (BVA)

Boundary value analysis is a type of testing that takes place at the intersections of partitions. Maximum, minimum, inside or outside boundaries, typical values, and error values are all included.

The limits of the defined input values, rather than the center, are where a substantial percentage of mistakes occur. It's also known as BVA, and it provides a set of test scenarios that put boundary values to the test.

Equivalence partitioning is complemented by this black box testing approach. This software testing approach is based on the idea that if a system performs well for these specific values, it will perform as well for all values in the range between the two boundary values.

Boundary Value Analysis Guidelines

If an input condition is constrained to values x and y, the test cases should include both x and y values as well as values above and below x and y.

If an input condition has a large number of values, a test case that exercises the lowest and maximum values should be created. Values above and below the minimum and maximum values are also checked in this section.

Apply the first and second recommendations to the output conditions. It produces an output that represents the predicted minimum and maximum values. It also checks for numbers that are below or over a certain threshold.

Partitioning of Equivalence Classes as an Example

Equivalent Class Partitioning divides a collection of test conditions into a partition that should be treated the same. This software testing approach splits a program's input domain into data classes from which test cases should be created.

The idea behind this method is that a test case for a representative value of each class is the same as a test for any other value of the same class. It enables you to distinguish between valid and incorrect equivalence classes.

Example

Conditions for input are valid between

Counting from 1 to 10 and 20 to 30

As a result, there are five types of equivalence.

-- equals 0 (invalid)

1 to ten (valid)

11 to 19 years old (invalid)

20 to 30 years old (valid)

from 31 to -- (invalid)

You choose values from each class, for example,

-2, 3, 15, 25, 45, 45, 45, 45, 45, 45, 45, 45

Testing with Decision Tables.

A Cause-Effect table is another name for a decision table. For functions that respond to a mix of inputs or events, this software testing approach is utilized. If the user has completed all needed information, for example, a submit button should be activated.

The first step is to identify capabilities whose output is dependent on a number of different inputs. If the input set of possibilities is huge, break it down into smaller subsets to make managing a decision table easier.

Create a table for each function and list all possible combinations of inputs and outputs. This aids in the detection of a condition that the tester may have missed.

The steps for making a decision table are as follows −

• Make a list of the inputs in columns.

• Fill in the blanks in the column with all of the regulations.

• Fill the table with various input combinations.

• Note the output versus the input combination in the last row.

A submit button on a contact form, for example, is only activated after the end-user has completed all of the required fields.

Transition of State

Changes in input conditions modify the state of the Application Under Test in the State Transition approach (AUT). The tester can use this approach to test the behavior of an AUT. This action can be carried out by the tester by sequentially entering various input circumstances. The testing team uses the state transition approach to evaluate the system's behavior by providing both positive and negative input test values.

State Transition Guideline

• When a testing team is evaluating an application for a limited set of input values, state transition should be employed.

• When the testing team wishes to test a sequence of events that occur in the application under test, this approach should be employed.

Example

In the following example, the user will be able to log in successfully if he or she provides a correct password in any of the first three attempts. The user will be requested to re-enter the password if the user enters an incorrect password on the first or second attempt. When a user incorrectly enters their password for the third time, the action is taken, and the account is blocked.

White-box or structure-based approaches

The structure-based or white-box approach creates test cases based on the software's underlying structure. This method thoroughly checks the code that has been produced. Developers with a thorough understanding of the software code, its internal structure, and design assist in the creation of test cases. There are five different types of this approach.

Testing and Coverage of Statements

This method entails running all of the source code's executable statements at least once. According to the specified requirement, the proportion of executable statements is determined. For checking test coverage, this is the least desired statistic.

Coverage of Decision Testing

This approach, also known as branch coverage, is a testing method that ensures all reachable code is run by executing each of the potential branches from each decision point at least once. This aids in invalidating all of the code's branches. This ensures that no branch causes the program to behave in an unanticipated way.

Condition Evaluation

Each Boolean expression is predicted as TRUE or FALSE in condition testing, also known as Predicate coverage testing. All of the test results are tested at least once. This method of testing ensures that the code is completely covered. The test cases are written in such a way that the condition results are simple to implement.

Testing in Multiple Situations

The goal of multiple condition testing is to test every possible combination of situations in order to achieve 100% coverage. Two or more test scripts are necessary to assure comprehensive coverage, which necessitates more effort.

All-Path Evaluation

The source code of a program is used to discover every executable path in this method. This aids in the identification of all flaws in a given code.

Techniques based on prior experience

To grasp the most critical aspects of the program, these methodologies rely heavily on the tester's experience. The abilities, knowledge, and competence of the persons engaged determine the outcomes of these procedures. The following are examples of experience-based techniques

Observational Testing

Without any formal documentation, this approach is used to test the program. There is a minimum amount of time allowed for testing and a maximum amount of time available for test execution. The test design and execution are done simultaneously in exploratory testing.

Guessing Error

The testers use this approach to predict faults based on their previous experience, data availability, and knowledge of product failure. The testers' abilities, intuition, and experience all play a role in error guessing.

Mistake guessing is a software testing approach that involves predicting the type of error that could occur in the code. The approach is mainly focused on experience, with test analysts guessing the troublesome section of the testing application based on their previous experience. As a result, for improved error guessing, test analysts must be skilled and experienced.

A list of likely mistakes or error-prone scenarios is counted using this approach. The tester then creates a test scenario to reveal the flaws. The analyst can utilize previous experiences to establish the conditions for designing test cases based on this software testing approach.

Guidelines for Guessing Errors

• The test should be based on past testing experience with similar applications.

• Understanding the system that is being tested

• Understanding common implementation blunders

• Remember difficult locations from the past?

• Analyze past data and test results

Conclusion

• Software testing techniques enable you to create more effective instances. There are five approaches that are commonly employed.

• Boundary value analysis is a type of testing that takes place at the intersections of partitions.

• Equivalent Class Partitioning divides a collection of test conditions into a partition that should be treated the same.

• For functions that respond to a mix of inputs or events, the Decision Table software testing approach is utilized

• Changes in input conditions modify the state of the Application Under Test in the State Transition approach (AUT)

• Mistake guessing is a software testing approach that involves predicting the type of error that could occur in the code.

Enhancing the Test Case Efficiency is not a simple concept to describe; it is an activity that can be reached via a well-developed method and consistent practice.

The testing team should not grow bored of participating in the improvement of such activities, as it is the most effective weapon for achieving better success in the field of quality. Many testing companies throughout the world have demonstrated this on mission-critical projects and complicated apps.

Updated on: 02-Dec-2021

575 Views