Fundamentals of Testing What is Software Testing? Typical Objectives of Testing Testing and Debugging Why Software Testing is Necessary? Testing's Contribution to Success Quality Assurance and Testing Errors, Defects, and Failures Defects Root Causes and Effects Seven Testing Principles Test Process in Context Test Activities and Tasks Test Planning Test Monitoring and Control Test Analysis Test Design Test Implementation Test Execution Test Completion Test Work Products Traceability between the Test Basis and Test Work Products The Psychology of Testing Testing Throughout the Software Development Lifecycle Software Development Models Software Development and Software Testing Software Development Lifecycle Models in Context Test Levels Component Testing Integration Testing System Testing Acceptance Testing Types of Acceptance Testing Test Types Functional Testing Non-Functional Testing White-box Testing Change-Related Testing Test Types and Test Levels Maintenance Testing Static Testing What is Static Testing? Static Testing Work Products Benefits of Static Testing Static vs Dynamic Testing Review Process Work Product Review Process Roles and Responsibilities in a Formal Review Types of Reviews Applying Review Techniques Success Factors for Reviews Test Techniques Software Test Techniques Black-box Testing Equivalence Class Testing Boundary Value Analysis Decision Table Testing State Transition Testing Use Case Testing White-box Testing Statement Testing and Coverage Exploratory testing: Experience-based Techniques Test Management Tasks of a Test Manager and Tester Test Organization Test Organization and Independence Test Planning and Estimation Test Process: Evaluating Exit Criteria and Reporting Test Monitoring and Control Tool Support for Testing