Development Testable Requirements:
The main purpose of development testable requirements is to make sure the quality is maintained right from the beginning. It is bit critical to initiate the testing process in early stages of software development life cycle in today’s distributed development environment. This can be achieved only when requirements are gathered in enough detailed and testable way. In order to have the right software, the requirements should define the scope of the project accurately.
Business analyst, project managers, quality managers, system analysts and leads plays vital role for this document. Developers are also involved but to some extent.
Testing a software is known to be time-consuming and expensive task. It is mainly observed that many times much of the effort and time is spent in fixing the defects, rather testing the functionality of system. Per different quality assurance reports the cost for fixing a software error is lowest in the requirement gathering and analysis phase while preparing software requirements specifications.
Once the SRS is prepared, it passes through different phases like design, coding. The cost for fixing the errors rises dramatically as fixing up of one error will reflect changes to many related documents, could be a design document or source code. Detection of error in earlier stages will lead to less damage and quality output.
The basic foundation on which entire system depends is on requirements. Test plans are written for validation of requirements from use cases where in each test case is based on verification of one system state. Validation assures the functionality that represents the requirements has indeed been delivered.
Again, limited budget and time are always constraints upon writing and running test cases. so is the reason gathering right, complete and concise requirements in early stages is important which provides testers a clear idea to validate system easily.
Writing development testable requirements:
The important factor behind producing high quality systems is the good quality requirements document. It should be written in a very deterministic way making easy for developers and testers to improve quality. A good requirement documentation is essential as the entire project team will work from these set of requirements. The project may loose its foundation if requirements are not properly defined.
Benefits of good set of requirements:
– Document should be developed with proper analysis from which, one should able to determine what exactly the output will be.
– Eliminate ambiguities, conflicts and other possible errors resolving at initial stages ensuring a right requirement is documented.
Diagram below illustrates the distribution of defects in projects. More than half of the defects can be resolved in requirement process
Above diagram explains that 56% of root cause for software bugs in projects are from requirements stage, remaining half are from different phases.
Characteristics of a development testable requirement:
Below list is the main characteristics of a testable requirement describe by Richard Bender who has thirty years of experience in software focusing on quality assurance and testing.
Following these characteristics, a better testable and deterministic requirement can be developed. Deterministic is something when an input is given one should be easily able to make out what would be the expected output. Testable is something where each statement of requirement can be used to approve or disapprove whether the output is correct or incorrect.
– For defining addition functionality, better to write add two numbers (X+Y = Z), rather just saying add two numbers.
– Instead of writing name field should be lengthy enough, better write name field should be supporting 20 characters.
In testing process, testable and deterministic requirements plays an essential role of reducing the effort of testing team as not only just test engineers can predict the expected output and verify the result against the test requirements but testers can also verify the same at their end. This way a tester is not completely dependent on test engineer making the validation process easy.
Writing development testable requirements will lead to minimizing the cost and time of testing, making client happy by providing a good quality output. It is a kind of process if followed will increase the efficiency and lead to project success.Tags: Requirements