26,614 Years to send all the combinations of positive case values – assuming no time for generation or comparing of expected results
Was called Equivalence Class analysis Quantify huge possible test space; Dick Bender’s Softtool generates cause-effect graph based test generation from complete requirements his process said that 10 100 possible test cases in a financial application where Hawkings estimates there are 10 90 molecules in the universe! Segment the test universe into sub-domains of [likely] equivalent values, then select the one best representative of the class. Used Laser Jet II as best [worst] representative printer for the class; Trick in non-trivial cases is to select the best representative; see Jorgensen’s “Software Testing: A Craftsman’s Approach.” Also, Beizer’s “Black Box Software Testing” is OK.
Equivalence classes depend on the risk that you’re testing against. Example is 64+64 looks equivalent to 64+63, but it is not equivalent if we’re dealing with single-byte sums. Hockey game example -- you can’t get into the playoffs with more than 63 games won (more than 127 points scored).
45 This illustrates the internal boundaries. Show chi-square as another example Walk through A,b as non-numeric tests. Explain the reversal error (> 57 vs >75, the program would appear to pass on b, but would fail on A)
41 with more than 63 games won (more than 127 points scored).
127 The notion of Binary State as a boundary Between algorithms = chi-square approximation numerosity number of usages number of records size sum digits entered time race conditions? timeout followed by , , , , speed of data entry? year 2000 12:00 midnight special cases 24:00 rolls over to 00:01 or 24:01 most recent, first space on page memory < 640K on disk 64 K file system resources, between algorithms, date, intensity, what else?
Example similar to real world architecture Testability: Visibility (how close to the point of failure can you look at information) Control (feed the program information, set the program state) [DuChard: Prob(failure|fault) should be high (exposure)] (Density of the error)
Get a team of developers together and trace through typical activities. Diagram the elements as they are involved.
War stories - database bug; it didn’t crash. This is the report-automation problem. The report test plan had been automated but no one knew what it did. It printed bad, but internally consistent, output. - vast wasted time interpreting old output - don’t read output
86 Define software increments Use rigorous methods for Spec, Dev, and Certification of each increment Apply strict statistical QC during testing Enforce strict separation of Specification and Design Tasks from Testing Activities
88 Concept central to SDLC and PM Left out of Primer and most texts