HomePractices Page 3 - The Art Of Software Development (part 4): Delivering Quality
Casing The Joint - 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.
In order to verify the integrity and functionality of the software, itis necessary to first develop a series of test cases that produce apositive or negative result depending on whether or not the softwarefunctions as advertised. In order to avoid bias, these test cases shouldbe developed by an independent quality assurance team, and should focuson verifying the functionality and integrity of the software against thevarious line items in the requirements document.
Typically, a test case contains the following information:
Overview: This introductory section contains a brief description ofthe purpose of this test case - for example, "calculating total cost ofitems in shopping cart."
Input: This section contains a description of the data that is to beinput into the system, with samples if necessary. Make it a point toavoid including specific test values in this section.
Output: This section contains a description of expected output fromthe system or module.
Procedure: This section contains a list of the steps to be followedto execute the test.
Evaluation criteria: This section lists the criteria necessary todetermine if the test was a success or a failure.
Results: Added once the test is complete. This section records theactual results observed by the tester while performing the test,together with a pass or fail notice.
Since test cases have a direct impact on the overall quality of thesoftware that is being released, due attention should be paid to makingthem as stringent as possible. Here are a few tips to keep in mind whendesigning a test case:
Ensure that each requirement defined in the requirements specificationhas one or more test cases linked to it. If you have a requirementstraceability matrix, this task becomes much easier.
Ensure that the test case checks for both boundary and average inputvalues.
Ensure that the test case checks for input of incorrect data type.
For highly interactive applications with multiple click-through paths,or applications that accept multiple combinations of data (and datatypes), ensure that the test case checks all combinations.
Ensure that the test case contains clearly-defined evaluation criteriafor judging the test a success or failure.
Learn from the past. Use knowledge of previous errors in similarprojects to make your test cases more effective.
The various test cases for each phase of the testing process ultimatelyget compiled into a comprehensive test plan. Let's take a look at thatnext.