For the midterm exam the students should:

- Know definitions of correctness, robustness, reliability

- Be able to define assertions for a given implementation (including pre and post conditions)

- Be able to produce sets of testcases and/or paths that satisfy the coverage criteria described in class 

- Be able to reason about subsumption relationship between coverage criteria

- Know the data flow coverage criteria

- Know the dependency analysis terminology

- Know the purpose and principle of mutation testing

- Be able to describe why both black box and white box testing might be needed

- Know the notion of coincidental correctness

- Know the RELAY fault-based model

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

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