# Welcome

This site provides instructional materials (slides and videos) used for AST-Black Box Software Testing by the [Association for Software Testing](https://www.associationforsoftwaretesting.org/courses)'s own courses. All materials including updates made by the AST are [Creative Commons-licensed](http://creativecommons.org/licenses/by/3.0/).

These materials were pulled from the open source, creative commons licensed BBST® material at [The Center for Software Testing Education & Research](http://testingeducation.org/BBST/). The AST no longer uses the trademarked BBST® term but where applicable we note that BBST® is a registered trademark of [Altom Consulting](https://altom.com/). (If you find this term used in our materials please [file a bug](https://github.com/associationforsoftwaretesting/ast-bbst-materials/issues).)

Note: *This site is very much a work in progress*

### Goals

The goals of this project are simple:

1. Host updated materials used in our classes
2. Eventually provide self-study options
3. Create a backup of those public files in case [www.testingeducation.org/BBST](http://www.testingeducation.org/BBST) becomes unavailabile in the future.

### Contributing

We'd love to get your input on improvements, suggestions, grammar, outdated concepts or any other bugs that you find. You can [file bugs here](https://github.com/associationforsoftwaretesting/ast-bbst-materials/issues) and then we will address them.


# Foundations

## Overview

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

* the mission of testing
* the oracle problem
* the measurement problem
* the impossibility of complete testing

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

## Slides

* [Foundations Slides - Latest](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/slidesFoundations2020.pdf)
* [Foundations Slides - Original](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/slidesBBSTFoundationsNov2010.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](https://www.youtube.com/watch?v=2g4EqP57l7I\&t=3s)
* [Lecture 1B](https://www.youtube.com/watch?v=4K5bz-Eqo4s\&t=1s)
* [Lecture 1C](https://www.youtube.com/watch?v=uW6Tge48mnw)

### 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](https://www.youtube.com/watch?v=fGcgIK5aJpM)
* [Lecture 2B](https://www.youtube.com/watch?v=Rz7vmO3qD1o)

### 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](https://www.youtube.com/watch?v=KS8AJ38dX9c)
* [Lecture 3B](https://www.youtube.com/watch?v=8guqhIddoyQ)
* [Lecture 3C](https://www.youtube.com/watch?v=6nO4zSeRYpk)

### 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](https://www.youtube.com/watch?v=JB0qFevqrac)
* [Lecture 4B](https://www.youtube.com/watch?v=20L-BHPfWUQ)
* [Lecture 4C](https://www.youtube.com/watch?v=2n7fkgooQns)
* [Lecture 4D](https://www.youtube.com/watch?v=DZ233xzyY0A)

### 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](https://www.youtube.com/watch?v=HVLPCTNbj3Q\&t=5s)
* [Lecture 5B](https://www.youtube.com/watch?v=GqKliMX1z-w)
* [Lecture 5C](https://www.youtube.com/watch?v=cYxySProFHA)

### Lecture 6: Introduction to Measurement

This addresses the challenges of measurement in software testing.

* [Lecture 6A](https://www.youtube.com/watch?v=TxO4dJERQLI)
* [Lecture 6B](https://www.youtube.com/watch?v=HqWaiyT8VLc)
* [Lecture 6C](https://www.youtube.com/watch?v=axh3QB9nlNU)

## Readings

### Required Readings

* [Michael Bolton: Testing Without a Map](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Bolton_2005-01-TestingWithoutAMap.pdf)
* [Douglas Hoffman: Exhausting your test options](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Hoffman_Exhaust_Options.pdf)
* [Cem Kaner: The impossibility of complete testing](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kaner_impossibility.pdf)
* [Cem Kaner: Software negligence and testing coverage](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kaner_negligence_and_testing_coverage.pdf)
* [Cem Kaner, Elisabeth Hendrickson & Jennifer Smith-Brock: Managing the proportion of testers to (other) developers](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kaner_pnsqc_ratio_of_testers.pdf)
* [Brian Marick: How to misuse code coverage](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Marick_coverage.pdf)

### Recommended Readings

* Austin, Robert. (1996), Measuring and Managing Performance in Organizations (BOOK)
* [James Bach: Heuristic Test Strategy Model](https://www.satisfice.com/download/heuristic-test-strategy-model)
* [Rex Black: Factors that influence test estimation (WEBSITE )](https://www.stickyminds.com/article/factors-influence-test-estimation)
* [Michael Bolton: Meaningful metrics](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Bolton_MetricsBlogPost.pdf)
* [David Goldberg: What every computer scientist should know about floating-point arithmetic](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Goldberg_FloatingPoint.pdf)
* [Douglas Hoffman: The darker side of software metrics](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Hoffman_DarkerSideMetrics.pdf)
* [Cem Kaner and Walter P. Bond: Software engineering metrics: What do they measure and how do we know?](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kaner_Bond_metrics2004.pdf)
* [Cem Kaner: Negotiating testing resources: A collaborative approach](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kaner_NegotiatingTestResources.pdf)
* [Cem Kaner: Recruiting software testers](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kaner_JobsRev6.pdf)
* [Michael Kelly: Using heuristic test oracles](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kelly_UsingTestOracles.pdf)
* [Michael Kelly: Estimating testing using spreadsheets](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kelly_estimating_testing.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.")](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Koen_EngineeringMethod.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?](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Kohl_Blog_CreateValue.pdf)
* [Brian Marick: Experience with the cost of different coverage goals for testing](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Marick_experience.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](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Simmons_Weibull.pdf)
* [Elaine J. Weyuker: On testing nontestable programs](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Readings/Weyuker_ontestingnontestable.pdf)

## Assignments

* [Orientation Exercise for lecture on Impossibility of Complete Testing](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Assignments/MissionOfTestingSpring2011a.pdf)
* [Mission of Testing](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Assignments/OracleHeuristicsLab6b.pdf)
* [Orientation Exercise for lecture on Oracles](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Assignments/OraclesPreviewLabFIT_BBST_fall2011.pdf)
* [Oracle Heuristics 3-Phase Lab](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/Assignments/PreviewSquareRootLab.pdf)

## Study Guide

* [Foundations Study Guide](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Foundations/bbstFoundationsStudyGuide.pdf)


# Bug Advocacy

## Bug Advocacy: Effective Bug Investigation and Reporting

### Overview

Bug reports are not just neutral technical reports. They are persuasive documents. The key goal of the bug report author is to provide high-quality information, well written, to help stakeholders make wise decisions about which bugs to fix. Key aspects of the content of this course include:

* Defining key concepts (such as software error, quality, and the bug processing workflow)
* The scope of bug reporting (what to report as bugs, and what information to include)
* Bug reporting as persuasive writing
* Bug investigation to discover harsher failures and simpler replication conditions
* Excuses and reasons for not fixing bugs
* Making bugs reproducible
* Lessons from the psychology of decision-making: bug-handling as a multiple-decision process dominated by heuristics - and biases
* Style and structure of well-written bug reports
* More info on the Learning Objectives for Bug Advocacy: Effective Bug Investigation and Reporting are available on the BBST.info website.

## Slides

* [Bug Advocacy Slides - Latest](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Bug%20Advocacy/slidesBugAdvocacy2019.pdf)
* [Bug Advocacy Slides - Original](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Bug%20Advocacy/slidesBugAdvocacy2008.pdf)

## Videos

### Lecture 1: Basic Concepts Explore the diversity of opinions about "quality" and "bugs."

The lecture presents the multi-dimensional view of quality used throughout the BBST courses.

* [Lecture 1](https://youtu.be/qf6xLGlsaoM) (35 mins)

### Lecture 2: Effective Advocacy: Making People Want to Fix the Bug

How to develop reports that clearly communicate bugs in their harshest honest light so that decision-makers can operate with insight into the consequences of each bug.

* [Lecture 2](https://youtu.be/Qbq-ZzRWojo) (27 mins)

### Lecture 3: Anticipating and Dealing with Objections: Irreproducible Bugs

Strategies for exploring non-reproducible bugs to make them reproducible or at least to provide information to help troubleshooting efforts.

* [Lecture 3](https://youtu.be/7o1cZUczn0w) (17 mins)

### Lecture 4: Anticipating and Dealing with Objections: The Content, Clarity, and Credibility of the Report

How testers can make their reports useful and more credible for better decision-making by others working in the development effort.

* [Lecture 4](https://youtu.be/YrVLpHahPoY) (12 mins)

### Lecture 5: Credibility and Influence

In addition to the quality of bug reports, a tester's actions can influence how much credibility and influence they have on a project. This lecture draws on research on bias and signal detection theory to explore some of the things that enhance or diminish a tester's credibility.

* [Lecture 5](https://youtu.be/W_VmSZFRXwo) (21 mins)

### Lecture 6: Writing Clear Bug Reports

The final lecture introduces the RIMGEN acronym to guide testers in writing better bug reports.

* [Lecture 6](https://youtu.be/vSyKE7upPxE) (29 mins)

## Assignments

* [Signal Detection Lab](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Bug%20Advocacy/Assignments/FIT_BBST_fall2011SignalDetectionLab.pdf)
* [Bug Evaluation Assignment](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Bug%20Advocacy/Assignments/AssignmentBugEvaluationv11.3.pdf)
* [Sign up for the Open Office project and register in the test team](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Bug%20Advocacy/Assignments/JoiningTheOpenOfficeProject.pdf)

## Study Guide

* [BA Study Guide](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Bug%20Advocacy/BAstudyGuideJanuary2010.pdf)


# Test Design

Pulled directly from [TestingEducation.org](http://testingeducation.org/BBST/testdesign/):

## Overview

This course is a survey of test techniques. We look at a few techniques more closely than the rest but we don't expect this course to make you a skilled practitioner of any technique.

* Gain familiarity with a variety of test techniques.
* Learn structures for comparing objectives and strengths of different test techniques.
* Use the Heuristic Test Strategy Model for test planning and design.
* Use concept mapping tools for test planning.

The course takes a fast skim of several dozen techniques, and looks at a few in detail.

The current slide set comes in the course sequence after sections on:

* Function testing
* Domain testing (and with it, a first look at risk-based testing)
* Scenario testing

We then skim a group of 10 different techniques, noticing their different objectives, strengths and blind spots.

## Slides

* [Test Design Slides - Latest](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/slidesTestDesign2020.pdf)
* [Test Design Slides - Original](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/slidesBBSTTestDesign2011.pdf)

## Videos

### Lecture 1: Function Testing, Tours, & A Taxonomy of Techniques

This lecture provides a structure for organizing your thinking about the many test techniques, and a focus on testing tours and on function testing. (Why together? The most common tour is an excellent foundation for function testing.)

* part A (9 mins, 14 secs)
* part B (9 mins, 20 secs)
* part C (3 mins, 32 secs)
* part D (10 mins)
* part E (9 mins, 51 secs)
* part F (4 mins, 38 secs)

### Lecture 2: Risk-Based Testing, Testing Strategy and the Heuristic Test Strategy Model

This lecture introduces risk-based testing, including failure mode analysis and quicktests. The lecture also examines a few concepts important for developing a testing strategy.

* part A (9 mins,4 secs)
* part B (9 mins,59 secs)
* part C (9 mins, 15 secs)
* part D (9 mins, 11 secs)
* part E (1 mins, 39 secs)

### Lecture 3: Specification-Based Testing

This lecture introduces specification-based testing and suggests eight questions that can guide specifications analysis.

* part A (8 mins, 24 secs)
* part B (9 mins, 35 secs)
* part C (9 mins, 1 sec)

### Lecture 4: Scenarios and Use Cases. Comparatively Evaluating Test Techniques

This lecture introduces scenario testing, including 17 approaches to creating suites of scenario tests. It also suggests comparing test techniques in terms of their core strengths and describes 18 potential core strengths.

* part A (9 mins, 49 secs)
* part B (9 mins, 49 secs)
* part C (9 mins, 58 secs)
* part D (10 mins)

### Lecture 5: Domain Testing

This lecture introduces domain testing, the most popular test technique. The lecture presents a schema for applying domain testing that emphasizes the technique's roots in risk-based testing.

* part A (9 mins,26 secs)
* part B (9 mins, 16 secs)
* part C (9 mins, 57 secs)
* part D (6 mins, 50 secs)
* part E (9 mins, 57 secs)

### Lecture 6: Combination Testing

This lecture focuses on ways to test several variables together, emphasizing combinatorial approaches (such as all-pairs).

* part A (7 mins, 20 secs)
* part B (7 mins, 17 secs)
* part C (9 mins, 49 secs)
* part D (9 mins, 6 secs)

## Readings

### Required Readings

* James Bach: Heuristic Test Strategy Model (PDF)
* Michael Bolton: Blog: Why We Do Scenario Testing (PDF)
* John M. Carroll: Five Reasons for Scenario-Based Design (PDF)
* Jacek Czerwonka: Pairwise Testing in the Real World: Practical Extensions to Test-Case Scenarios (PDF)
* Elisabeth Hendrickson, James Lyndsay, and Dale Emery: Test Heuristics Cheat Sheet (PDF)
* Cem Kaner: What Is a Good Test Case? (PDF)
* Cem Kaner: An Introduction to Scenario Testing (updated April 2013) (PDF)
* Cem Kaner, James Bach, Bret Pettichord: Lessons Learned in Software Testing, Chapter 3: Testing Techniques (PDF)
* Michael Kelly: Taking a Tour Through Test Country: A Guide to Tours to Take On Your Next Test Project (PDF)
* Giri Vijayaraghavan and Cem Kaner: Bug Taxonomies: Use Them to Generate Better Tests (PDF)

### Recommended Readings

* Adler, M., & Van Doren, C. (1972). How to Read a Book. Touchstone (BOOK)
* James Bach and Patrick J. Schroeder: Pairwise Testing: A Best Practice That Isn't (PDF)
* Michael Bolton: Blog: Of Testing Tours and Dashboards (PDF)
* Michael Bolton: The Factors of Function Testing (PDF)
* Michael Bolton: Blog: Pairwise Testing (PDF)
* Hans Buwalda: Soap Opera Testing (PDF)
* Fiona Charles: Modeling Scenarios using Data (PDF)
* D. M. Cohen, S. R. Dalal, M. L. Fredman, and G. C. Patton: The AETG System: An Approach to Testing Based on Combinatorial Design (PDF)
* Ross Collard: Test Design: Developing test cases from use cases (PDF)
* Copeland, L. (2004). A Practitioner's Guide to Software Test Design. Artech House (BOOK)
* Gause, D.C., & Weinberg, G.M. (1989). Exploring Requirements: Quality Before Design. Dorset House (BOOK)
* Dick Hamlet and Ross Taylor: Partition Testing Does Not Inspire Confidence (PDF)
* Darren McMillan: Tales from the Trenches: Lean Test Cases (PDF)
* Darren McMillan: Mind Mapping 101 (PDF)
* NSW Government: Hazardous Industry Planning Advisory Paper No 8: HAZOP Guidelines (PDF)
* Michael Hunter: You Are Not Done Yet Checklist (PDF)
* Cem Kaner, Jack Falk, Hung Quoc Nguyen: Testing Computer Software, Second Edition, APPENDIX: COMMON SOFTWARE ERRORS (PDF)
* Cem Kaner: Teaching the Software Testing Course: A Tutorial (PDF)
* Cem Kaner and Bob Johnson: Styles of Exploration (PDF)
* Michael Kelly: Blog: Touring Heuristic (PDF)
* Myers, G. J. (1979). The Art of Software Testing. Wiley (BOOK)
* Whittaker, J.A. (2002) How to Break Software, Boston: Addison Wesley (BOOK)

## Assignments

* [A Lab on Risk-based Testing](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/A_Lab_on_Risk.pdf)
* [Specification-Based Testing and Analysis](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/Fall2011SpecificationAssign.pdf)
* [Feedback on Specification-Based Testing and Analysis assignment](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/HTSMandSpecs2011Feedback.pdf)
* [Test Design Lab](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/LabTestDesignFall2011.pdf)
* [Domain Testing Lab](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/LabDomaintestingFall2011.pdf)
* [Risk-based Domain Testing and Bug Reporting](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/AssignmentRiskDomainTestingFall2011.pdf)
* [Combination Testing Lab](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/Assignments/LabCombinationTestingFall2011.pdf)

## Study Guide

* [Test Design Study Guide](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Test%20Design/TestDesignStudyGuideSupersetDecember2011.pdf)


# Instructor

## Overview

### Becoming an Instructor

Instructors in the project are software testing professionals. To qualify as a course instructor, prospective candidates must:

* successfully complete the course they wish to teach
* complete an instructor training course
* work as an assistant instructor during several teachings of the same course -- with an increasing level of responsibility each time
* be recommended as a qualified lead instructor by other lead instructors
* be a member of the Association for Software Testing and therefore bound by the ACM Code of Ethics

### Instructor Training Course

The Instructor Training Course is currently offered online only from the [Association for Software Testing](https://www.associationforsoftwaretesting.org/courses/instructor-course-online/). Scheduling information for the online course is available at the Training link on the AST web site.

## Slides

* [Instructors Course Slides](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Instructor/BBSTInstructorsManual_Sept2012.pdf)

## Videos

### Lecture 1: BBST Teaching Philosophy and Models

The BBST online courses were developed in conjunction with the Association for Software Testing. In the time we taught these courses, we developed an apprenticeship model to help professional software testers become effective online instructors. In this lecture, we show how that model works and provide a broad overview of the BBST project and how it has evolved over the years. We also explain a bit about the underlying software testing philosophy that guides our approach to the field, and introduce you to some of the learning theories and perspectives that guided the development of the BBST courses. Finally, Fiedler explains why the various components are included in the BBST courses and how they all fit together.

* Lecture 1A: Introduction to the AST Instructor Apprentice Model (2 mins)
* Lecture 1B: BBST Overview (10 mins)
* Lecture 1C: Testing and Teaching Philosophy (6 mins)
* Lecture 1D: BBST Course Model (10 mins)

### Lecture 2: Instructor Responsibilities and Course Management

Teaching an online course requires you to pay attention to a lot of details. Here we cover pre-course setup and post-course wrap-up, as well as a review of the instructor's responsibilities -- especially as they relate to course management.

* Lecture 2A: Instructor Responsibilities (8 mins)
* Lecture 2B: Course Management (8 mins)

### Lecture 3: Communication in the Online Classroom

An instructor needs excellent communication skills to make the online classroom seems warm and friendly. This presentation shares ideas to help you set the right tone.

* Lecture 3: Communication in the Online Classroom (14 mins)

### Lecture 4: Feedback for Better Student Performance

Providing students with constructive feedback is an essential component of the online teacher's interactions with students. This presentation discusses a model and strategies to provide feedback focusing on improving student performance.

* Lecture 4: Feedback for Better Student Performance (12 mins)

### Lecture 5: Assessment and Grading

This brief lecture focuses on creating tools to help the online instructor provide consistent assessments to students.

* Lecture 5: Assessment and Grading (2 mins)

## Readings

### Required Readings

* [BBST Instructor's Manual (PDF)](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Instructor/OnlineInstructorCourseSlides_2011.pdf)


# Exploratory Testing

This is a course that was never really created. Here we've pulled the materials directly from [TestingEducation.org](http://testingeducation.org/BBST/exploratory/), written by Cem Kaner:

## Overview

Twenty-three years ago, I coined the phrase "exploratory testing." I didn't invent the practice but (as far as I can tell) I was the first public advocate of it.

As ET has become fashionable, a host of consultants and academics have started writing and speaking about it. Some of them have helped move the concepts of exploration and testing forward in interesting ways. This lecture asks what we know now: What is exploratory testing and how do we do it?

James Bach pointed out the essential characteristic of exploratory testing — the explorer is cognitively present. She actively, purposefully, curiously investigates the software under test, always with the responsibility of deciding, minute by minute, what is the most promising path to whatever she has chosen to investigate. There are no artificial limits on exploration. The tester is free to use whatever sources of information are available, including specifications, technical support records, competitors’ implementations of comparable software, and (of course) experiments (tests) that reveal information empirically. There are no limits on test techniques that explorers can use—for example, any degree of automation is fine. However, the explorer doesn’t simply rerun old tests and trust that they’ll reveal whatever is interesting. She tests to learn. She will probably scrutinize the behavior of the program as it is tested, looking for new ideas about how it might fail, how it might be further tested or measured, and how useful these tests are at this point in development. Test execution might be automated—thinking is not.

The antithesis of exploration is scripted testing, in which the tester (or a machine) follows a set of procedures laid out long ago, comparing the observed behavior with whatever results the test designer considered relevant or interesting back then. The cognition happened back then, not now.

The scope of exploration is the same as the scope of testing itself.

The old definition of testing—execution of a program with the intent of exposing coding errors—is far too narrow. I used to push this definition too, but my work went beyond it and so did the work of most other skilled testers. When the definition doesn’t describe the practice, I think we should value the practice and fix the definition. Here’s what I work from now:

> Software testing is a technical investigation conducted to provide stakeholders with empirical information about the quality of a software product, system or service.

The investigation includes research necessary to design information-revealing tests and interpret their results, building tools and data sets to make those tests possible, and communication necessary to report results to stakeholders in an effective way. Like any skilled tester, the explorer does all of these. The difference is that the explorer does them in any sequence that is useful, mixing research, design, execution, interpretation, and communication so as to keep exposing new information and keep up with the ongoing changes in market, platform, design, and implementation of the software under test.

The slides provide material for several videos, but we've only completed taping of the first one....

## Slides

* [ET Slides - Incomplete Redesign](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Exploratory%20Testing/slidesASTETIncomplete2021.pdf)
* [ET Slides - Original](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Exploratory%20Testing/slidesBBSTExploring2006.pdf)

## Videos

* [Lecture 1](http://testingeducation.org/BBST/exploratory/BBSTExploring1.wmv)


# Taking Exams

AST-BBST Exams are challenging essay exams. Here we explain how we grade and offer advice on how to prepare well for the exam.

## Slides

* [How we grade exams](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Exams/GradingEssayExams.pdf)

## Required Readings

* [Cem Kaner: Answering Essay Questions](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Exams/Kaner_Answering_Essay_Questions.pdf)

## Study Guide

* [Foundations Study Guide](https://github.com/associationforsoftwaretesting/ast-bbst-materials/blob/master/Exams/ExamEssayQuestions2010.pdf)


