Black Box Software Testing:  By Cem Kaner & James Bach

We're setting up a mailing list for a low-traffic, moderated discussion of how to teach or self-study this course. If you're interested, sign up here to discuss the content of the course or here to discuss how to teach / improve the course.

This site hosts an archive of the Black Box Software Testing course materials, in our suggested sequence.

We now present this course to students via Moodle, a course management system. Changes to the course will reach the Moodle server sooner, and that server holds additional materials, such as quiz questions.

      Course Syllabus -- Fall 2006

      Fall 2006 -- Exam study guide

      Fall 2006 -- Full review question set

      How we grade essay exams (Part 1) (Part 2: comparative grading of four exam answers) [Slides]

      Overview of the course [for students] [Slides]

      Overview of the course [for teachers] [Slides]

      1. Introduction: The strategy problem and the oracle problem
      2. Introduction 2: The impossibility of complete testing and the measurement problem
      3. Bug advocacy: How to win friends, influence programmers, and stomp bugs
      4. Quality cost analysis
      5. More on bug advocacy, your credibility, and the mission of the tracking system.
      6. Testing techniques: Domain testing
      7. Testing techniques: Scenario testing
      8. Testing techniques: Function testing
      9. Test design: Understanding, selecting among, and applying test techniques
      10. Testing techniques: Risk-based testing
      11. Testing techniques: Combination testing--jointly testing several variables
      12. Testing techniques: Specification-based testing
      13. Regression testing
      14. Test procedures and scripts
      15. Requirements analysis for test documentation
      16. GUI regression automation and requirements for automation

Course Overview

Black box testing is the craft of testing a program from the external view. We look at how the program operates in its context, getting to know needs and reactions of the users, hardware and software platforms, and programs that communicate with it.

This course is an introduction to black box testing. It is a superset of the Software Testing 1 introductory courses that Florida Tech requires in its undergraduate (CSE 3411) and graduate (SWE 5411) software engineering degree programs. The full set of materials are equivalent to about a two-semester course.


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 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.