next up previous
Next: Regression Test Up: Software Engineering Phases Previous: Critical Error Removal

The Testing Phase

Table 2.4: The Testing Phase: Improve Quality.
Phase Deliverable
Testing $\bullet$ Regression Test
  $\bullet$ Internal Testing
  $\bullet$ Unit Testing
  $\bullet$ Application Testing
  $\bullet$ Stress Testing

Simply stated, quality   is very important. Many companies have not learned that quality is important and deliver more claimed functionality but at a lower quality level. It is much easier to explain to a customer why there is a missing feature than to explain to a customer why the product lacks quality. A customer satisfied with the quality of a product will remain loyal and wait for new functionality in the next version. Quality is a distinguishing attribute of a system indicating the degree of excellence.

The testing phase is summarized in Table 2.4 on page [*].   For more information on testing see [#!Beizer1983!#], [#!Beizer1990!#], [#!Hetzel1973!#], [#!Hetzel1988!#], [#!Kaner1988!#], [#!Kaner1993!#], [#!Jackobson1992!#], [#!Meyers1979!#], [#!Ould1986!#], [#!Rothermel94a!#], [#!Barbey96b!#], [#!hamlet94a!#], [#!hamlet95a!#], [#!dalal94a!#], [#!Ciancarini1997!#], and [#!Rothermel94a!#].

In many software engineering methodologies, the testing phase is a separate phase which is performed by a different team after the implementation is completed. There is merit in this approach; it is hard to see one's own mistakes, and a fresh eye can discover obvious errors much faster than the person who has read and re-read the material many times. Unfortunately, delegating testing to another team leads to a slack attitude regarding quality by the implementation team.

Alternatively, another approach is to delegate testing to the the whole organization. If the teams are to be known as craftsmen, then the teams should be responsible for establishing high quality across all phases. Sometimes, an attitude change must take place to guarantee quality. 2.3

Regardless if testing is done after-the-fact or continuously, testing is usually based on a regression technique split into several major focuses, namely internal, unit, application, and stress.

The testing technique is from the perspective of the system provider. Because it is nearly impossible to duplicate every possible customer's environment and because systems are released with yet-to-be-discovered errors, the customer plays an important, though reluctant, role in testing. As will be established later in the thesis, in the WaterSluice methodology this is accomplished in the alpha and beta release of the system.

next up previous
Next: Regression Test Up: Software Engineering Phases Previous: Critical Error Removal
Ronald LeRoi Burback