Software Testing & QA

Software Testing Foundations

Think like a tester: structured test design techniques, risk-based planning, and defect reports engineers actually trust.

beginner14 lessons6 modules5h total

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 course

Practice this course →Add to a study plan →Interview questions

Foundations of quality

What quality actually means, and why untestable requirements are a hidden cost.

  1. 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.

    16 min
  2. 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.

    18 min

Test levels and types

The vocabulary every real test plan uses: scope (levels) and question (types).

  1. 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.

    18 min
  2. 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.

    17 min

Test design techniques

Four systematic techniques for choosing a small, defensible set of test cases.

  1. 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.

    15 min
  2. 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
  3. 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.

    24 min
  4. 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.

    26 min
  5. 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.

    20 min

Exploration and risk

Finding what a plan couldn't anticipate, and prioritizing finite testing time.

  1. 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.

    17 min
  2. 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.

    19 min

Reporting and process

Communicating defects clearly, and keeping coverage and regression sustainable.

  1. 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.

    17 min
  2. 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.

    18 min

Testing in practice

How testing fits an agile team, and quality checks every tester can perform.

  1. Agile Testing, Accessibility, and Security Awareness

    How testing changes shape in an agile team, and two categories of quality — accessibility and security — every tester should know to watch for even without being a specialist.

    20 min

Where to go next

Optional -- these build well on what you just learned, but any course can come next.