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
   181   182   183   184   185   186   187   188   189   190   191