These are techniques that derive their test cases directly from specifications or other types of models of what the system is required to do. It is possible to identify test conditions where test cases can be derived from adequately structured and well-defined tests.
Specification-based techniques constitute the creation and execution of tests based on functional and non-functional business specifications. They focus on recognizing defects that correspond to specific specifications. An example of a technique in this category is equivalence partitioning (Geeks for Geeks, 2019).
It is also called Equivalence class partitioning. This is a specification-based technique that classifies input domains into various data classes. Test cases are then derived with the help of the various data classes. A class of error that requires the execution of various arbitrary test cases before the observation of general error is identified by an ideal test case.
Equivalence classes are evaluated for particular input conditions. Anytime an input is given, the input condition type is checked. Equivalence classes describe valid or invalid states in these given input conditions (Geeks for Geeks, 2019). There are various guidelines for this testing technique; if the input is given for the range condition, two invalid and valid equivalence classes are recognized.
If the input is provided in the form of a specific value, then two invalid and one valid equivalence class are recognized. If the input is given as a member of a set, one invalid and one valid equivalence class are identified. Also, if the input condition is given as a Boolean number, one invalid and one valid equivalence class are established.
This technique is used in the scenario where the total number of test cases require to be reduced to finite testable test cases set while still covering the maximum requirements, and where possible, test cases require to be placed into classes, and a test value picked from every class for testing. This is because it utilizes the smallest number of test cases in covering the maximum requirements (Geeks for Geeks, 2019).
These techniques are based on the experience and skill of the testers, users, and experts. Because the right specifications are usually not available to test the applications, it is carried out in an Ad-hoc manner.
In this category of techniques, the tester relies upon past experiences with similar technologies (Geeks for Geeks, 2019). According to their experience, the tester focuses on the areas they think are essential in the software, such as those used frequently by the customer or those most likely to fail.
These techniques complement the specification-based techniques and are done even when the specification list is inadequate or specifications are not available. An example of a testing technique under this category is exploratory testing (Priya Faculty, 2018). Software Testing Techniques
This is an informal Software Testing Technique that involves the tester actively controlling the performed tests’ design and making use of the information collected during testing in designing new as well as better tests (Parmar, 2018).
It combines test execution and test design, the rules on how and what to do alongside recorded results of the past used as a lesson for the future. An exploratory testing technique aims to have minimal planning to achieve maximum execution coverage.
Test execution and design are conducted in parallel (Geeks for Geeks, 2019). The steps of the test design are not documented. Its main characteristic is the establishment of the strengths and weaknesses of the application under test by the tester.
The focus of this technique is more on testing as a form of thinking activity. Thus, it depends on discovery and individual tester’s guidance to identify defects that are usually uncovered within the scope of other tests.
This technique is used in scenarios where someone is required to learn about an application or a product within a short period and provide feedback. This is because it enables one to review products’ quality from the perspective of the user.
These are also called White Box Testing Techniques. It is characterized by the internal being known to the tester who tests the software.
In this technique, the system based on the code’s internal structure is analyzed and the cases calculated (Geeks for Geeks, 2019). It involves verification of the security loops within the code, verification of broken paths within the code, verification of the given structure, the desired output, verification of the condition loop and functionality, as well as every line and section.
Tests are derived using the internal structure of the software and are used at all testing levels. One technique in this category is statement coverage
This is a White Box Testing technique that constitutes the execution of all the given statements at least once within the source code. It is used in calculating and measuring the number of statements that have been executed within the source code.
It can be used in the scenario whereby checking of what the source code is required to do or not is needed. It can also be used where checking of the code quality and various paths flowing into a program is necessary. It is primarily suitable for Drupal programmers (Geeks for Geeks, 2019). Software Testing Techniques
Geeks for Geeks. (2019). Structural Software Testing – GeeksforGeeks. GeeksforGeeks. Retrieved 16 June 2021, from https://www.geeksforgeeks.org/structural-software-testing/.
Parmar, D. (2018). Exploratory Testing | Atlassian. Atlassian. Retrieved 16 June 2021, from https://www.atlassian.com/continuous-delivery/software-testing/exploratory-testing.
Priya Faculty. (2018). Experience-based testing – Software testing technique. H2kinfosys Blog. Retrieved 16 June 2021, from https://www.h2kinfosys.com/blog/experience-based-testing-2/.