A green test suite confirms that the scenarios it encodes passed; it does not prove that a system will behave correctly under every real-use condition. In an account published by Sangam Pandey on August 8, 2026, 96 passing test cases coexisted with three bugs discovered during one afternoon of use. Two of the reported failures involved timing and cached state; the third exposed a gap between a thrown error and a useful response. These incidents are illustrative, not evidence of how often test-blind bugs occur.
What a green test suite actually proves
Tests execute specified conditions and compare the results with specified expectations. A passing run is evidence for those cases—not for states the tests never reached, timing boundaries they never crossed, or responses they never inspected. As Pandey put it, “A green test suite and a working system are different things.” The September 22, 2026 DEV listing uses the title “Two bugs my green test suite could not see”; the detailed account discussed here is Pandey’s separate August 8, 2026 article, “Three Bugs My Test Suite Could Not Find.”
As an Amazon Associate I earn from qualifying purchases.
The account reports three bugs, so the title’s “two” should not be read as the total number in the companion account. The reported figures describe one project and are not independent benchmarks.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Three failures the passing tests did not expose
| Bug | What tests exercised | What happened in use | Reported change |
|---|---|---|---|
| Compile timing | A run that completed within the request’s time budget | The first context-card compile took 60 to 120 seconds, while the whole request had a 90-second budget. The compile could therefore finish on one run and exceed the budget on another. | The compile received a separate configurable 300-second budget. |
| Readiness check | A health request after earlier tests had warmed shared state | On a cold cache, /health called the compile function before returning its response. |
The revised check used source-file timestamps and a cache header without invoking compilation; Pandey reported a response time of about 20 milliseconds. |
| Unusable model draft | Whether an error was thrown | An empty or unusable draft reached a generic 500, without checking whether the caller received anything useful. | The bridge returned a 422 with the model’s raw text, which the caller could inspect or use when retrying. |
All timings and budgets in this table are Pandey’s report about one project, not independently measured results or general performance expectations.
1. A variable compile straddled the request budget
The first context-card compile reportedly took between 60 and 120 seconds, against a 90-second budget for the whole request. Because the observed compile range crossed the budget boundary, a test that happened to run quickly could pass without proving that a slower compile would succeed. Pandey reported separating the compile’s budget and making it configurable, with a 300-second compile budget after the change.
The practical testing lesson is to force the boundary condition instead of relying on natural runtime variation. Test what the system does when the operation exceeds its allotted time, and check that the outcome is intentional and actionable. Pandey summarized the point this way: “A budget that has never been deliberately exceeded in a test has never actually been tested, no matter how many times the suite around it has passed.”
2. A health check performed the work it was meant to check
In the reported project, /health called the same function that compiled the context card. Earlier tests had warmed shared state, so their health-check requests did not reproduce a first request on a cold cache. In real use, that cold request could trigger compilation before the endpoint returned.
Pandey says the fix checked source-file timestamps and a cache header without entering the compile path. The reported response time was about 20 milliseconds; that is a single project result, not a general latency guarantee. Kubernetes defines readiness probes as signals for when a container can accept traffic and recommends dedicated health-check endpoints with minimal response bodies for reliable HTTP probes. That guidance supports keeping probes purpose-built, but it does not independently verify this project’s implementation or timing. Kubernetes: Liveness, Readiness, and Startup Probes
3. An exception did not guarantee a useful failure response
The third gap was not whether the application failed; it was what the caller received when it failed. Tests checked that an error was thrown, but not whether a client could understand or act on the resulting response. Pandey describes an unusable or empty model draft falling through to a generic 500. The reported change returned a 422 with the model’s raw text, giving the caller material to inspect or use when retrying.
This example makes an important distinction: testing that an exception occurs is not the same as testing the external behavior of an error path. A useful assertion checks the status and response body the client actually sees, as well as whether that response gives the caller a reasonable next step.
Rank #4
How to make tests exercise the conditions that were missing
The incidents point to three practical test-design checks. They are not a guarantee against every defect, but they target the specific blind spots described in Pandey’s account.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute- Start from cold state. Run initialization-sensitive checks in a fresh process or with shared caches cleared, so earlier tests cannot quietly prepare the state that production’s first request will encounter.
- Cross timing boundaries deliberately. Make the operation exceed its configured budget under controlled test conditions and assert the intended timeout or recovery behavior. Do not treat an ordinary fast run as proof that the budget is sound.
- Assert caller-visible outcomes. For error paths, check the status, body, and information available to a client—not only that an exception occurred somewhere inside the application.
- Keep readiness checks narrow. Verify that the probe answers whether the service can accept traffic without triggering expensive initialization or returning unnecessary data.
What these incidents do—and do not—show
Pandey reports finding three bugs during one afternoon despite 96 passing test cases, and explicitly cautions that this experience is not a study. It illustrates how encoded scenarios can miss timing, cold-state, and caller-facing failure conditions. It does not establish how prevalent such bugs are, prove that more tests would always have caught them, or independently validate the reported fixes.
Best Value
The useful conclusion is narrower: passing tests are meaningful evidence about the cases they cover. To extend that evidence, deliberately test the slow path, the first-use path, and the response a real caller receives when something goes wrong.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




