Software Testing
Verification & validation, the five definitions of a bug and the seven testing principles, exhaustive testing, risk, testability, debugging and reviews, black box vs white box testing, the coverage ladder and MC/DC, equivalence partitioning & boundary value analysis, decision tables, cause-effect graphs & decision trees, test completion criteria, unit & integration testing, TDD and JUnit.
EXAM PRACTICE69 MCQs available• Flashcards
Test your knowledge: CSC312 — Software Testing
Interactive multiple-choice questions, flashcards, concept summaries, and scenario walkthroughs.
Topics
- 01
Lecture 1: Why We Test, and What Testing Really Is
- 1.1 Testing in the Age of AI & the SDLC Map6 exercises
- 1.2 Expected Results, Verification & Validation7 exercises
- 1.3 The STLC, Defects & the Economics of Testing5 exercises
- 1.4 Software Disasters & Functional vs. Non-Functional Requirements7 exercises
- 1.5 The Seven Principles of Testing8 exercises
- 1.6 The Five Definitions of a Bug7 exercises
- 02
Lecture 2: Why We Cannot Test Everything
- 2.1 Exhaustive Testing & the Calculator6 exercises
- 2.2 Risk-Based Testing & Testability6 exercises
- 2.3 Reading Code: the CalcEngine Walkthrough7 exercises
- 2.4 Testing vs. Debugging & the Five Debugging Strategies7 exercises
- 2.5 The Spiral of Unattainable Perfection5 exercises
- 2.6 Software Artifacts & the Four Kinds of Review7 exercises
- 08
Lecture 8: Unit Testing, Integration Testing & TDD
- 8.1 Unit Testing, Failures vs. Errors & Independence6 exercises
- 8.2 Harness, Stubs & Drivers5 exercises
- 8.3 Integration Testing, Top-Down vs. Bottom-Up6 exercises
- 8.4 Extreme Programming & the TDD Cycle8 exercises
- 8.5 JUnit, Fixtures, Assertions & Test Doubles6 exercises
- 8.6 Acceptance Testing & the Limits of TDD5 exercises
- Practice Exam: Unit Testing, TDD & Integration5 exercises