what is system integration testing
O que é o Teste de Integração de Sistema?
O Teste de Integração de Sistema (SIT) é o teste geral de todo o sistema, que é composto de muitos subsistemas. O objetivo principal do SIT é garantir que todas as dependências do módulo de software estejam funcionando corretamente e que a integridade dos dados seja preservada entre módulos distintos de todo o sistema.
O SUT (System Under Test) pode ser composto por hardware, banco de dados, software, uma combinação de hardware e software ou um sistema que requer interação humana (HITL - Human in the Loop Testing).
Do contexto da engenharia de software e teste de software, o SIT pode ser considerado como um processo de teste que verifica a coocorrência do sistema de software com outros.
O SIT tem um pré-requisito no qual vários sistemas integrados subjacentes já foram submetidos e aprovados no teste do sistema. O SIT testa então as interações necessárias entre esses sistemas como um todo. As entregas do SIT são passadas para o UAT (teste de aceitação do usuário).
O que você aprenderá:
- Necessidade de teste de integração de sistema
- A Granularidade do SIT
- Como realizar o teste de integração do sistema?
- Teste de sistema versus teste de integração de sistema
- Teste de integração do sistema vs. teste de aceitação do usuário
- Exemplo SIT
- Técnicas SIT
- Conclusão
- Leitura recomendada
Necessidade de teste de integração de sistema
A principal função do SIT é testar dependências entre diferentes componentes do sistema e, portanto, o teste de regressão é uma parte importante do SIT.
Para projetos colaborativos, o SIT faz parte do STLC (ciclo de vida de teste de software). Geralmente, uma rodada pré-SIT é conduzida pelo fornecedor do software antes que o cliente execute seus próprios casos de teste SIT.
Na maioria das organizações que trabalham em projetos de TI seguindo o modelo de sprint Agile, uma rodada de SIT é conduzida pela equipe de QA antes de cada lançamento. Os defeitos encontrados no SIT são enviados de volta para a equipe de desenvolvimento e eles trabalham nas correções.
A liberação do MVP (Produto Mínimo Viável) do sprint vai apenas quando passa pelo SIT.
O SIT é necessário para expor as falhas que ocorrem quando ocorre a interação entre os subsistemas integrados.
Existem vários componentes usados no sistema e não podem ser testados individualmente. Mesmo que a unidade seja testada individualmente, também há a possibilidade de que ela falhe quando combinada no sistema, pois muitos problemas surgem quando os subsistemas interagem entre si.
Assim, o SIT é muito necessário para expor e corrigir as falhas antes de implantar o sistema no final do usuário. O SIT detecta os defeitos em um estágio inicial e, portanto, economiza tempo e custo de consertá-los posteriormente. Também ajuda você a obter feedback prévio sobre a aceitabilidade do módulo.
A Granularidade do SIT
O SIT pode ser conduzido em três níveis diferentes de granularidade:
(i) Teste Intra-Sistema: Este é um baixo nível de teste de integração que visa fundir os módulos para construir um sistema unificado.
(ii) Teste entre sistemas: Este é um teste de alto nível que precisa de interface de sistemas testados de forma independente.
(iii) Teste de pares: Aqui, apenas dois subsistemas interconectados em todo o sistema são testados por vez. O objetivo é garantir que os dois subsistemas possam funcionar bem quando combinados, presumindo que os outros subsistemas já estejam funcionando bem.
Como realizar o teste de integração do sistema?
A maneira mais simples de realizar SIT é por meio do método baseado em dados. Requer o uso mínimo de ferramentas de teste de software.
quais são as fases do SDLC?
Primeiro, a troca de dados (importação e exportação de dados) ocorre entre os componentes do sistema e, em seguida, o comportamento de cada campo de dados dentro da camada individual é examinado.
Uma vez que o software é integrado, existem três estados principais de fluxo de dados, conforme mencionado abaixo:
# 1) Estado dos dados na camada de integração
A camada de integração atua como uma interface entre a importação e exportação de dados. Executar SIT nesta camada requer algum conhecimento básico em certas tecnologias, como esquema (XSD), XML, WSDL, DTD e EDI.
O desempenho da troca de dados pode ser examinado nesta camada por meio das etapas abaixo:
- Valide as propriedades dos dados nesta camada em relação ao BRD / FRD / TRD (documento de requisitos de negócios / documento de requisitos funcionais / documento de requisitos técnicos).
- Faça uma verificação cruzada da solicitação de serviço da web usando XSD e WSDL.
- Execute alguns testes de unidade e valide os mapeamentos de dados e solicitações.
- Revise os logs de middleware.
# 2) Estado dos dados dentro da camada de banco de dados
A execução de SIT nesta camada requer um conhecimento básico de SQL e procedimentos armazenados.
O desempenho da troca de dados nesta camada pode ser examinado por meio das etapas abaixo:
- Verifique se todos os dados da camada de integração foram alcançados com sucesso na camada de banco de dados e foram confirmados.
- Valide as propriedades da tabela e da coluna em relação a BRD / FRD / TRD.
- Valide as restrições e regras de validação de dados aplicadas no banco de dados de acordo com as especificações do negócio.
- Verifique os procedimentos armazenados para quaisquer dados de processamento.
- Revise os logs do servidor.
# 3) Estado dos dados na camada de aplicativo
O SIT pode ser realizado nesta camada por meio das etapas abaixo:
como você abre um arquivo xml
- Verifique se todos os campos obrigatórios estão visíveis na IU.
- Execute alguns casos de teste positivos e negativos e valide as propriedades dos dados.
Observação: Pode haver muitas combinações correspondentes à importação e exportação de dados. Você precisará executar o SIT para as melhores combinações, considerando o tempo disponível para você.
Teste de sistema versus teste de integração de sistema
Diferenças entre teste de sistema e SIT:
SIT (Teste de Integração do Sistema) | Teste de Sistema |
---|---|
O SIT é feito principalmente para verificar como os módulos individuais interagem uns com os outros quando integrados em um sistema como um todo. | O teste do sistema é feito principalmente para verificar se todo o sistema está funcionando conforme o esperado com referência aos requisitos especificados. |
Ele é conduzido após o teste de unidade e será feito sempre que um novo módulo for adicionado ao sistema. | Ele é conduzido no nível final, ou seja, após a conclusão do teste de integração e logo antes de entregar o sistema para UAT. |
É um teste de baixo nível. | É um teste de alto nível. |
Os casos de teste SIT se concentram na interface entre os componentes do sistema. | Os casos de teste, neste caso, se concentram na simulação de cenários da vida real. |
Teste de integração do sistema vs. teste de aceitação do usuário
Aqui está a diferença entre SIT e UAT:
SIT (Teste de Integração do Sistema) | UAT (Teste de Aceitação do Usuário) |
---|---|
Este teste é feito sob a perspectiva da interface entre os módulos. | Este teste é feito da perspectiva dos requisitos do usuário. |
O SIT é feito por desenvolvedores e testadores. | O UAT é feito por clientes e usuários finais. |
Feito após o teste de unidade e antes do teste de sistema. | Este é o último nível de teste e é feito após o teste do sistema. |
Geralmente, os problemas encontrados no SIT estariam relacionados ao fluxo de dados, fluxo de controle, etc. | Os problemas encontrados no UAT geralmente seriam como os recursos que não estão funcionando de acordo com os requisitos do usuário. |
A imagem abaixo nos níveis de teste tornaria o fluxo do teste de unidade para o UAT claro para você:
Exemplo SIT
Suponhamos que uma empresa esteja usando um software para armazenar os detalhes do cliente.
Este software possui duas telas na IU - Tela 1 e Tela 2, e possui um banco de dados. Os detalhes inseridos na Tela 1 e na Tela 2 são inseridos no banco de dados. A partir de agora, a empresa está satisfeita com este software.
No entanto, alguns anos depois, a empresa descobre que o software não está atendendo aos requisitos e há necessidade de melhorias. Assim, eles desenvolveram uma Tela 3 e um banco de dados. Agora, este sistema com Tela 3 e um banco de dados está integrado com o software antigo / existente.
Agora, o teste feito em todo o sistema após a integração é chamado de teste de integração do sistema. Aqui, a coexistência de um novo sistema com um existente é testada para garantir que todo o sistema integrado funcione bem.
Técnicas SIT
Principalmente, existem 4 abordagens para fazer SIT:
- Abordagem de cima para baixo
- Abordagem de baixo para cima
- Abordagem Sanduíche
- Abordagem Big Bang
A abordagem de cima para baixo e a abordagem de baixo para cima são um tipo de abordagem incremental. Vamos começar a discussão com a abordagem de cima para baixo primeiro.
# 1) Abordagem de cima para baixo:
Com isso, o teste começa apenas com o módulo superior de um aplicativo, ou seja, a IU que chamamos de driver de teste.
A funcionalidade dos módulos subjacentes é simulada com stubs. O módulo superior é integrado com o stub do módulo de nível inferior um por um e, posteriormente, a funcionalidade é testada.
como declarar uma lista em java
Assim que cada teste é concluído, o stub é substituído pelo módulo real. Os módulos podem ser integrados de maneira ampla ou profunda. O teste continua até que todo o aplicativo seja construído.
A vantagem dessa abordagem é que não há necessidade de drivers e os casos de teste podem ser especificados em termos de funcionalidade do sistema.
O principal desafio neste tipo de abordagem é a dependência da disponibilidade da funcionalidade do módulo de nível inferior. Pode haver um atraso nos testes até que os módulos reais sejam substituídos por stubs. Escrever esboços também é difícil.
# 2) Abordagem de baixo para cima:
Elimina as limitações da abordagem de cima para baixo.
Neste método, primeiro, os módulos de nível mais baixo são montados para formar clusters. Esses clusters servem como uma subfunção do aplicativo. Em seguida, um driver é criado para gerenciar a entrada e saída do caso de teste. Depois disso, o cluster é testado.
Depois que o cluster é testado, o driver é removido e o cluster é combinado com o próximo nível superior. Esse processo continua até que toda a estrutura do aplicativo seja alcançada.
Não há necessidade de stubs nesta abordagem. Ele se torna simplificado conforme o processamento aumenta e a necessidade de drivers é reduzida. Essa abordagem é aconselhável para fazer SIT para sistemas orientados a objetos, sistemas de tempo real e sistemas com necessidades estritas de desempenho.
No entanto, a limitação dessa abordagem é o subsistema mais importante, ou seja, a IU é testada no final.
# 3) Abordagem Sanduíche:
Aqui, as abordagens de cima para baixo e de baixo para cima discutidas acima são combinadas.
O sistema é percebido como tendo três camadas - a camada do meio que é a camada de destino, uma camada acima do destino e uma camada abaixo do destino. O teste é feito em ambas as direções e se reúne na camada de destino que está no meio e isso é ilustrado na imagem abaixo.
Estratégia de teste sanduíche
Uma vantagem dessa abordagem é que a camada superior e a inferior do sistema podem ser testadas em paralelo. No entanto, a limitação dessa abordagem é que ela não testa exaustivamente os subsistemas individuais antes da integração.
Para eliminar essa limitação, modificamos o teste de sanduíche no qual a integração das camadas superior, média e inferior são testadas em paralelo usando stubs e drivers.
# 4) Abordagem do Big Bang:
Nessa abordagem, a integração é feita quando todos os módulos do aplicativo estão completamente prontos. O teste é feito após a integração de todos os módulos para verificar se o sistema integrado está funcionando ou não.
É um desafio encontrar a causa raiz do problema nesta abordagem, pois tudo é integrado ao mesmo tempo, em oposição ao teste incremental. Essa abordagem geralmente é adotada quando apenas uma rodada de SIT é necessária.
Conclusão
Neste artigo, aprendemos o que é System Integration Testing (SIT) e por que é importante realizá-lo.
Nós entendemos sobre os principais conceitos, técnicas, abordagens e métodos envolvidos na execução de SIT. Também explicamos como o SIT é diferente do UAT e dos testes de sistema.
Espero que tenham gostado deste excelente artigo !!
Leitura recomendada
- O que é Teste de Componente ou Teste de Módulo (Aprenda com Exemplos)
- O que é teste de comparação (aprenda com exemplos)
- O que é teste de integração (tutorial com exemplo de teste de integração)
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- As diferenças entre teste de unidade, teste de integração e teste funcional
- Teste Funcional Vs Teste Não Funcional
- Integração de Selenium com JMeter
- Spock para integração e teste funcional com selênio