← Latest papers
📊 statistics

An Upper Bound on the Probability That a User Encounters an Undiscovered Defect

This paper proposes a distribution-free upper bound for the probability that a user encounters an undiscovered software defect, demonstrating that the fraction of defects reported exactly once during beta testing (s/ns/n) serves as a conservative, model-independent estimate suitable for release decisions.

Original authors: Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Published 2026-07-21
📖 7 min read🧠 Deep dive

Original authors: Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

The Great Bug Hunt: Why Counting Bugs Isn't Enough

Imagine you are a chef about to serve a giant banquet to thousands of guests. Before you open the doors, you have a team of taste-testers (your beta testers) who have been eating the food and shouting out, "Hey, this soup is too salty!" or "There's a rock in this cake!" You fix the problems they find. But here is the scary question: If you open the doors right now, what are the odds that a random guest walking in will bite into a rock you missed?

This is the heart of a problem in computer science called "software reliability." For decades, developers have tried to answer this by counting. They ask, "How many rocks are left in the kitchen?" They use complex math to guess the total number of hidden bugs. But there's a catch: knowing there are ten rocks left doesn't tell you if they are all in the back of the pantry (where only one person might find them) or if one giant boulder is sitting right on the front door (where everyone will trip over it). The old methods often get stuck trying to count the rocks, ignoring that some rocks are much more dangerous than others because of where they are.

To solve this, we need to stop counting rocks and start counting people. We need to know the probability that a random person will actually hit a problem. This paper tackles that exact question: instead of asking "How many bugs are left?", it asks, "What is the chance a user will run into a bug they've never seen before?" It turns out there is a surprisingly simple way to guess this, using a trick that looks at how often testers find the same bug more than once.


The Paper's Big Idea: The "One-Time Wonder" Rule

The authors, Carlos M. Hernández-Suárez and Karla Hernández-Cuevas, propose a clever shortcut. They suggest that to guess the risk of a user hitting a hidden bug, you don't need to know the total number of bugs, how the software is built, or even how many people are using it. You just need to look at your bug reports and count something very specific: the bugs that were reported exactly once.

Let's use an analogy. Imagine you are a detective trying to figure out how many different types of alien species are visiting your town. You have a logbook of sightings.

  • If you see "Zog" 50 times, you know Zog is a common alien.
  • If you see "Xyl" 3 times, Xyl is a bit rarer.
  • But if you see "Blorp" exactly one time, and never again, what does that tell you?

The paper argues that these "Blorps"—the bugs seen exactly once—are the key. They call the fraction of these single sightings (ss) divided by the total number of sightings (nn) a "conservative upper bound." In plain English: The percentage of bugs that were reported exactly once is a safe, "worst-case" guess for the percentage of users who will hit a brand-new, unseen bug.

Why This Works (The "Closed Door" Logic)

You might wonder: "What if there are bugs hidden behind other bugs? Like a secret room behind a locked door?" The authors address this with a brilliant piece of logic.

Imagine the software is a giant mansion with many rooms. Some bugs are in the hallway (easy to find). Some are in a secret room behind a locked door (hard to find).

  • If a user hits the locked door (a bug), they can't get into the secret room behind it.
  • Therefore, the number of people who can reach the secret room is always less than or equal to the number of people who hit the locked door.

The authors show that because of this "nested" structure, you don't need to worry about the hidden rooms. The "single-report" bugs you did find already account for the risk of the hidden ones. If a bug is reported once, it acts as a "door" that limits the risk of everything behind it. So, counting the single reports is enough to cover the whole house.

What They Did and What They Found

The authors didn't just guess; they built a mathematical model called the "Canonical Form" (think of it as a special kind of urn or jar filled with colored balls). They proved mathematically that if you treat your bug reports like drawing balls from this jar, the fraction of balls that appear only once (s/ns/n) is the exact maximum-likelihood estimate for the "missing mass" (the unseen bugs).

Crucially, they showed that this estimate is conservative. This means it tends to overestimate the risk rather than underestimate it.

  • Why this is good: If you are a developer deciding whether to release software, you want to be safe. If the math says "There is a 5% chance of a bug," and the real chance is 3%, you are safe. If the math said 3% and the real chance was 5%, you'd be in trouble. This method ensures you are always on the safe side, erring toward caution.

They tested this idea using computer simulations (creating fake populations of bugs with known answers).

  • In one test with 20 bugs, they found that as they "tested" more users (increasing the sample size from 25 to 400), their estimate (s/ns/n) was always higher than or equal to the true number of unseen bugs.
  • For example, with 100 test users, the true unseen risk was 0.0059, and their estimate was 0.0063. The estimate was slightly too high (conservative), but never too low.

What This Is NOT (The Rules of the Game)

The paper is very clear about what this method cannot do, and it's important to get this right:

  1. It is NOT for counting bugs. It doesn't tell you "There are 50 bugs left." It tells you "There is a 2% chance a user hits a bug."
  2. It is NOT for public bug lists. The authors explicitly rule out using this on standard bug databases (like those on the internet). Why? Because in those lists, a bug is usually reported once by one person, even if 1,000 people found it. The "count" is lost. To use this method, you need data that says, "This bug was hit by 50 different users," not just "This bug was reported."
  3. It is NOT a magic crystal ball for the future. It gives a snapshot of the risk right now. If you fix the bugs and test again, you have to recalculate.

The Bottom Line

This paper offers a direct, no-nonsense answer to the release decision. It says: "Don't worry about how many bugs are hiding in the dark. Just look at how many bugs your testers found exactly one time. That number, divided by your total tests, is your safe, upper-limit guess for how many users will get stuck on a bug you missed."

It's a tool that turns a complex, scary uncertainty into a simple, safe number, ensuring that when software ships, the developers have a clear, conservative view of the risk to their users.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →