Black box software testing: A course by Cem Kaner & James Bach
Introduction: The strategy problem and the oracle problem
- Video lectures
- Lecture slides (editable PPT's)
- Multiple choice review questions [grading notes]
- Essay test questions
- An orientation exercise. (A pretest to prime the student for some issues that will come up in lecture.)
- A classroom activity (Choosing strategies for different testing objectives)
- Examples of applications of oracles
- Assigned reading: Hoffman, Heuristic test oracles
Software testing is an active investigation done to expose quality-related information about the product under test. There are several different possible information objectives--different companies have different objectives, and the manager of a single project may have different objectives for the testing of that project at different times. Your testing strategy--your overall plan for achieving your objectives--will depend on the objectives: different techniques and deliverables are more useful for some objectives than others.
Another fundamental challenge in software testing is figuring out how to determine whether the program has passed or failed a given test. This is more complex than it looks, and our comparisons will inevitably involve a subset of the possible comparisons that we could make between the ideal behavior of the product under test and its actual behavior. The oracle problem is fundamental to our ability to do automated testing (and meaningfully interpret the results).
We are publishing this course under a Creative Commons license that allows you to freely reuse and distribute the materials and to modify the slides and associated printable materials (but not the videos). We would be appreciate a few mirror sites, to reduce the growing burden on our servers. If you can help in this way, or any other way, please send a note to Cem Kaner.