← Últimos artigos
📊 statistics

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

Este artigo propõe um limite superior livre de distribuição para a probabilidade de um usuário encontrar um defeito de software não descoberto, demonstrando que a fração de defeitos relatados exatamente uma vez durante o teste beta (s/ns/n) serve como uma estimativa conservadora e independente de modelo adequada para decisões de lançamento.

Autores originais: Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Publicado 2026-07-21
📖 7 min de leitura🧠 Leitura aprofundada

Autores originais: Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

A Grande Caça aos Bugs: Por que Contar Bugs Não é Suficiente

Imagine que você é um chef prestes a servir um banquete gigante para milhares de convidados. Antes de abrir as portas, você tem uma equipe de provadores (seus testadores beta) que estiveram comendo a comida e gritando: "Ei, esta sopa está salgada demais!" ou "Tem uma pedra neste bolo!". Você corrige os problemas que eles encontram. Mas aqui surge a pergunta assustadora: Se você abrir as portas agora, quais são as chances de um convidado aleatório, ao entrar, morder uma pedra que você deixou passar?

Este é o cerne de um problema na ciência da computação chamado "confiabilidade de software". Durante décadas, desenvolvedores tentaram responder a isso contando. Eles perguntam: "Quantas pedras restam na cozinha?". Eles usam matemática complexa para adivinar o número total de bugs ocultos. Mas há um detalhe: saber que restam dez pedras não diz se elas estão todas no fundo da despensa (onde apenas uma pessoa pode encontrá-las) ou se uma pedra gigante está sentada bem na porta da frente (onde todos tropeçarão nela). Os métodos antigos costumam ficar presos tentando contar as pedras, ignorando que algumas pedras são muito mais perigosas do que outras devido ao lugar onde estão.

Para resolver isso, precisamos parar de contar pedras e começar a contar pessoas. Precisamos saber a probabilidade de um usuário realmente encontrar um problema. Este artigo aborda exatamente essa questão: em vez de perguntar "Quantos bugs restam?", ele pergunta: "Qual é a chance de um usuário encontrar um bug que ele nunca viu antes?". Acontece que existe uma maneira surpreendentemente simples de adivinhar isso, usando um truque que observa com que frequência os testadores encontram o mesmo bug mais de uma vez.


A Grande Ideia do Artigo: A Regra da "Maravilha Única"

Os autores, Carlos M. Hernández-Suárez e Karla Hernández-Cuevas, propõem um atalho inteligente. Eles sugerem que, para adivinhar o risco de um usuário encontrar um bug oculto, você não precisa saber o número total de bugs, como o software é construído ou mesmo quantas pessoas o estão usando. Você só precisa olhar para seus relatórios de bugs e contar algo muito específico: os bugs que foram relatados exatamente uma vez.

Vamos usar uma analogia. Imagine que você é um detetive tentando descobrir quantos tipos diferentes de espécies alienígenas estão visitando sua cidade. Você tem um registro de avistamentos.

  • Se você vê "Zog" 50 vezes, você sabe que Zog é um alienígena comum.
  • Se você vê "Xyl" 3 vezes, Xyl é um pouco mais raro.
  • Mas se você vê "Blorp" exatamente uma vez, e nunca mais, o que isso lhe diz?

O artigo argumenta que esses "Blorps" — os bugs vistos exatamente uma vez — são a chave. Eles chamam a fração desses avistamentos únicos (ss) dividida pelo número total de avistamentos (nn) de um "limite superior conservador". Em termos simples: A porcentagem de bugs que foram relatados exatamente uma vez é um palpite de "pior caso", seguro, para a porcentagem de usuários que encontrarão um bug novo e nunca visto antes.

Por que Isso Funciona (A Lógica da "Porta Fechada")

Você pode se perguntar: "E se houver bugs escondidos atrás de outros bugs? Como um quarto secreto atrás de uma porta trancada?". Os autores abordam isso com um raciocínio brilhante.

Imagine que o software é uma mansão gigante com muitos quartos. Alguns bugs estão no corredor (fáceis de encontrar). Alguns estão em um quarto secreto atrás de uma porta trancada (difíceis de encontrar).

  • Se um usuário atinge a porta trancada (um bug), ele não consegue entrar no quarto secreto atrás dela.
  • Portanto, o número de pessoas que podem alcançar o quarto secreto é sempre menor ou igual ao número de pessoas que atingem a porta trancada.

Os autores mostram que, devido a essa estrutura "aninhada", você não precisa se preocupar com os quartos ocultos. Os bugs de "relato único" que você encontrou já dão conta do risco dos ocultos. Se um bug é relatado uma vez, ele atua como uma "porta" que limita o risco de tudo o que está atrás dele. Assim, contar os relatos únicos é suficiente para cobrir a casa inteira.

O Que Eles Fizeram e O Que Descobriram

Os autores não apenas adivinharam; eles construíram um modelo matemático chamado "Forma Canônica" (pense nisso como um tipo especial de pote ou jarra cheio de bolas coloridas). Eles provaram matematicamente que, se você tratar seus relatórios de bugs como o ato de retirar bolas desse pote, a fração de bolas que aparecem apenas uma vez (s/ns/n) é a estimativa de máxima verossimilhança exata para a "massa ausente" (os bugs não vistos).

Crucialmente, eles mostraram que esta estimativa é conservadora. Isso significa que ela tende a superestimar o risco em vez de subestimá-lo.

  • Por que isso é bom: Se você é um desenvolvedor decidindo se deve lançar um software, você quer ser seguro. Se a matemática diz "Há uma chance de 5% de um bug", e a chance real é de 3%, você está seguro. Se a matemática dissesse 3% e a chance real fosse 5%, você estaria em apuros. Este método garante que você esteja sempre do lado seguro, inclinando-se para a cautela.

Eles testaram essa ideia usando simulações de computador (criando populações falsas de bugs com respostas conhecidas).

  • Em um teste com 20 bugs, descobriram que, à medida que "testavam" mais usuários (aumentando o tamanho da amostra de 25 para 400), sua estimativa (s/ns/n) era sempre maior ou igual ao número real de bugs não vistos.
  • Por exemplo, com 100 usuários de teste, o risco não visto real era 0,0059, e a estimativa deles era 0,0063. A estimativa era ligeiramente alta (conservadora), mas nunca baixa demais.

O Que Isso NÃO É (As Regras do Jogo)

O artigo é muito claro sobre o que este método não pode fazer, e é importante entender isso corretamente:

  1. NÃO é para contar bugs. Ele não diz "Restam 50 bugs". Ele diz "Há uma chance de 2% de um usuário encontrar um bug".
  2. NÃO é para listas públicas de bugs. Os autores excluem explicitamente o uso disso em bancos de dados de bugs padrão (como os da internet). Por quê? Porque nessas listas, um bug é geralmente relatado uma vez por uma pessoa, mesmo que 1.000 pessoas o tenham encontrado. A "contagem" se perde. Para usar este método, você precisa de dados que digam: "Este bug foi atingido por 50 usuários diferentes", e não apenas "Este bug foi relatado".
  3. NÃO é uma bola de cristal mágica para o futuro. Ele oferece um retrato do risco agora mesmo. Se você corrigir os bugs e testar novamente, terá que recalcular.

A Conclusão

Este artigo oferece uma resposta direta e sem rodeios para a decisão de lançamento. Ele diz: "Não se preocie com quantos bugs estão escondidos no escuro. Apenas observe quantos bugs seus testadores encontraram exatamente uma vez. Esse número, dividido pelo seu total de testes, é o seu palpite seguro de limite superior para quantos usuários ficarão presos em um bug que você deixou passar".

É uma ferramenta que transforma uma incerteza complexa e assustadora em um número simples e seguro, garantindo que, quando o software for lançado, os desenvolvedores tenham uma visão clara e conservadora do risco para seus usuários.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →