Quality -- Continued
Boundary (or edge) testing.
What is it. Testing the extremes of input or operating conditions.
Examples -- Most negative number, biggest number, zero. Really big file, zero length file. Really fast input, really slow input, no input.
Why is boundary testing important? (Most bugs happen at boundary conditions.)
Why do you think most bugs happen at the edges? The logic is trickiest here and programmers are often thinking about the usual cases.
TIP -- Test each routine for four inputs: lowest value, highest value, two values in the middle. If these work, the routine is most likely correct. Further testing is unlikely to be productive.
It sometimes requires creativity to think of (or create) edge conditions. It is worth the time to do this though.
Integration testing.
Testing the way two or more routines work after you put them together.
Also applies to testing sets of subsystems that have previously been integrated.
Big bang integration testing -- Integrating everything at once, then starting to test. Usually a bad idea. There are so many errors, you don't know where to start. Some errors hide each other. The program won't even run often.
Incremental integration testing -- A better approach. Integrating a few modules, then testing, then integrating a few more, testing some more, etc.
Top-down integration testing.
Putting the highest-level functions together first, then adding lower-level functions.
Does it use a lot of driver, or stubs. (Stubs.) Why?
Bottom-up integration testing.
Putting the lowest level functions together first, then adding higher levels.
Does it use a lot of driver, or stubs. (Drivers.) Why?
Regression testing.
Re-testing a feature that used to work before a recent software change.
Can a bug re-appear after you have fixed it? (Yes!) How?
Alpha and beta testing.
Alpha -- Complete system testing by the development group or their associated test team.
Beta -- System testing by real users outside of the development team.
Why do you need beta testing, if the program has been checked by a whole staff of smart testing people? (Real users do things differently, that engineers and testers never thought of.)
Estimating / Scheduling (my slides)
Copyright 2001 by Charles H. Connell Jr.