HomePractices Page 4 - The Art Of Software Development (part 4): Delivering Quality
A Man With A Plan - Practices
Just writing code isn't enough - you also need to test itthoroughly before you release it to a customer. This article discussesthe testing phase of the software development cycle, providing you withan overview of test cases and testing processes, together with adiscussion of how to go about documenting your software in a clear andconcise user manual.
Since test cases map directly into the requirements specification, thecomprehensive test plan functions as a blueprint of the fullcapabilities of the system, and allows an assessment of how closely thefinal release meets the defined needs of the customer. This test plan isa detailed document outlining the test schedule, level of testing, testcases, quality control processes and resources required. Typically, thisdocument contains the following sections:
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 test case failures.
Test strategy: This section contains information on test procedures,the various levels and types of tests that are to be conducted, thetools to be used, report formats, evaluation criteria and retestprocedures.
Prerequisites: This section outlines the pre-requisites for the teststo be conducted, including the hardware, software and networkconfiguration. In case special tools or particular environmentalconditions are needed for the test, these requirements are noted in thissection.
Traceability matrix: This matrix maps each test case to a requirementfrom the requirements document, in order to ensure that every requestedfeature is correctly implemented. While this matrix may be difficult andtime-consuming to construct for small- and medium-size projects, itplays a critical role in the QA process for larger projects, and itsomission can result in important test cases being missed.
Test cases: This section consists of test cases to verify if thesoftware meets 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.
Test schedule and resources: This section lists the schedule for testcompletion, together with a list of the types and number of personsrequired and their responsibilities. The schedule listed in this sectionmust map into the broad schedule listed in the software developmentplan; deviations if any should be reported to the project manager.
Appropriate managers need to sign off on this test plan prior toexecution. Unit and system testing plans need internal approval; theacceptance test plan also requires customer approval. Once appropriateapprovals are received and the development team confirms that unittesting is concluded and system testing may begin, the software ischecked out of the project repository and transferred to a test team forthe testing process to begin.