Great work!

XP to next level

BugEater
EN

What Is Static Testing?

๐ŸŽฏ Learning Objectives

By the end of this lesson, you will:

  • Explain the difference between static and dynamic testing
  • Describe the Shift Left principle in your own words
  • Explain why catching bugs early is dramatically cheaper
  • Name at least 3 artifacts that can be statically tested

๐Ÿ” The Big Idea

Here's a question: When does testing start?

If your answer is "when the build is deployed to staging" โ€” you're leaving your best bugs on the table. ๐Ÿƒ

Testing starts the moment the first requirement is written.

๐Ÿ“– Static vs. Dynamic Testing

Dynamic Testing

Dynamic testing means executing the software. You run the app, click buttons, fill out forms, and observe what happens.

  • โœ… Requires working code
  • โœ… Finds runtime bugs
  • โŒ Can only test what's already been built

Static Testing

Static testing means reviewing artifacts without running them. You read documents, analyze specs, inspect mockups.

  • โœ… No running code needed
  • โœ… Finds problems at the source
  • โœ… Much cheaper to fix what you find
  • โœ… Works on: requirements, specs, user stories, design files, test plans, code (in code review)

๐Ÿ’ก Key insight: Static testing is testing the plan, not the product.

โฌ…๏ธ The Shift Left Principle

Imagine a timeline of a project:

[Requirements] โ†’ [Design] โ†’ [Development] โ†’ [Testing] โ†’ [Release]

Traditional QA sits near the right side โ€” testing after development.

Shift Left means moving QA activities toward the left โ€” earlier in the process. The earlier you find a problem, the cheaper it is to fix.

The Cost of Bugs (A Classic Rule of Thumb)

When found Relative cost to fix
In a requirement document 1x
In a design mockup 5x
During development 10x
During QA testing 25x
After release in production 100x

A bug found in a spec is fixed with one comment. A bug found in production requires a hotfix, a root-cause analysis, customer communication, and potentially a post-mortem.

๐Ÿ› ๏ธ What Can Be Statically Tested?

Almost any project artifact:

  • ๐Ÿ“„ Requirements documents (PRD, BRD, Tech Specs)
  • ๐Ÿ“ User Stories and Acceptance Criteria
  • ๐ŸŽจ Design mockups (Figma, Adobe XD, Sketch)
  • ๐Ÿงช Test plans and test cases (yes, you can review test plans!)
  • ๐Ÿ’ป Source code (code reviews are static testing)
  • ๐Ÿ“š User documentation (guides, FAQ, release notes)

๐ŸŒ Real-World Example

Spec says: "The system shall process payments quickly."

Static test question: What does "quickly" mean? 1 second? 10 seconds? 60 seconds?

This isn't a testable requirement. With a static review comment, you catch this ambiguity before a developer builds "quickly" however they interpret it โ€” and before you spend three days testing something that can't be objectively passed or failed.

๐Ÿ’ก Pro Tips

๐Ÿ’ก Tip 1: Before your next sprint, read the upcoming user stories and make a list of questions. Your developers will thank you for clarifying before they start coding.

๐Ÿ’ก Tip 2: Static testing isn't about being the grammar police. It's about making sure everyone on the team has the same understanding of what needs to be built.

๐Ÿ’ก Tip 3: Document your findings as questions, not accusations. "What should happen if the user doesn't fill in the email field?" lands better than "This spec is incomplete."

๐Ÿ“‹ Summary

  • Static testing = reviewing artifacts without executing code
  • Dynamic testing = running the software and observing behavior
  • Shift Left = move QA activities earlier in the project lifecycle
  • Early bugs cost dramatically less to fix than late bugs
  • Static testing applies to requirements, designs, stories, test plans, and documentation

Up next: the types of project documents you'll encounter in the wild โ€” and what to look for in each one.

Quiz

What is the key difference between static and dynamic testing?

According to the Shift Left principle, when should QA involvement ideally begin?

A product manager writes: "The search feature should return results quickly." Which quality criterion does this violate?

You find a bug in a requirement document. At what stage was it discovered relative to production?