Testing and quality foundations · Lesson 3

Where can a fault be found with the least ambiguity?

5 min read

Lesson objectives

  • Distinguish what a requirements review can find from what needs component or interface execution.
  • Allocate evidence across suitable test levels and state their blind spots.

Some problems can be found before a line of code runs. If a requirement says ‘an appointment may be cancelled until the previous day’ without defining the cutoff hour or time zone, reviewing the wording with the person who owns the need can expose the ambiguity immediately. That is static testing: examining a work product such as a requirement, design or code without executing the product. Dynamic testing runs an implementation with an input and observes its behavior. ‘Static’ does not mean unimportant, and execution alone cannot always reveal the source of a problem. If the team has not agreed what ‘previous day’ means, competing tests may each look reasonable. Good tests first establish the reference against which behavior is judged.

Early testing is not running every case early. It is placing a question where it can be answered clearly and economically. The meaning of ‘previous day’ belongs in a requirements review. An erroneous `<` versus `<=` comparison can be isolated in a component test at the boundary. A lost time-zone offset between interface and service needs an integration check. A Cancel control absent from the page despite a permissive service needs a system check. A system test may detect any of these symptoms, but diagnosing the cause can take longer because many layers participate. Start with precise checks and then add evidence that connects the layers. A large collection of end-to-end tests cannot prove an unobserved component or contract is correct.

Static and dynamic work also complement each other after a real failure. If the service accepts cancellation at exactly 15:00, compare behavior with the agreed rule first. If the rule says ‘before’, this is a repeatable mismatch. Then investigate whether comparison logic, time conversion or another interface path caused it; a single screen cannot prove root cause. If the rule was never settled, record a requirements question before accusing the developer of violating it. A quality report connects each judgment to an approved rule, input, expected result, actual result and remaining uncertainty. That prevents a release decision from resting on many tests of the wrong rule.

Lesson summary

Distinguish what a requirements review can find from what needs component or interface execution. Allocate evidence across suitable test levels and state their blind spots.