Introduction to Test Case Design Techniques
The most significant and crucial phase in the development of software is its testing phase. Not only does testing helps to determine the quality of a product but it also allows one to modify and upgrade the product in terms of end-user friendliness and usability. In this article, we will address the fundamental notion of test case design techniques of various kinds.
Test cases are the fundamental building blocks which when put together form the testing phase.
What is a Test Case?
- They are often a pre-defined set of instructions addressing the steps to be taken in order to determine whether or not the end product exhibits the desired outcome. These instructions may include predefined sets of inputs, conditions along with their respective end results.
- However, in order to be through with one’s testing one could often end up with too many test cases. To avoid such scenarios, one should find the best test case design technique as per ones requirement so as to reduce a significant number of test cases.
- These test case design techniques help create effective test cases covering the various features that determine the quality and value of a product.
Test case designs are predominantly classified according to their nature of testing into three types. They are:
- Specification-based Design Technique.
- Structure-based Design Technique.
- Experience-based Design Technique.
1. Specification-Based Design Technique
This is also popularly known as the black-box design technique. In this design technique, the test cases are written by taking the client’s functional requirements and specifications into consideration. The internal workings of the product are irrelevant. Therefore the name black-box testing is used in this case. It is further divided into subtypes:
- Equivalence Partitioning Technique:
The data that are used as an input for the test cases are divided into groups based on a certain logic. The process of selecting a single input to represent the group it belongs to, and executing your test case with this input is known as equivalence partitioning.
For example, consider an application that will validate your password. The requirement for your password to be valid is it should contain a minimum of eight characters, should be alphanumeric and contain at least one special character. In this case, the inputs can be in different equivalent partitions such as valid inputs meeting the specific criteria and invalid inputs where one category contains eight characters all alphabets, another input category contains eight characters- all numeric, while another partition contains eight characters containing only special characters and so on.
- Boundary Value Analysis Technique:
In this case, the values from the lower boundary and upper boundary are considered.
For example, an application accepts only four-digit numeric values. Here the range is from 1000 to 9999. Here one case will contain inputs 999 and 9998, another case will contain input 1000 and 9999 and another will have inputs 0001 and 10000.
- Decision Table Technique:
Decision tables make it easier to combine all possible scenarios that may arise for a particular product or application in question. Therefore writing one’s test cases with the decision tables as the point of reference provides one with effective test cases that provide excellent test coverage.
- State Transition Testing Technique:
In this technique, the application is tested using graphical representation of the different transitioning states of an application which are further dependent on various features and functionalities of that application. It is primarily based on the state machine model.
- Use Case Testing Technique:
The different scenarios that an end-user will encounter when using or interacting with the application are tested in this technique.
2. Structure-Based Testing
- Structure-based testing deals with an applications internal structure and architecture. Here, the source code used to develop the application is tested. Therefore in the case of structure-based testing, a good understanding of the code and its internal flow are necessary in order to be able to design the test cases. Structure-based testing is also called white-box testing and glass box testing.
- The quality of the code is analyzed based on different factors such as code coverage, readability, maintainability, security or bug vulnerability, reusability, etc.
Different Types of Structure-Based Testing are:
- Statement Testing Technique:
In the case of statement testing the source code is executed while testing in order to measure the code coverage.
- Decision Testing Technique:
Here the decision points of code are considered. The decision points being “while” condition, “if-else” condition, etc. It calculates the percentage of decision points being executed and determines whether or not there are unreachable statements within the code.
- Condition Testing Technique:
It checks the Boolean condition statements that are, the statements where conditions either result in TRUE or FALSE. To make sure the conditions are executed when satisfied, testing is done using both TRUE and FALSE parameters against each condition statement.
- Multiple Condition Testing Technique: This is similar to condition testing, but may require a number of test cases as compared to condition testing due to the involvement of multiple conditions. However, writing these test cases could be a tedious task due to its complexity.
- Path Testing Technique: This includes testing every independent executable statement within the application from end to end in order to locate faulty code if any.
3. Experience-Based Testing
As the name states, this testing technique is based on a tester’s experience and expertise in similar applications and technologies. These are further divided into:
- Error Guessing:
Testers foresee possible error occurrence based on their prior experience and knowledge on the application. This is entirely based on the tester’s ability to come up with effective test cases that can eradicate causes likely to result in errors.
- Exploratory Testing:
In this, the test cases are written and executed in parallel. This technique helps identify critical bugs that may have been missed in traditional testing.
Selecting the best test case design to match your requirements will lead to effective testing and error-free delivery of the application. This will result in a better quality product and thus enhance the end-user experience.
This has been a guide to Test Case Design Techniques. Here we have discussed basic concepts, with three test case designs that are predominantly classified according to their nature of testing. You may also look at the following article to learn more –