Course objectives
After completing this course, students will be able to:
- Optimize Test Practices: Understand fundamental concepts and how to apply them to optimize testing in different SDLC contexts (Agile, Waterfall, etc.).
- Implement Test Techniques: Use established black-box, white-box, and experience-based techniques to design effective tests.
- Manage Test Activities: Understand test planning, prioritization, and the impact of risk on testing efforts.
- Collaborate Effectively: Contribute to reviews and work within a cross-functional team using the "whole team" approach to quality.
- Analyze Tools: Know the risks and benefits of test automation and identify essential tools to support testing.
Course outlines
- Chapter 1: Fundamentals of Testing
- What is Testing? (Objectives, Testing vs. Debugging).
- Why is Testing Necessary? (Testing and QA, Errors, Defects, and Failures).
- Testing Principles: The 7 fundamental principles of testing.
- Psychology of Testing: How to communicate effectively between testers and developers.
- Chapter 2: Testing Throughout the SDLC
- Testing in the Context of SDLC (DevOps, Shift-Left, and Retrospectives).
- Test Levels: Unit, Integration, System, and Acceptance Testing.
- Test Types: Functional, Non-functional, White-box, and Change-related testing.
- Chapter 3: Static Testing
- Static Testing Basics: The value of finding defects without executing code.
- The Review Process: Roles, responsibilities, and success factors for formal and informal reviews.
- Chapter 4: Test Analysis and Design
- Black-Box Techniques: Equivalence Partitioning, Boundary Value Analysis, Decision Tables, and State Transition Testing.
- White-Box Techniques: Statement and Branch testing/coverage.
- Experience-Based Techniques: Error Guessing, Exploratory Testing, and Checklist-based testing.
- Collaboration-Based Testing: Writing User Stories and Acceptance Criteria (ATDD).
- Chapter 5: Managing the Test Activities
- Test Planning: Estimation techniques, Test Pyramid, and Testing Quadrants.
- Risk Management: Distinguishing between Project and Product risks.
- Defect Management: How to write a clear and understandable defect report.
- Chapter 6: Test Tools
- Tool Support: Classifying test tools and their implementation.
- Test Automation: Identifying the benefits, risks, and limitations of automating tests