Page 186 -
P. 186
The following checklist items apply to the test cases:
Clarity
Does each test case have a clear flow of events?
Does each test case test only one specific interaction?
Does each test case describe the interaction using specific user interface and data elements?
Is each test case repeatable by someone uninitiated on the project?
Completeness
Is every requirement in the SRS verified fully with individual test cases?
Are all of the steps in each test case necessary?
Are there any steps that are missing?
Are all alternative paths and exceptions accounted for?
Accuracy
For every action, is there an expected result?
For every behavior in the requirement, is there a verification of the actual behavior?
Is the test case data specific—if data must be entered or modified, is that data provided?
Traceability
Is each test case uniquely identified with a name and a number?
Can each test case be traced back to a specific requirement?
Test Execution
The software testers begin executing the test plan after the programmers deliver a build
that they feel is feature complete. This is referred to as the alpha build. The alpha should be
of high quality—the programmers should feel that it is ready for release, and as good as
they can get it. This build should have been code reviewed (see Chapter 5) and should
have passed unit tests (see Chapter 7); it should have already been minimally functionally
tested by the development team, as well.
There are typically several iterations of test execution. The first iteration focuses on new
functionality that has been added since the last round of testing. (If this is the first time
this software product has been tested, then every test case is executed.) If no defects are
uncovered that are considered high enough priority to fix (see below about defect triage),
then the testers move on to perform a regression test.
A regression test is a test designed to make sure that a change to one area of the software
has not caused any other part of the software that had previously passed its tests to stop
working. Regression testing usually involves executing all test cases that have previously
been executed. In other words, it’s not enough to verify that the software has been
altered: it’s also necessary to ensure that the change did not break any other part of the
software that previously worked.
178 CHAPTER EIGHT