The Black-Box Software Testing series is the most extensive and scientifically based software testing training materials. The BBST® courses have been developed by Cem Kaner and Rebecca Fiedler over a 10-year period. The theoretical lectures, slides & videos, for the first 3 courses in the BBST® series (version 3.0) are licensed to the public under a Creative Commons Attribution license. Anyone can use those materials in their academic, personal, or commercial courses without further permission from or royalty to anyone. The letters “BBST” may not be applied to other black box software testing courses or materials without prior arrangements with Altom Consulting SRL.

BBST® Foundations is the first course in the series. To fully benefit from this educational program we recommend registering for an online class. The depth and relevance of the learning experience, coupled with the individual feedback each student receives, offers an unequaled level of progress only through an online class.

By studying the open course materials you get access to the lecture slides and videos, but do not have access to the orientation exercises, assignments, exam and feedback from instructors or peers.

BBST® FOUNDATIONS Lecture Slides

Foundations Lecture Slide - Open Course Materials

Download the BBST® Foundations lecture slides, last updated in 2022.

BBST® FOUNDATIONS Video Lectures

Lecture 1 – Overview and Basic Definitions

In this first lecture, Cem Kaner presents an overview of the online Black Box Software Testing courses and introduces some definitions commonly used in the testing field.

Lecture 2 – Strategy

In the BBST® Foundations second lecture, Cem Kaner talks about why testers test, what they are trying to learn, and how they can organize their work to achieve their mission.

Lecture 3 – Oracles

In the 3rd Lecture of the Black Box Software Testing Course Foundations 3.0, Cem Kaner talks about oracles and how they are used as heuristics to help testers determine whether a software passes the tests run.

Lecture 4 – Programming Fundamentals and Coverage

This lesson presents information about basic data handling and storage to help testers think about the multi-dimensional problem of test coverage in more sophisticated ways. Its goal is to improve testers’ computing-related literacy and to build a bridge from the material covered so far to the more technical issues in Lessons 5 and 6.

Lecture 5 – The Impossibility of Complete Testing

This lesson explores the complexity of determining when testing is finished and how the goal of complete testing is unattainable. Some people come to our course believing that they can achieve complete testing by achieving complete structural coverage.

Lecture 6 – Measurement

This lesson addresses the measurement challenges in software testing and introduces you to software metrics.

The lesson presents two examples involving bug counts. One is the risk of using bug counts to measure the skill of testers. The other is the risk of using bugs-per-week as a measure of project progress.