| Welcome | Foundations | Bug Advocacy | Test Design | Exploratory Testing | Taking Exams | Policies | Extras | Instructors Course | Metrics | Engineering Ethics |

Foundations of Software Testing


This first course is a basic introduction to black box testing. It presents basic terminology and considers:

More info on the Learning Objectives for Foundations of Software Testing are available on the BBST.info website.


  • Slide set for all Foundations lectures (PDF)
  • Videos

    Lecture 1: Overview & Basic Definitions

    This provides an overview of the online Black Box Software Testing courses and introduces some definitions commonly used in the testing field.

  • Lecture 1a (10 mins) (MP4)
  • Lecture 1b (10 mins) (MP4)
  • Lecture 1c (9 mins) (MP4)
  • Lecture 2: Strategy

    This considers why testers test, what they are trying to learn, and how they can organize their work to achieve their mission.

  • Lecture 2a (9 mins) (MP4)
  • Lecture 2b (9 mins) (MP4)
  • Lecture 3: Oracles

    This presents software oracles as heuristics that help testers make a judgment whether or not software passes the tests that are run.

  • Lecture 3a (7 mins) (MP4)
  • Lecture 3b (10 mins) (MP4)
  • Lecture 3c (7 mins) (MP4)
  • Lecture 4: Programming Fundamentals & Coverage

    This presents information about basic data handling and storage to help testers think about the multi-dimensional problem of test coverage in more sophisticated ways.

  • Lecture 4a (10 mins) (MP4)
  • Lecture 4b (9 mins) (MP4)
  • Lecture 4c (9 mins) (MP4)
  • Lecture 4d (4 mins) (MP4)
  • Lecture 5: The Impossibility of Complete Testing

    This explores the complexity of determining when testing is finished and how the goal of complete testing is unattainable.

  • Lecture 5a (9 mins) (MP4)
  • Lecture 5b (10 mins) (MP4)
  • Lecture 5c (10 mins) (MP4)
  • Lecture 6: Introduction to Measurement

    This addresses the challenges of measurement in software testing.

  • Lecture 6a (9 mins) (MP4)
  • Lecture 6b (9 mins) (MP4)
  • Lecture 6c (7 mins) (MP4)
  • Readings

    All readings archived on this site are reposted by permission of the copyright holders.

    Required Readings

  • Michael Bolton: Testing Without a Map (PDF)
  • Douglas Hoffman: Exhausting your test options (PDF)
  • Cem Kaner: The impossibility of complete testing (PDF)
  • Cem Kaner: Software negligence and testing coverage (PDF)
  • Cem Kaner, Elisabeth Hendrickson & Jennifer Smith-Brock: Managing the proportion of testers to (other) developers (PDF)
  • Brian Marick: How to misuse code coverage (PDF)
  • Recommended Readings

  • Austin, Robert. (1996), Measuring and Managing Performance in Organizations (BOOK)
  • James Bach: Heuristic Test Strategy Model (PDF)
  • Rex Black: Factors that influence test estimation (WEBSITE )
  • Michael Bolton: Meaningful metrics (PDF)
  • David Goldberg: What every computer scientist should know about floating-point arithmetic (PDF)
  • Douglas Hoffman: The darker side of software metrics (PDF)
  • Cem Kaner and Walter P. Bond: Software engineering metrics: What do they measure and how do we know? (PDF)
  • Cem Kaner: Negotiating testing resources: A collaborative approach (PDF)
  • Cem Kaner: Recruiting software testers (PDF)
  • Michael Kelly: Using heuristic test oracles (PDF)
  • Michael Kelly: Estimating testing using spreadsheets (PDF)
  • Billy V. Koen: The engineering method and the heuristic: A personal history ("This was the beginning of a 37 year quest to find one thing that was not a heuristic.") (PDF)
  • Koen, Billy V. Definition of the Engineering Method, American Society for Engineering Education (ASEE). (A later version that is more thorough but maybe less approachable is Discussion of the Method, Oxford University Press, 2003) (BOOK)
  • Jonathan Kohl: How do I Create Value with my Testing? (PDF)
  • Brian Marick: Experience with the cost of different coverage goals for testing (PDF)
  • Petzold, Charles. (1993), Code: The Hidden Language of Computer Hardware and Software. Microsoft Press (BOOK)
  • Popper, Karl (2002, 3rd Ed.) , Conjectures and Refutations: The Growth of Scientific Knowledge (RoutledgeClassics). (BOOK)
  • Erik Simmons: When will we be done testing? Software defect arrival modeling using the Weibull distribution (PDF)
  • Elaine J. Weyuker: On testing nontestable programs (PDF)
  • Assignments

  • Orientation Exercise for lecture on Impossibility of Complete Testing (PDF)
  • Mission of Testing (PDF)
  • Orientation Exercise for lecture on Oracles (PDF)
  • Oracle Heuristics 3-Phase Lab (PDF)
  • Study Guide

  • Study Guide for BBST Foundations (PDF)