There are several techniques that can be used for choosing test conditions. The risk based strategy for testing was discussed in the previous section, which is one of the commonly used techniques by Test Managers for choosing tests.
Requirement based testing technique is another important alternative for building and prioritizing testing conditions. Some of the these techniques are discussed below.
Test selection techniques
Requirements based testing
It employs many methods like creating graphs for cause and effect, analyzing test conditions and analyzing ambiguities. Usually a list of defects in the requirements document is used to detect requirements ambiguities and then remove them.
To determine test conditions that must be covered, one must make an in-depth study of the requirements document.
- If the requirements have a pre-allocated order of importance, that order can guide in distributing effort and ordering test cases.
- If the order is not pre-allocated, risk based testing must be combined with requirements based approach to arrive at correct effort allocation.
- Plotting of cause-effect graph to cover test conditions has a wider impact in reducing a testing problem from a large problem into test cases that are manageable in number.
- At the same time, it provides 100% coverage of the functionality of the test basis.
- The graph is also capable of detecting gaps during the designing of test cases itself, which helps in early detection of defects in the overall software development lifecycle.
- But producing graphs using manual tools is very complex.
A familiar problem in testing based on requirements is confusing specifications that are not complete, difficult to test and at times not available at all. If the organization does not take care of these issues, the testers must choose some other testing strategy.
Model based testing
- If available requirements are not complete, they can be boosted by creating models that depict the actual usage of the system.
- Such models make use of user profiles, use cases, inputs to the system, outputs provided by the system, etc.
- This enables the testers to perform reliability testing, functional testing, performance testing, security testing and inter-operability of the system.
- User profiles are created during test review and planning on the basis of data available about real time products usage and stakeholder inputs.
- They are then covered through test cases. Even if the profiles do not create the exact model of the system, it is sufficient for testing purposes.
Checklists
Creating checklists in order to decide what is to be tested, in what quantities and the testing order is also very common among Test Managers.
If the product is stable, the Test Manager may choose to create checklist that includes the following items:
- Functional areas to be tested
- Non-functional parts to be tested
- Database of test cases which already exist
These checklists also provide empirical values for the test data. However, it is effective only for minor adjustments.
Reactive testing
- Reactive testing is also a common testing approach employed by the Test Managers.
- As the name suggests, the test team concentrates on testing the groups of bugs that are discovered after delivery.
- Decisions about prioritizing the tests and allocating resources is fully dynamic. This is done as the need comes up.
- This technique is effective only when combined with other testing techniques.
- If used alone, it may not be able to detect issues in important application areas if they do not have many defects.
The next article discusses how we can perform test prioritization & effort allocation for testing.
Other popular articles:
- What is Test Strategy? Types of strategies with examples
- What is Test analysis / Test Basis? or How to identify the test conditions?
- What are the Software Development Models?
- What is Experience- based testing technique?
- How to perform test prioritization & effort allocation in test process?
Leave a Reply