Unit-1: What is software testing and why it is so hard? Error, Fault, Failure, Incident, Test Cases Testing Process and Limitations of Testing No absolute proof of correctness Overview of Graph Theory Unit-2: Functional Testing: Boundary Value Analysis Equivalence Class Testing Decision Table Based Testing Cause-Effect Graphing Technique Structural Testing: Path testing DD-Paths Cyclomatic Complexity Graph Metrics Data Flow Testing Mutation testing Unit-3: Reducing the number of test cases: Prioritization guidelines Priority category Scheme Risk Analysis Regression Testing Slice based testing Testing Activities: Levels of Testing Unit Testing Integration Testing System Testing Debugging Domain Testing Unit-4: Object-Oriented Testing: Issues in Object-Oriented Testing Class Testing GUI Testing Object-Oriented Integration, and System Testing Testing Tools: Static Testing Tools Dynamic Testing Tools Characteristics of Modern Tools