According to the Standish Group’s Chaos Report, 90% of IT projects are delivered late and 66% of them are not considered successful. Surveys show that more than 50% of the project failures can be attributed to problems stemming from Requirements Elicitation and Management and more than 20% are due to Ineffective Testing.
This situation can be best explained with a simple analogy from nature. The software development lifecycle is like a river with requirements at its source. If you can’t clean the river at its source, you will have a dirty river flowing down the hill. A reactive rather than a proactive approach to clean the river will increase the costs and risks exponentially. The proactive way to overcome this situation is by integrating Requirements and Test Management activities and formulating a Requirements Driven Test Management Process. To build a RDTM Process the following critical success factors should be in place:
- Early Testing. The testing activities should start in parallel to requirements definition without waiting for coding. Finding and fixing the requirement defects will lead to early prevention of flaws in design and coding process. Applying Early Testing as a principle will also have a positive quality assurance impact on business analysis activities.
- Use Case vs. Test Cases. In most of the projects, use cases are used as test cases. But these test cases only contain positive cases lacking forced error (negative) test scenarios which help in identifying most of the defects. In good practice approaches test cases should be prepared as a combination of use case scenarios and negative scenarios. Negative test cases are best developed by using test design techniques like equivalence partitioning, decision tables, boundary value analysis etc.
- Independent Test Teams. Positioning testing as a nice to have rather than a must have, last minute, additional task for developers or BAs resulted in incomplete and ineffective testing of applications. In order to avoid this problem, independent test teams with test automation capabilities should be established in organizations. Nowadays, CIOs are investing in Centers of Excellence for Requirements Engineering and Test Engineering teams as separate disciplines.
- Requirements Traceability and Test Coverage. The traceability matrix is a helpful tool to ensure that requirements have been met and all changes are addressed. By using traceability matrices, requirements can be referenced beside relevant test cases and test coverage ratio can be monitored at each stage of the project. Requirements coverage should be also used as a Key Performance Indicator for test teams and should be evaluated as test exit criteria.
- Requirements vs. Test Automation Tools. Requirements Driven Test Management necessitates the integration of requirement management and test automation tools. In the selection of test automation tools, the requirements coverage monitoring abilities should be a selection criteria, in addition to standard test case and bug tracking functionalities.
Beyond all the critical success factors discussed above, most companies require a paradigm shift in their culture to put requirements driven test management into reality.