O que é teste de integração?
O TESTE DE INTEGRAÇÃO é definido como um tipo de teste onde os módulos de software são integrados logicamente e testados como um grupo. Um projeto de software típico consiste em vários módulos de software, codificados por diferentes programadores. O objetivo deste nível de teste é expor defeitos na interação entre esses módulos de software quando eles são integrados
O Teste de Integração se concentra em verificar a comunicação de dados entre esses módulos. Por isso, também é denominado como 'I&T' (Integração e Teste), 'Teste de String' e, às vezes, 'Teste de Thread' .
- O que é teste de integração?
- Por que fazer o teste de integração?
- Exemplo de caso de teste de integração
- Abordagens, estratégias, metodologias de teste de integração
- Abordagem do Big Bang:
- Abordagem Incremental
- O que é Stub e Driver?
- Integração de baixo para cima
- Integração de cima para baixo:
- Integração híbrida / sanduíche
- Como fazer o teste de integração?
- Breve descrição dos planos de teste de integração:
- Critérios de entrada e saída de teste de integração
- Melhores práticas / diretrizes para testes de integração
Por que fazer o teste de integração?
Embora cada módulo de software seja testado por unidade, os defeitos ainda existem por vários motivos, como
- Um Módulo, em geral, é projetado por um desenvolvedor de software individual cujo entendimento e lógica de programação podem diferir de outros programadores. O teste de integração torna-se necessário para verificar se os módulos de software funcionam na unidade
- No momento do desenvolvimento do módulo, há grandes chances de mudança de requisitos por parte dos clientes. Esses novos requisitos podem não ser testados na unidade e, portanto, o Teste de integração do sistema torna-se necessário.
- As interfaces dos módulos de software com o banco de dados podem estar erradas
- Interfaces externas de hardware, se houver, podem estar erradas
- O tratamento inadequado de exceções pode causar problemas.
Clique aqui se o vídeo não estiver acessível
Exemplo de caso de teste de integração
O Caso de Teste de Integração difere de outros casos de teste no sentido de que foca principalmente nas interfaces e fluxo de dados / informações entre os módulos . Aqui, a prioridade deve ser dada para os links de integração em vez das funções da unidade que já foram testadas.
Exemplos de casos de teste de integração para o seguinte cenário: O aplicativo tem 3 módulos que dizem 'Página de login', 'Caixa de correio' e 'Excluir e-mails' e cada um deles é integrado logicamente.
Aqui, não se concentre muito no teste da página de login, pois isso já foi feito no teste de unidade. Mas verifique como ele está vinculado à página da caixa de correio.
Similarmente Mail Box: Verifique sua integração com o Módulo Delete Mails.
ID de caso de teste | Objetivo do Caso de Teste | Descrição do Caso de Teste | resultado esperado |
---|---|---|---|
1 | Verifique o link da interface entre o módulo Login e Caixa de Correio | Insira as credenciais de login e clique no botão Login | Para ser direcionado para a caixa de correio |
2 | Verifique o link da interface entre a caixa de correio e o módulo de exclusão de emails | Na caixa de correio, selecione o e-mail e clique em um botão de exclusão | O e-mail selecionado deve aparecer na pasta Deleted / Trash |
Abordagens, estratégias, metodologias de teste de integração
A Engenharia de Software define uma variedade de estratégias para executar o teste de integração, viz.
- Abordagem do Big Bang:
- Abordagem incremental: que é subdividida nas seguintes
- Abordagem de cima para baixo
- Abordagem de baixo para cima
- Abordagem Sanduíche - Combinação de cima para baixo e de baixo para cima
Abaixo estão as diferentes estratégias, a forma como são executadas e suas limitações, bem como vantagens.
Teste de Big Bang
O Big Bang Testing é uma abordagem de teste de integração em que todos os componentes ou módulos são integrados ao mesmo tempo e depois testados como uma unidade. Este conjunto combinado de componentes é considerado uma entidade durante o teste. Se todos os componentes da unidade não forem concluídos, o processo de integração não será executado.
Vantagens:
- Conveniente para sistemas pequenos.
Desvantagens:
- A localização de falhas é difícil.
- Dado o grande número de interfaces que precisam ser testadas nesta abordagem, alguns links de interfaces a serem testados podem ser perdidos facilmente.
- Como o teste de integração só pode começar depois que "todos" os módulos forem projetados, a equipe de teste terá menos tempo para execução na fase de teste.
- Como todos os módulos são testados ao mesmo tempo, os módulos críticos de alto risco não são isolados e testados com prioridade. Módulos periféricos que lidam com interfaces de usuário também não são isolados e testados em prioridade.
Teste Incremental
Na abordagem de Teste Incremental , o teste é feito integrando dois ou mais módulos que estão logicamente relacionados entre si e, em seguida, testados quanto ao funcionamento adequado do aplicativo. Em seguida, os outros módulos relacionados são integrados de forma incremental e o processo continua até que todos os módulos relacionados logicamente sejam integrados e testados com sucesso.
A Abordagem Incremental, por sua vez, é realizada por dois Métodos diferentes:
- Debaixo para cima
- Careca
Stubs e drivers
Stubs e drivers são os programas fictícios em testes de integração usados para facilitar a atividade de teste de software. Esses programas atuam como substitutos dos modelos ausentes no teste. Eles não implementam toda a lógica de programação do módulo de software, mas simulam a comunicação de dados com o módulo de chamada durante o teste.
Stub : é chamado pelo Módulo em Teste.
Driver : Chama o Módulo a ser testado.
Teste de integração ascendente
O teste de integração ascendente é uma estratégia em que os módulos de nível inferior são testados primeiro. Esses módulos testados são usados posteriormente para facilitar o teste de módulos de nível superior. O processo continua até que todos os módulos de nível superior sejam testados. Uma vez que os módulos de nível inferior são testados e integrados, o próximo nível de módulos é formado.
Representação Esquemática :
Vantagens:
- A localização de falhas é mais fácil.
- Não se perde tempo esperando que todos os módulos sejam desenvolvidos, ao contrário da abordagem Big-bang
Desvantagens:
- Módulos críticos (no nível superior da arquitetura de software) que controlam o fluxo do aplicativo são testados por último e podem estar sujeitos a defeitos.
- Um protótipo inicial não é possível
Teste de integração de cima para baixo
Teste de integração de cima para baixo é um método no qual o teste de integração ocorre de cima para baixo, seguindo o fluxo de controle do sistema de software. Os módulos de nível superior são testados primeiro e, em seguida, os módulos de nível inferior são testados e integrados para verificar a funcionalidade do software. Os stubs são usados para teste se alguns módulos não estiverem prontos.
Representação Esquemática:
Vantagens:
- A localização de falhas é mais fácil.
- Possibilidade de obter um protótipo inicial.
- Módulos críticos são testados em prioridade; as principais falhas de projeto poderiam ser encontradas e corrigidas primeiro.
Desvantagens:
- Precisa de muitos Stubs.
- Módulos em um nível inferior são testados inadequadamente.
Teste de Sanduíche
O teste sanduíche é uma estratégia na qual os módulos de nível superior são testados com módulos de nível inferior, ao mesmo tempo que os módulos inferiores são integrados aos módulos superiores e testados como um sistema. É uma combinação das abordagens Top-down e Bottom-up, portanto, é chamado de Teste de Integração Híbrida . Ele faz uso tanto de stubs quanto de drivers.
Como fazer o teste de integração?
O procedimento de teste de integração independentemente das estratégias de teste de software (discutidas acima):
- Prepare o Plano de Testes de Integração
- Projete os cenários de teste, casos e scripts.
- Executando os Casos de Teste seguido do relato dos defeitos.
- Rastreando e testando novamente os defeitos.
- As etapas 3 e 4 são repetidas até que a integração seja concluída com sucesso.
Breve descrição dos planos de teste de integração:
Inclui os seguintes atributos:
- Métodos / abordagens para teste (conforme discutido acima).
- Escopos e itens fora dos escopos do teste de integração.
- Papéis e responsabilidades.
- Pré-requisitos para teste de integração.
- Ambiente de teste.
- Planos de risco e mitigação.
Critérios de entrada e saída de teste de integração
Critérios de entrada e saída para a fase de teste de integração em qualquer modelo de desenvolvimento de software
Critério de entrada:
- Componentes / módulos testados por unidade
- Todos os bugs de alta prioridade corrigidos e fechados
- Todos os módulos devem ser codificados e integrados com sucesso.
- Testes de integração Plano, caso de teste, cenários a serem assinados e documentados.
- Requer ambiente de teste a ser configurado para teste de integração
Critério de saída:
- Teste bem-sucedido de aplicativo integrado.
- Casos de teste executados são documentados
- Todos os bugs de alta prioridade corrigidos e fechados
- Documentos técnicos a serem submetidos, seguidos de notas de lançamento.
Melhores práticas / diretrizes para testes de integração
- Primeiro, determine a Estratégia de Teste de Integração que pode ser adotada e, posteriormente, prepare os casos de teste e os dados de teste de acordo.
- Estude o projeto de Arquitetura da Aplicação e identifique os Módulos Críticos. Eles precisam ser testados com prioridade.
- Obtenha os designs de interface da equipe de arquitetura e crie casos de teste para verificar todas as interfaces em detalhes. Interface para banco de dados / hardware externo / aplicativo de software deve ser testado em detalhes.
- Após os casos de teste, são os dados de teste que desempenham um papel crítico.
- Sempre tenha os dados fictícios preparados, antes de executar. Não selecione dados de teste durante a execução dos casos de teste.