The Art Of Software Development (part 4): Delivering Quality - Casing The Joint (
Page 3 of 7 )
In order to verify the integrity and functionality of the software, it
is necessary to first develop a series of test cases that produce a
positive or negative result depending on whether or not the software
functions as advertised. In order to avoid bias, these test cases should
be developed by an independent quality assurance team, and should focus
on verifying the functionality and integrity of the software against the
various line items in the requirements document.
Typically, a test case contains the following information:
- Overview: This introductory section contains a brief description of
the purpose of this test case - for example, "calculating total cost of
items in shopping cart."
- Input: This section contains a description of the data that is to be
input into the system, with samples if necessary. Make it a point to
avoid including specific test values in this section.
- Output: This section contains a description of expected output from
the system or module.
- Procedure: This section contains a list of the steps to be followed
to execute the test.
- Evaluation criteria: This section lists the criteria necessary to
determine if the test was a success or a failure.
- Results: Added once the test is complete. This section records the
actual 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 the
software that is being released, due attention should be paid to making
them as stringent as possible. Here are a few tips to keep in mind when
designing a test case:
- Ensure that each requirement defined in the requirements specification
has one or more test cases linked to it. If you have a requirements
traceability matrix, this task becomes much easier.
- Ensure that the test case checks for both boundary and average input
values.
- 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 data
types), ensure that the test case checks all combinations.
- Ensure that the test case contains clearly-defined evaluation criteria
for judging the test a success or failure.
- Learn from the past. Use knowledge of previous errors in similar
projects to make your test cases more effective.
The various test cases for each phase of the testing process ultimately
get compiled into a comprehensive test plan. Let's take a look at that
next.