Techniques and tools that are used inn the testing and verification of reliable software. Topics include debugging, technical reviews, static analysis, dynamic analysis, test coverage, formal verification techniques, symbolic execution, and automatic test data generation.