HomePractices Page 6 - The Art Of Software Development (part 2): Designing For Simplicity
Testing Times - Practices
In the first part of this article, you got a crash course inrequirements analysis. Now that you've figured out what your customerneeds, it's time to design it - easily the most challenging and creativephase of the project cycle. Find out more, inside.
Finally, you should also spend some time putting together an acceptancetest plan for the project. This plan outlines the test cases that mustbe passed in order for the application to be accepted by the customer.All the test scenarios in the acceptance test plan must correlate to therequirements previously specified in the requirements document. Failureof any of these test cases will imply that the application is notcompliant with the requirements specified in the initial phase, and maytherefore be rejected by the customer.
Typically, an acceptance test plan consists of the following:
Introduction: This section introduces the test plan, indicating thegoals of the test, the schedule, the level of testing and the resolutionprocedure in the event of a test case failure.
Test cases: This section consists of test cases to see if thesoftware meets the the various requirements specified in thepreviously-agreed requirements document. Each test case must beaccompanied with a description outlining the test procedure, requiredinput(s), expectedoutput(s) and rules for determining whether or not the test wassuccessful.
Traceability matrix: This matrix maps each test case to a requirementfrom the requirements document, in order to ensure that every requestedfeature is correctly implemented.
Like the requirements document, this acceptance test plan must beaccepted and signed off on by the customer.
It should be noted that although I've put the development of this plannear the end of the pre-implementation phase, it should actually becloser to the beginning. Most of the time, this acceptance test plan isdelivered to the customer at the time of requirements analysis, in orderto give him or her confidence about the features that will be in thefinal software release. However, exigencies of time and cost may make itimpractical to develop this plan during the early phases of pitching aproject, especially if the project is a small- to medium-sized one. Thatsaid, you should make it a point to deliver the acceptance test planbefore actual implementation begins.