Ir para o conteúdo

Cobertura versus a literatura

A família se mede contra o Open Catalog of Test Smells (UFAL / easy-software): 517 smells documentados em 1621 referências e 166 fontes. Nomear o denominador mantém as afirmações honestas. Ele diz contra qual universo as ferramentas foram checadas e, igualmente importante, o que fica fora do escopo de propósito.

Um eixo: false-green

Toda ferramenta da família detecta uma coisa: um teste que passa verde sem proteger nada (a taxonomia F1-F8). A esmagadora maioria do catálogo é uma preocupação diferente. Misturar essas elevaria a taxa de falso-positivo, e uma ferramenta que grita lobo é desligada.

O que fica de fora, e por quê

Categoria Por que fica fora Exemplos (id do catálogo)
Fragilidade / false-red quebra sem um bug real; o eixo oposto Sensitive Equality, Brittle Assertion, Fragile Fixture, Interface/Behavior Sensitivity, Overspecified Software
Higiene / manutenibilidade o teste ainda protege; só é difícil de ler (território de linter: ruff, ESLint, Robocop) Assertion Roulette, Magic Number Test, Long Test, Verbose Test, Overcommented Test, Missing Assertion Message
Lento / performance tempo de execução, invisível no arquivo Slow Test, Slow Component Usage
Design arquitetura, não o verde do teste Constructor Initialization, Refused Bequest, Hard-To-Test Code
Nomenclatura / docs legibilidade; um linter cuida Anonymous Test, Bad Naming, Absence Of Why, Bad Comment Rate
Duplicação manutenibilidade Test Code Duplication, Duplicated Code, Duplicate Assert
Runtime / cultura precisa da suíte rodando, ou é prática de time Test Run War, Erratic Test, Manual Intervention, Frequent Debugging

O catálogo usa o próprio esquema de id (A16, S06, C30), que não é o mesmo dos códigos da família (C1, C23). Os ids acima são os do catálogo.

A fronteira é deliberada, não acidental

Vários smells parecem fora do escopo mas têm um proxy de false-green que a família pega. As ferramentas adotam a forma estaticamente provável e de baixo falso-positivo de cada fronteira e deixam o resto:

Smell do catálogo O proxy que a família pega
Nondeterministic / flaky test C16 (tempo, aleatoriedade ou sleep descontrolados)
Resource Optimism C23 (caminho ou URL de IP hard-coded)
Interacting / order-dependent tests C24 / C15 / S13 (estado compartilhado)
Conditional Test Logic C1 / C21 (uma assertion que pode nunca rodar)
No Assertions / Empty / Assertionless Test C2 / C2b
Rotten Green Test o produto inteiro: o eixo false-green

Alguns smells de higiene aparecem como diagnósticos opcionais (desligados por padrão, não false-green): Assertion Roulette como D1, Magic Number como D8, Duplicate Assert como D3, Long Test como M2. Onde um linter dedicado cobre um smell melhor, os scanners cedem o lugar.

Por que isso importa para a pesquisa

Esta página é a declaração de ameaças à validade em forma pública. Precisão e recall são reportados contra a fatia false-green do catálogo, não contra os 517 inteiros, e a tabela de fronteira acima mostra exatamente onde a linha fica. O cruzamento completo (cada smell do catálogo mapeado como dentro ou fora do escopo, com o motivo) vive no hub privado de pesquisa; só o denominador e a fronteira são públicos, nunca a adjudicação crua.