Capítulo 22. Testes de aceitação
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Como programador, é fácil concentrar-se nos testes que rodeiam diretamente a tua base de código: testes de unidade, testes de integração, testes de IU e semelhantes. Estes testes verificam se o código está a fazer o que pretendes. São uma ferramenta inestimável para manter a tua base de código livre de regressões. Eles também são completamente a ferramenta errada para construir o que um cliente espera.
Os desenvolvedores escrevem esses testes com total conhecimento do código, o que significa que os testes são tendenciosos em relação às expectativas do desenvolvedor. No entanto, não há garantia de que esse comportamento testado seja realmente o que o cliente deseja.
Considera o seguinte teste unitário:
deftest_chili_has_correct_ingredients():assertmake_chili().ingredients()==["Ground Beef","Chile Blend","Onion",..."Tomatoes","Pinto Beans"]
Este teste pode ser hermético; passa e detecta qualquer regressão feita no código. No entanto, quando apresentado a um cliente, podes ser confrontado com: "Não, eu queria chili à moda do Texas! Sabes, sem tomates ou feijões?" Todos os testes unitários do mundo não te vão salvar de construir a coisa errada.
É aqui que entram os testes de aceitação. Os testes de aceitação verificam se estás a construir o produto correto. Enquanto os testes unitários e os testes de integração são uma ...