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