Reading material referenced:

The course textbook "Object Oriented Technology", course notes,

Richard C. Linger, "Cleanroom Software Engineering for Zero-Defect Software", IEEE 1993, [pdf]

Poore, Mills, and Mutchler , "Planning and Certifying Software System Reliability", IEEE 1993, [pdf]

Robert W. Floyd, "Assigning Meaning to Programs, "Symposium on Applied Mathematics, 1967, pp. 19-32 (Appeared as volume 19 of Mathematical Aspects of Computer Science). [pdf] (not required reading, the original description of Floyd-Hoare verification method)

Robert W. Floyd and Sir Charles Antony Richard Hoare software verification section from "Discrete Structures, Logic, and Computability" by James Hein and scanned sections from "Software Testing" by Jeff Offutt the links to which are at the Outline and lecture

Lori A. Clarke and Debra J. Richardson, "Applications of Symbolic Evaluation," Journal of Systems and Software, 5 (1), January 1985, pp.15-35.[pdf]

 

For the final exam the students should:

- Know notions of Verification and Validation

- Know the stages of testing

- Know the notions of fault, failure, error, static and dynamic analysis, debugging

- Know and be able to apply static analysis methods of "Robert W. Floyd - Tony C.A.R. Hoare" verification and symbolic evaluation, know their scopes of applicability and advantages/weaknesses

- Know the advantages/weaknesses of testing

- Know the notions of white box and black box testing

- Know the methods for testcase generation by partitioning the input domain, using class state diagrams

- Know the notions of coverage criteria for statement, branch, boundary-interior and all-paths coverage, be able to apply them to create testcases

- Know the notion of a control flow graph

- Know the notion of a path feasibility and how it complicates testcase generation

- Know the notion of coincidental correctness and why, as a possible result, a testcase suite that satisfies some coverage criterion might not be able to uncover all failures

- Know the conditions for origination and transfer of a fault, topic of fault-based testing (relevant slides on TRACS)

- Know the Cleanroom process description (diagram in Fig. 2) [pdf]

- Know the Cleanroom formal design (3 stages: black box, state box, clear box: pp. 7-8) and verification process (pp. 9-10)

- Know the Cleanroom statistical testing approach process (4 items on p. 11), testcase generation process (pp. 11-12, Fig. 7)