Removemos uma configuração de segurança de propósito e a verificação continuou verde
A verificação de segurança passou, e a configuração que ela protegia tinha sumido.
Tínhamos encontrado uma falha. Uma configuração de segurança que deveria estar sempre ligada tinha desaparecido de uma tarefa automatizada, e nada percebeu. Colocamos a configuração de volta. Depois escrevemos uma verificação para que ela nunca mais pudesse sumir em silêncio.
A primeira versão dessa verificação procurava o nome da configuração no texto ao redor. Ela passou. Para testar, removemos a configuração de verdade outra vez, de propósito, e rodamos a verificação.
Ela continuou passando. Um comentário perto do código explicava o que a configuração fazia, e esse comentário tinha as mesmas palavras que a verificação procurava. A verificação concordou com o comentário. Ela não dizia nada sobre a configuração em si, que tinha sumido.
Por que uma busca por palavra-chave parece segura
Uma verificação que procura uma palavra-chave é rápida de escrever e fácil de entender. Na maior parte do tempo, ela coincide com aquilo que importa para você. A falha aparece no único caso que conta: alguém remove a configuração, mas deixa uma explicação sobre ela para trás. Essa é uma das formas mais prováveis de uma configuração assim sumir na prática. Um comentário explicando uma regra não significa que a regra está sendo seguida.
O que mudamos
Reescrevemos a verificação para olhar a presença real da configuração na estrutura do trabalho, em vez de procurar o nome dela no texto ao redor (Ler em inglês). Foi mais trabalhoso de construir, e valeu a pena, porque a razão de existir da verificação era justamente pegar a falha que uma busca de texto não pegava.
A reescrita foi só metade do serviço. Não confiamos na nova versão só porque ela parecia mais cuidadosa. Quebramos a configuração de novo, com o mesmo comentário explicativo ainda ali, e confirmamos que dessa vez a verificação falhou. Só depois de vê-la falhar nesse problema exato é que passamos a confiar que ela pegaria o próximo.
Quem decide que uma verificação está provada
Escrever a verificação pode ser feito rápido, e boa parte pode ser delegada. Decidir que ela foi provada, não. Isso exige que uma pessoa escolha quebrar de propósito exatamente aquilo que a verificação protege e observe o que acontece. Uma verificação que ninguém tentou enganar é uma verificação que ninguém testou.
Se você é responsável por uma verificação de segurança, pergunte se alguém já a viu falhar quando a configuração protegida foi removida. Se a resposta for não, peça para alguém remover essa configuração de propósito, deixar qualquer comentário explicativo no lugar e ver se a verificação falha. Uma verificação que só compara o texto perto da configuração pode passar depois que a configuração já se foi.