A test manager knows that besides risk based testing there are additional software testing techniques such as requirements based testing or other approaches like model-based, reactive and methodical.
Software testing basics – Requirements based testing
Requirements based testing is one of the most prominent alternative techniques for developing and prioritizing test conditions. It May utilize several techniques like ambiguity reviews; test condition analysis and cause-effect graphing. It also Identifies and eliminates ambiguities in requirements and uses a checklist of common requirements defects.
Test condition analysis involves a close reading of the requirements to identify the test conditions to cover. If those requirements have an assigned priority, this can be used to allocate effort and prioritize testing.
In the absence of an assigned priority, it is difficult to determine the appropriate effort and order of testing. In this case we need to blend requirements-based testing with risk-based testing.
Requirements-based testing has a broader usage and can reduce an extremely large testing problem to a manageable number of test cases and still provide 100% functional coverage of the test basis. It can also identify gaps in the test basis during test case design, which can identify defects early.
There are tools to support this method which can be complicated to do manually.
Challenges faced by this approach are:
- adoption of cause-effect graphing due to the complexity of creating these graphs
- often the requirements specifications are ambiguous, unstable, incomplete or non-existent
- Not all organizations are motivated to solve these problems, so testers confronted with such situations must select another test strategy
Model based approach is used to enhance the use of existing requirements by the creation of usage or operational profiles and to accurately depict the real-world use of the system. This method utilizes a mix of:
- use cases
- users (also called personas)
And allows testing of:
During test analysis and planning, the test team identifies the usage profiles and attempts to cover them with test cases. The usage profile is an estimate, based on available information, of realistic usage of the software.
- such as checklists to determine what to test, how much and in what order
- mainly used for products that are very stable via a checklist of major functional and non-functional areas to test that is combined with a repository of existing test cases
- Such approaches tend to become less valid when used to test more than minor changes
- The checklist provides a trial and error allocation of effort and the sequencing of tests, usually based on the type and amount of changes that occurred
- very few test analysis, design or implementation tasks occur prior to test execution
- test team is focused on reacting to the product as actually delivered
- Bug clusters become the focus of further testing
- Prioritization and allocation are dynamic
- Can work as a complement to other approaches
- When exclusive, tends to miss major areas of the application that are important but not suffering from a large number of bugs
This article is based on the ISTQB Advanced Syllabus version 2012 and it also references the ISTQB Foundation Syllabus version 2018. It uses terminology definitions from the ISTQB Glossary version 3.2.