Exatamente! Excelente post.
O mais irônico disso tudo é que testes baseados em requisitos são o padrão ouro de sistemas críticos desde os anos 80. Basicamente, é por isso que avião não cai do céu (embora a Boeing discorde rs). O agile "matou" os requisitos funcionais. E agora a IA está nos forçando a trazê-lo de volta.
O próximo passo lógico é repensar onde colocamos nosso esforço humano!!! Hoje nosso tempo é muito mais valioso revisando (escrever é passado) os testes do que o código em si. Porque o teste é a verdadeira especificação do sistema.
Além disso, TDD é só o começo.
Adiciono três pontos cruciais para essa abordagem:
-
Testes de Mutação são obrigatórios: A IA e o estag adoram criar testes com asserts fracos só para ganhar cobertura. O teste de mutação é o 'detector de mentiras' para garantir que os testes realmente pegam bugs.
-
100% de cobertura é o minímo: O que antes era caro e exaustivo em horas, hoje tem custo quase zero. Não é mais opcional.
-
Rastreabilidade: Tenha evidências de qual requisito cada linha de código implementa e de qual teste está cobrindo ela.