Software Testing & QA
Software Testing Foundations
Think like a tester: structured test design techniques, risk-based planning, and defect reports engineers actually trust.
Who it's for
Anyone starting in QA or software testing, and developers who want to design better test cases for their own code. No programming experience required, though the exercises use small JavaScript snippets to check your testing decisions.
What you'll be able to do
- Distinguish software quality from software testing, and testing's real limits
- Turn an ambiguous requirement into a precise, testable statement
- Apply equivalence partitioning, boundary-value analysis, decision tables, and state transition testing to design a small, defensible set of test cases
- Prioritize testing effort using risk (likelihood × impact) under real time constraints
- Write a defect report a developer can act on without asking follow-up questions
- Build a traceability matrix and choose what to automate versus test manually
Not started — 14 lessons, no account required.
Start this coursePractice this course →Add to a study plan →Interview questions →
Foundations of quality
What quality actually means, and why untestable requirements are a hidden cost.
- 16 min
Quality Is Everyone's Job, Testing Is a Discipline
What "quality" actually means for software, and how testing — one specific, learnable discipline — supports it without being solely responsible for it.
- 18 min
Turning Requirements Into Testable Statements
Why vague requirements produce vague tests, and how to rewrite an ambiguous requirement into something you can actually design test cases against.
Test levels and types
The vocabulary every real test plan uses: scope (levels) and question (types).
- 18 min
Test Levels: Unit, Integration, System, Acceptance
The four traditional test levels, what each one actually catches, and why relying on only one of them leaves real gaps.
- 17 min
Test Types: Functional, Non-Functional, Regression, and More
Test levels answer "how much of the system," test types answer "what kind of question." Learn the vocabulary that shows up in every real test plan.
Test design techniques
Four systematic techniques for choosing a small, defensible set of test cases.
- 15 min
Test Design Techniques: An Overview
Why picking test cases at random wastes effort, and the systematic approach the next several lessons will each teach in depth.
- 24 min
Equivalence Partitioning (Lab)
A hands-on lab: split an input space into classes the system should treat identically, then test one representative from each class instead of every possible value.
- 24 min
Boundary-Value Analysis (Lab)
A hands-on lab: target the exact edges of a valid range, where off-by-one errors overwhelmingly cluster in real systems.
- 26 min
Decision Tables for Combined Conditions (Lab)
A hands-on lab: when a result depends on several independent conditions combined together, a decision table finds the combinations one-input-at-a-time testing misses.
- 20 min
State Transition Testing
For systems that behave differently depending on what already happened, test the transitions between states — including the ones that should be rejected.
Exploration and risk
Finding what a plan couldn't anticipate, and prioritizing finite testing time.
- 17 min
Exploratory Testing With Structure
Structured techniques find the defects you already knew to look for. Exploratory testing, done with discipline, finds the ones nobody anticipated.
- 19 min
Risk-Based Testing and Test Planning
You can never test everything. Risk-based testing gives you a principled way to decide what gets tested first and hardest.
Reporting and process
Communicating defects clearly, and keeping coverage and regression sustainable.
- 17 min
Writing Defect Reports Testers Trust
A bug a developer can't reproduce is a bug that doesn't get fixed. Learn the anatomy of a defect report that actually gets acted on.
- 18 min
Traceability and Regression Strategy
Prove every requirement has a test, and build a regression strategy that catches old bugs coming back without re-testing everything by hand every release.
Testing in practice
How testing fits an agile team, and quality checks every tester can perform.
Where to go next
Optional -- these build well on what you just learned, but any course can come next.
API Testing and Automation
Test REST APIs like a professional: HTTP fundamentals, schema and boundary validation, chained workflows, security basics, and a maintainable automation structure.
Playwright Web Automation
Automate real browsers with Playwright's modern, reliable API: locators, auto-waiting, fixtures, network mocking, authentication state, parallel execution, and CI-ready diagnostics.