It would seem that requirements are the responsibility of analysts, not testers.
But let’s go in order.
Well known “requirements requirements” – completeness, unambiguity. Consistency, efficiency, testability, etc. I call such “requirements to requirements” mantras, because it is far from always clear how to test them reliably.
However, for testing, any defect in requirements means redoing test scripts, test data, automated scripts, and retesting. Therefore, testing expertise is more interested in verifying these mantras than any other expertise.
We think that an effective way to verify is to design test scripts early on. Maybe not even test scripts, but test conditions or test ideas – a set of high-level ideas of what and why (but not how) to test.
And in parallel begin to build a visualization of the relationship of test scenarios and requirements and requirements (where and what is tested), which will later be converted into a full coverage matrix.
Requirements and testing without test cases and/or without testers
It used to be believed that programmers could successfully test their own code (not only unit testing is meant), so there was no need for testers. Later it was realized that this was not true, but the idea to do without testers still exists.
The new approach is testing with the help of analysts. Note, however, that testing in general and test-design in particular is its own engineering field with its own rules and technologies. If an analyst is not proficient in test engineering, he or she will not be able to perform testing at the required level and within the required timeframe. But if he is proficient in this engineering, he is a tester (though it happens very rarely).
Finally, let us remember about defects of requirements, in finding which testers are extremely interested. So, analysts will search for them themselves? It reminds of the situation with programmers who test their own code. The success of such an activity is doubtful.
The peculiarity of maintenance projects in particular is that small demands cause small code revisions but may require large amounts of testing. Typical examples are field additions, code refactoring, etc. This means that all the accepted proportions concerning the ratio of programmers and testers, or labor costs for development and testing can be broken. Here we focus on an adequate and reasonable estimate of labor costs for testing, which only testers know how to do.
Above we mentioned the construction of a matrix of requirements coverage by test scenarios. Since all projects may undergo (and actually do undergo) changes, building and updating of the coverage matrix is an obligatory activity of the testing process.
The coverage matrix allows to quickly get answers to the following questions:
The need to answer the first question arises when estimating the labor costs for testing a change in the requirement. The need to answer the second question arises when assessing the criticality of a defect found by running a test scenario.
Requirements Related Testing Risks
The most common testing risks due to imperfect requirements are: