Um teste de integração verifica se os componentes de um sistema complexo (por exemplo, software, aeronave, usina) estão funcionando juntos, conforme projetado.
Vamos imaginar que estamos falando de uma aeronave (com o software é mais abstrato e difícil de fazer a diferença). Os testes de integração incluem, verificando:
- interação correta entre alguns componentes. Exemplo: ao pressionar o botão Iniciar, o motor dá partida e a hélice atinge a velocidade de rotação esperada (a aeronave ainda permanece no chão)
- interação correta com componentes externos. Exemplo: verifique se o rádio incorporado pode se comunicar com um rádio estacionário (aeronave ainda em terra)
- interação correta entre todos os componentes envolvidos, para que o sistema como um todo funcione conforme o esperado. Exemplo: uma equipe de pilotos e engenheiros de teste inicia o avião e voa com ele (todos usam pára-quedas ...).
O teste de integração soluciona um problema técnico , a saber, que o sistema funciona apesar de sua subdivisão em componentes. No software, os componentes podem ser casos de uso, módulos, funções, interfaces, bibliotecas, etc ...
O teste de aceitação verifica se o produto é adequado à finalidade. Eles são, em princípio, realizados pelo cliente. Tomando a analogia da aeronave, eles incluem a verificação de que:
- cenários de negócios previstos levam ao resultado esperado em uma situação quase real. Exemplo: ensaie um embarque com passageiros de teste para verificar se a equipe pode monitorar o embarque conforme o esperado com os procedimentos operacionais. Alguns cenários podem ser tão simples que parecem um teste de unidade, mas são realizados pelo usuário (por exemplo, tente os plugues elétricos com o equipamento da empresa).
- o sistema funciona em uma situação de negócios quase real. Exemplo: faça um voo de teste vazio entre dois destinos reais, com pilotos recém-treinados da companhia aérea para verificar se o consumo de combustível é o prometido.
O teste de aceitação aborda mais uma questão de responsabilidade . No relacionamento cliente / fornecedor, pode ser uma responsabilidade contratual (conformidade com todos os requisitos). Mas, em qualquer caso, também é responsabilidade da organização que os utiliza garantir que suas tarefas possam ser executadas com o sistema e evitar prudentemente qualquer problema imprevisto (por exemplo, essa empresa de ferrovias que descobriu durante os testes de aceitação que eles precisavam reduzir algumas delas porque os novos vagões eram 5 cm grandes demais - não é brincadeira!).
Conclusões: Os testes de integração e aceitação são sobrepostos. Ambos pretendem mostrar que o sistema como um todo funciona. No entanto, o "todo" pode ser maior para o cliente (porque o próprio sistema pode fazer parte de um sistema organizacional maior) e mais técnico para o integrador de sistemas: