Articles

O que é o Teste de Integração de Sistemas (SIT)? Aprender com Exemplos

Posted on

O que é o Teste de Integração de Sistemas?

Teste de Integração de Sistemas (SIT) é o teste global de todo o sistema que é composto por muitos sub-sistemas. O principal objectivo do SIT é assegurar que todas as dependências dos módulos de software estão a funcionar correctamente e que a integridade dos dados é preservada entre módulos distintos de todo o sistema.

SUT (System Under Test) pode ser composto por hardware, base de dados, software, uma combinação de hardware e software ou um sistema que requer interacção humana (HITL – Human in the Loop Testing).

Do contexto da engenharia de software e dos testes de software, o SIT pode ser considerado como um processo de teste que verifica a co-ocorrência do sistema de software com outros.

System Integration Testing SIT

SIT tem um pré-requisito no qual múltiplos sistemas integrados subjacentes já foram submetidos e passaram nos testes do sistema. O SIT testa então as interacções necessárias entre estes sistemas como um todo. Os resultados do SIT são passados ao UAT (User acceptance testing).

Need of System Integration Test

A principal função do SIT é fazer o teste de dependências entre diferentes componentes do sistema e, portanto, o teste de regressão é uma parte importante do SIT.

Para projectos colaborativos, o SIT é uma parte do STLC (Software Testing lifecycle). Geralmente, uma ronda pré-SIT é conduzida pelo fornecedor de software antes do cliente executar os seus próprios casos de teste SIT.

Na maioria das organizações que trabalham em projectos de TI seguindo o modelo Agile sprint, uma ronda de SIT é conduzida pela equipa de GQ antes de cada lançamento. Os defeitos encontrados no SIT são enviados de volta à equipa de desenvolvimento e trabalham nas correcções.

O lançamento do MVP (Produto Mínimo Viáveis) do sprint só vai quando este passa pelo SIT.

SIT é necessário para expor as falhas que ocorrem quando a interacção acontece entre os subsistemas integrados.

Existem vários componentes utilizados no sistema e não podem ser testados individualmente por unidade. Mesmo que a unidade seja testada individualmente, também há a possibilidade de falhar quando combinada no sistema, pois há muitos problemas que surgem quando os subsistemas interagem uns com os outros.

Assim, o SIT é muito necessário para expor e corrigir as falhas antes de implantar o sistema no fim do utilizador. O SIT detecta os defeitos numa fase inicial e assim poupa o tempo e o custo da sua reparação mais tarde. Também ajuda a obter feedback mais cedo sobre a aceitabilidade do módulo.

A granularidade do SIT

SIT pode ser realizada em três níveis diferentes de granularidade:

(i) Testes Intra-Sistemas: Este é um baixo nível de testes de integração que visa fundir os módulos para construir um sistema unificado.

(ii) Testes Intra-Sistemas: Este é um teste de alto nível que necessita de fazer interface com sistemas testados independentemente.

(iii) Testes em pares: Aqui, apenas dois subsistemas interligados em todo o sistema são testados de cada vez. Isto visa assegurar que os dois subsistemas podem funcionar bem quando combinados em conjunto, presumindo que os outros subsistemas já estão a funcionar bem.

Como realizar testes de integração de sistemas?

A forma mais simples de realizar o SIT é através do método Data-driven. Requer o uso mínimo de ferramentas de teste de software.

P>Primeiro, o intercâmbio de dados (importação e exportação de dados) acontece entre os componentes do sistema e depois o comportamento de cada campo de dados dentro da camada individual é examinado.

Após o software estar integrado, há três estados principais de fluxo de dados como mencionado abaixo:

#1) Estado dos dados dentro da camada de integração

A camada de integração actua como uma interface entre a importação e exportação de dados. A execução do SIT nesta camada requer alguns conhecimentos básicos sobre certas tecnologias como o esquema (XSD), XML, WSDL, DTD, e EDI.

O desempenho do intercâmbio de dados pode ser examinado nesta camada através dos passos abaixo:

  • Validar as propriedades dos dados dentro desta camada contra BRD/ FRD/ TRD (Documento de requisitos comerciais/ Documento de requisitos funcionais/ Documento de requisitos técnicos).
  • Verifica o pedido de serviço web utilizando XSD e WSDL.
  • Executar alguns testes unitários e validar os mapeamentos e pedidos de dados.
  • Realizar os registos de middleware.

#2) Estado dos dados dentro da camada de base de dados

Executar o SIT nesta camada requer um conhecimento básico de SQL e procedimentos armazenados.

O desempenho da troca de dados nesta camada pode ser examinado através dos seguintes passos:

  • Verifica se todos os dados da camada de integração chegaram com sucesso à camada de base de dados e foram comprometidos.
  • li>Validar as propriedades da tabela e da coluna contra BRD/ FRD/ TRD.

  • Validar as restrições e as regras de validação de dados aplicadas na base de dados de acordo com as especificações da empresa.
  • Verifica os procedimentos armazenados para qualquer processamento de dados.
  • Reveja os registos do servidor.

#3) O estado dos dados dentro da camada Aplicação

SIT pode ser executado nesta camada através dos passos abaixo:

  • Verifica se todos os campos requeridos estão visíveis na IU.
  • Executar alguns casos de teste positivos e negativos e validar as propriedades dos dados.

Nota: Pode haver muitas combinações correspondentes à importação e exportação de dados. Terá de executar o SIT para as melhores combinações, considerando o tempo disponível.

Testes do Sistema Vs Testes de Integração do Sistema

Diferenças entre Testes do Sistema e SIT:

>th>System Testing

SIT (System Integration Testing)
SIT é feito principalmente para verificar como os módulos individuais interagem uns com os outros quando integrados num sistema como um todo. Teste do sistema é feito principalmente para verificar se todo o sistema está a funcionar como esperado com referência aos requisitos especificados.
É conduzido após o teste da unidade e será feito sempre que um novo módulo for adicionado ao sistema. É conduzido ao nível final i.e. após a conclusão dos testes de integração e imediatamente antes de entregar o sistema para UAT.
É um teste de baixo nível. É um teste de alto nível.
Casos de teste do SIT centram-se na interface entre os componentes do sistema. Casos de teste, neste caso, focam-se na simulação dos cenários da vida real.

Teste de Integração do Sistema Vs Teste de Aceitação do Utilizador

Aqui está a diferença entre o SIT e o UAT:

SIT (Teste de Integração do Sistema) UAT (Aceitação do Utilizador Testing)
Este teste é da perspectiva de interface entre módulos. Este teste é da perspectiva dos requisitos do utilizador.
SIT é feito por desenvolvedores e testadores. UAT é feito por clientes e utilizadores finais.
Done after unit testing and before system testing. Este é o último nível de testes e é feito após os testes do sistema.
De um modo geral, os problemas encontrados no SIT estariam relacionados com o fluxo de dados, fluxo de controlo, etc. As questões encontradas no UAT seriam geralmente como as características que não estão a funcionar de acordo com os requisitos do utilizador.

A imagem abaixo sobre os níveis de testes tornaria claro para si o fluxo de testes da Unidade para o UAT:

Fluxo dos testes unitários para o UAT

SIT Exemplo

Deixe-nos assumir que uma empresa está a utilizar software para armazenar os detalhes do cliente.

Este software tem dois ecrãs na UI – Ecrã 1 & Ecrã 2, e tem uma base de dados. Os detalhes introduzidos no Ecrã 1 e no Ecrã 2 são introduzidos na base de dados. A partir de agora, a empresa está satisfeita com este software.

No entanto, alguns anos mais tarde, a empresa descobre que o software não está a cumprir os requisitos e que existe uma necessidade de melhoramento. Por conseguinte, desenvolveram um ecrã 3 e uma base de dados. Agora, este sistema com Ecrã 3 e uma base de dados está integrado com o software mais antigo/existente.

Teste de Integração do Sistema com Exemplo/p>

Agora, o teste feito em todo o sistema após a integração chama-se Teste de Integração do Sistema. Aqui, a coexistência de um novo sistema com um já existente é testada para assegurar que todo o sistema integrado funciona bem.

Técnicas SIT

Principalmente, existem 4 abordagens para fazer SIT:

  1. Abordagem de baixo para cima
  2. Abordagem de baixo para cima
  3. Abordagem de sanduíche
  4. Abordagem de grande impacto

A abordagem de cima para baixo e a abordagem de baixo para cima é uma espécie de abordagens incrementais. Comecemos primeiro a discussão com a abordagem de cima para baixo.

#1) Abordagem de cima para baixo:

p>A partir disto, o teste começa apenas com o módulo mais alto de uma aplicação, ou seja, a IU a que chamamos como um 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 mais tarde a funcionalidade é testada.

Após cada teste ser concluído, o stub é substituído pelo módulo real. Os módulos podem ser integrados de forma ampla ou de forma profunda. O teste continua até que toda a aplicação seja construída.

A vantagem desta abordagem é que não há necessidade de controladores e os casos de teste podem ser especificados em termos da 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. A escrita de stubs também é difícil.

Testes de integração

#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. Estes clusters servem como uma sub-função da aplicação. Depois é criado um condutor para gerir a entrada e saída do caso de teste. Depois disto, o cluster é testado.

Após o cluster ser testado, o driver é removido, e o cluster é combinado com o nível superior seguinte. Este processo continua até que toda a estrutura da aplicação seja alcançada.

Não há necessidade de stubs nesta abordagem. Torna-se simplificado à medida que o processamento se move para cima e a necessidade de condutores é reduzida. Esta abordagem é aconselhável para fazer SIT para sistemas orientados para objectos, sistemas em tempo real, e sistemas com necessidades rigorosas de desempenho.

No entanto, a limitação desta abordagem é o subsistema mais importante, ou seja, a IU é testada no último.

##3) Abordagem Sandwich:

Aqui, as abordagens top down e bottom up discutidas acima são combinadas.

O sistema é visto como tendo três camadas – a camada intermédia que é a camada alvo, uma camada acima do alvo e uma camada abaixo do alvo. Os testes são feitos em ambas as direcções e congregados na camada alvo que está no meio e isto é ilustrado na imagem abaixo.

Sandwich Testing Strategy

sandwich

Uma vantagem desta abordagem é que a camada superior e a camada inferior do sistema podem ser testadas em paralelo. Contudo, a limitação desta abordagem é que não testa exaustivamente os subsistemas individuais antes da integração.

Para eliminar esta limitação, modificámos os testes em sanduíche em que a integração das camadas superior, média e inferior são testadas em paralelo utilizando tocos e controladores.

teste sandwich modificado

#4) Abordagem Big Bang:

Nesta abordagem, a integração é feita uma vez que todos os módulos da aplicação estejam completamente prontos. Os testes são feitos após a integração de todos os módulos para verificar se o sistema integrado está a funcionar ou não.

É um desafio encontrar a causa raiz do problema nesta abordagem, uma vez que tudo é integrado de uma só vez, em oposição aos testes incrementais. Esta abordagem é geralmente adoptada quando apenas uma ronda de SIT é necessária.

big bang approach

Conclusion

Neste artigo, aprendemos o que é o Teste de Integração de Sistemas (SIT) e porque é que é importante realizá-lo.

Compreendemos os conceitos centrais, técnicas, abordagens e os métodos envolvidos na realização do SIT. Também percorremos o modo como o SIT é diferente do UAT e dos testes de sistemas.

Esperamos que tenha gostado deste excelente artigo!!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *