Test case is one of the significant components of the testing phase. It works as a tool or a manual to verify and validate a particular or set of requirement(s) or functionality(s) of the software product.
Here, we are going to provide some of the useful techniques to design effective test cases in order to increase the productivity of the testing process.
Techniques, used to design a test case may broadly be classified into three different types
This technique is basically used to design the test cases based on the specifications. It comprises of following types:
It's a specification based testing technique, which is used to explore errors in the software product at the extreme ends of the input domain, i.e. at boundaries, and accordingly used to derive and design test cases.
It's a method of dividing or partitioning the test input data into number of classes having equivalent number of data, which is then used to derive and design test cases for each class or partition, at least once time. This helps in reducing the number of test cases, significantly.
It is a technique of designing the test cases, using different combinations of the input and their corresponding output based on the variant types of condition, scenarios, adhering to different business rules.
It's an approach of perceiving a software product as a system having a finite number of states of different types where transition from one state to another is guided by some certain rules to response or behave differently for each different input.
This technique is used to derive test cases covering end-to-end software product evaluation on transaction-by-transaction basis based on the used case, i.e. the description of the user's interaction with a software product in a particular manner to accomplish a specific task.
It's a technique of designing a test case, based on the internal structure of the system or the software product. Following techniques, comes under the umbrella of white box design technique.
Statement Coverage is an approach to ensure the execution of all the statements present in the code, at least once.
A testing method to ensure that all the possible branches or outcomes for each decision point present in the software system have been executed, at least once.
It is used to ensure that all the possible paths between the initial node and the terminating node describing a process or a task in a software product has been executed, at least once.
It simply means test design methods based on the experience of a tester to derive test cases. It consists of following types:
It's a technique of making a guess based on the skills and experience gained by a tester to explore the vulnerable areas of a software product, which may likely to be affected by a bug or a defect.
It may be seem as a learning approach along with a testing technique, where a tester having inadequate knowledge of the specification and requirements of the product, progressively, performs testing with the minimal planning and continuously develops strategy to progress the testing activity using his skills and traits.