1.1. Humans, Errors, and Testing1.1.1 Errors, faults, and failures1.1.2 Test automation1.1.3 Developer and tester as two roles1.2. Software Quality1.2.1 Quality attributes1.2.2 Reliability1.3. Requirements, Behavior and Correctness1.3.1 Input domain1.3.2 Specifying program behavior1.3.3 Valid and invalid inputs1.4. Correctness Versus Reliability1.4.1 Correctness1.4.2 Reliability1.4.3 Operational profiles1.5. ΤEsting and Debugging1.5.1 Preparing a test plan1.5.2 Constructing test data1.5.3 Executing the program1.5.4 Assessing program correctness1.5.5 Constructing an oracle1.6. Test Metrics1.6.1 Organizational metrics1.6.2 Project metrics1.6.3 Process metrics1.6.4 Product metrics: generic1.6.5 Product metrics: OO software1.6.6 Progress monitoring and trends1.6.7 Static and dynamic metrics1.6.8 Testability1.7. Software and Hardware Testing1.8. Testing and Verification1.9. Defect Management1.10. Test Generation Strategies1.11. Static Testing1.11.1 Walkthroughs1.11.2 Inspections1.11.3 Software complexity and static testing 1.12. Model-Based Testing and Model Checking1.13. Types of Testing1.13.1 Classifier: CI: Source of test generation1.13.2 Classifier: C2: Life cycle phase1.13.3 Classifier: C3: Goal-directed testing 1.13.4 Classifier: C4: Artifact under test1.13.5 Classifier: C5: Test process models1.14. The Saturation Effect1.14.1 Confidence and true reliability1.14.2 Saturation region1.14.3 False sense of confidence1.14.4 Reducing ∆1.14.5 Impact on test process1.15. Principles of Testing1.16. ToolsSummaryExercises