Tudo bem …. então isso está me deixando louco, pois estou tentando encorajar a equipe a escrever mais testes, mas aqui estou incapaz de determinar se o exemplo a seguir é considerado uma integração ou um caso de teste funcional.
Considere o seguinte:
Temos um aplicativo da web simples que roteia / expõe uma série de feeds JSON . Cada solicitação do usuário requer que nosso aplicativo consulte um serviço externo via HTTP (no back-end) antes de realizar algumas transformações de dados e, em seguida, retornar uma resposta JSON serializada.
Usando uma biblioteca de terceiros, podemos registre cada interação HTTP exclusiva que ocorre no backend e grave-a no sistema de arquivos. Essas gravações são então “reproduzidas”, permitindo que os resultados da consulta sejam tratados como determinísticos durante o teste.
Meu caso de teste contém uma única afirmação. É apenas uma string que contém a resposta JSON esperada para um único feed. Depois de inicializarmos nosso aplicativo, permitimos que ele encaminhe uma solicitação antes de capturar a resposta e compará-la com o JSON esperado.
1) Este é um teste funcional ou um teste de integração?
2) Se funcional, então qual é exatamente a diferença entre “Teste de integração do Big Bang e teste funcional”?
Resposta
1) Este é um teste funcional ou um teste de integração?
Funcional teste e teste de integração são classificações de testes e não são mutuamente exclusivos.
Neste caso, são os dois. Os testes de integração são, por definição, qualquer teste que teste mais de um componente. Pode ser em um nível baixo para testar duas classes que funcionam juntas, ou podem ser testes que testam todo o sistema como um todo.
Os testes funcionais são testes que confirmam uma determinada função do sistema. Então, se eu tiver um requisito ” o sistema deve persistir o objeto de usuários no banco de dados “, o teste funcional pode verificar esse requisito iniciando o sistema, salvando um usuário, parando o sistema, iniciando-o novamente e verificando se o usuário existe e não mudou.
Se você estiver escrito ing casos de teste de uma especificação de requisito ou de histórias de usuário, eu chamaria seus casos de teste de “testes funcionais”, mas eles também são classificados como testes de integração por natureza.
2) Se funcional, qual é exatamente a diferença entre “Teste de integração do Big Bang e teste funcional”?
Do meu entendimento “big bang teste de integração “é um teste de integração em que todos os componentes do sistema são integrados e depois testados. O objetivo deste teste é verificar se todos os componentes estão se integrando corretamente e se o aplicativo pode ser iniciado. A desvantagem desse tipo de teste é que a falha de um caso de teste dá muito pouca direção para onde está o bug, por isso é importante ter testes de integração de nível inferior também.
Seus testes funcionais provavelmente também integre todos os componentes do sistema antes de testar. Mas, embora o teste de integração big bang possa parecer semelhante porque todo o sistema está sendo iniciado, eles são conceitualmente diferentes.