When writing software, destruction can be just as valuable as creation. Learn how to catch bugs and break software as you discover different testing methods that will help you build better software.
Syllabus
Domains, Ranges, Oracles, and Kinds of Testing
How to think about the different elements of software testing.
Code Coverage
How to find parts of a program that need more testing.
Random Testing
How to automatically generate test cases that break code in unexpected ways.
Advanced Random Testing
How to engineer a sophisticated random test case generator.
Consequences
How to deal with lots of bugs, how to take a big input that triggers a bug and make it smaller, how to report a bug, and more!