Tive uma discussão com um gerente de testes sobre o papel dos testes de unidade e integração. Ela solicitou que os desenvolvedores relatassem o que eles testaram na unidade e na integração e como. Minha perspectiva é que os testes de unidade e integração fazem parte do processo de desenvolvimento, não do processo de teste. Além da semântica, o que quero dizer é que os testes de unidade e integração não devem ser incluídos nos relatórios de teste e os testadores de sistemas não devem se preocupar com eles. Meu raciocínio é baseado em duas coisas.
Testes de unidade e integração são planejados e executados sempre contra uma interface e um contrato. Independentemente de você usar contratos formalizados, você ainda testa o que, por exemplo, um método deve fazer, ou seja, um contrato.
No teste de integração, você testa a interface entre dois módulos distintos. A interface e o contrato determinam quando o teste passa. Mas você sempre testa uma parte limitada de todo o sistema. O teste de sistemas, por outro lado, é planejado e executado de acordo com as especificações do sistema. A especificação determina quando o teste passa.
Não vejo nenhum valor em comunicar a amplitude e a profundidade dos testes de unidade e integração ao testador (sistemas). Suponha que eu escreva um relatório que liste que tipo de testes de unidade são executados em uma classe de camada de negócios específica. O que ele / ela deveria tirar disso?
Julgar o que deve e o que não deve ser testado é uma conclusão falsa, porque o sistema ainda pode não funcionar da maneira que as especificações exigem, mesmo que todos os testes de unidade e integração sejam aprovados.
Pode parecer uma discussão acadêmica inútil, mas se você trabalha em um ambiente estritamente formal como eu, é realmente importante determinar como fazemos as coisas. Enfim, eu estou totalmente errado?