O que é teste de componentes? Técnicas, exemplos de casos de teste

⚡ Resumo Inteligente

O teste de componentes verifica cada parte individual de uma aplicação por si só, sem integrá-la com o restante, de forma que os defeitos sejam encontrados e corrigidos dentro de um único módulo antes do início da montagem.

  • 🧩 Escopo: Um componente de cada vez, isolado dos componentes ao seu redor.
  • 👥 Proprietário: Os testadores executam o teste depois que os desenvolvedores concluem os testes unitários.
  • 🔬 CTIS: O teste de componentes em pequena escala isola completamente o componente.
  • 🔗 CTIL: O teste de componentes em larga escala mantém as dependências, sejam elas reais ou simuladas.
  • 🧱 Doubles: Um driver chama o componente; um stub é chamado por ele.
  • Sair: Nenhum defeito crítico, alto ou médio permanece aberto no registro.

Técnicas de teste de componentes e exemplos de casos de teste.

O que é teste de componentes?

Teste de componentes É um tipo de teste de software no qual o teste é realizado em cada componente individual separadamente, sem integrá-lo a outros componentes. Do ponto de vista da arquitetura, também é chamado de teste de móduloE algumas referências chamam isso de teste de programa.

Qualquer software, como um todo, é composto por diversos componentes, e o teste em nível de componente lida com o teste desses componentes individualmente. É um dos tipos de teste mais frequentes. teste de caixa preta tipos executados pela equipe de controle de qualidade.

Vale a pena fazer uma observação sobre a nomenclatura logo de início. O glossário do ISTQB trata de testes de componentes e teste de unidade como sinônimos para o mesmo nível de teste. Muitas equipes de entrega, e este artigo, mantêm os dois separados na prática: os desenvolvedores executam testes unitários em seu próprio código, e os testadores executam testes de componentes na versão entregue. A tabela comparativa no final deste artigo apresenta essa distinção prática.

Como mostra o diagrama abaixo, o teste de componentes possui sua própria estratégia e plano de testes, nos quais cada parte do software ou aplicativo é considerada individualmente. Para cada componente, cenário de teste é definido, sendo então decomposto em casos de teste de alto nível e, finalmente, em detalhes de baixo nível. casos de teste Com pré-requisitos.

Hierarquia de testes de componentes, desde a estratégia de teste até os casos de teste de baixo nível.

A forma como o termo "teste de componentes" é usado varia de domínio para domínio e de organização para organização. Os motivos mais comuns para essa diferença de percepção são os três descritos abaixo.

  1. O tipo de modelo de ciclo de vida de desenvolvimento escolhido
  2. A complexidade do software ou aplicativo em teste.
  3. Se os testes são realizados com ou sem isolamento dos outros componentes da aplicação.

O ciclo de vida de testes de software produz muitos artefatos de teste, ou seja, os documentos criados e utilizados durante as atividades de teste. Entre eles, estão a política de testes e a estratégia de testes, que definem quais tipos de testes são utilizados e qual a profundidade dos testes em um determinado projeto.

Quem faz testes de componentes

Os testes de componentes são realizados pelos testadores. Os testes unitários são realizados pelos desenvolvedores, que testam uma função ou procedimento individual. Uma vez concluídos os testes unitários, inicia-se o teste de componentes, e os testadores assumem a responsabilidade por ele.

Quando realizar testes de componentes

Os testes de componentes são realizados logo após os testes unitários serem concluídos pelos desenvolvedores e a versão ser liberada para a equipe de testes. Essa versão é chamada de versão UT, ou versão de teste unitário. A funcionalidade principal de cada componente é testada nesta fase.

Critérios de entrada para testes de componentes

  • O conjunto mínimo de componentes a serem incluídos na versão UT foi desenvolvido e testado unitariamente.

Critérios de saída para teste de componentes

  • A funcionalidade de cada componente funciona conforme especificado.
  • Não há mais defeitos de gravidade ou prioridade Crítica, Alta ou Média em aberto no registro de defeitos.

Técnicas de teste de componentes

Com base na profundidade do nível de teste, o teste de componentes é categorizado de duas maneiras.

  1. CTIS — Teste de Componentes em Pequeno Porte
  2. CTIL — Teste de Componentes em Grande Escala

CTIS — Teste de Componentes em Pequeno Porte

O teste de componentes pode ser realizado com ou sem isolamento dos demais componentes da aplicação em teste. Quando realizado com os demais componentes isolados, é denominado teste de componentes em pequena escala.

1 exemplo: Em um site com cinco páginas diferentes, testar cada página separadamente e isoladamente dos outros componentes é chamado de teste de componentes em pequena escala.

2 exemplo: A página inicial do guru99.com mostrada abaixo contém vários componentes, como Início, Testes, SAPWeb, Aprendizado Obrigatório!, Big Data, Projetos ao Vivo e Blog.

Guru99. Menu de navegação da página inicial tratado como componentes testáveis ​​separados

Qualquer software é composto por muitos componentes da mesma forma, e cada componente possui seus próprios subcomponentes. Testar cada módulo listado no Exemplo 2 separadamente, sem considerar sua integração com os outros componentes, é um teste de componentes em pequena escala.

Ao abrir o menu suspenso "Teste", são exibidos os subcomponentes do componente "Teste": Teste Manual, SOAPUI, QTP, JUnit, Selenium, Gestão de Testes e Teste de celularNa imagem abaixo, esses subcomponentes estão destacados em vermelho.

Testando o menu suspenso com seus subcomponentes destacados em vermelho.

CTIL — Teste de Componentes em Grande Escala

O teste de componentes realizado sem isolamento dos demais componentes da aplicação em teste é denominado teste de componentes em larga escala.

Um exemplo torna a diferença mais clara. Suponha que uma aplicação seja composta por três componentes: Componente A, Componente B e Componente C.

O desenvolvedor criou o Componente B e deseja testá-lo. Para testar o Componente B completamente, algumas de suas funcionalidades dependem do Componente A e outras do Componente C, conforme ilustrado no diagrama abaixo.

O componente B foi testado com um driver substituindo o componente A e um stub substituindo o componente C.

O fluxo de funcionalidade é A → B → C, o que significa que o componente B depende tanto de A quanto de C. Nesse fluxo, o stub é a função chamada e o driver é a função que a chama.

Os componentes A e C ainda não foram desenvolvidos. Para testar completamente o componente B, A e C são substituídos por um driver e um stub, conforme necessário, de modo que as duas peças faltantes atuem como objetos fictícios até que os componentes reais existam.

  • Canhoto: Um stub é chamado pelo componente em teste. O componente C não está pronto, então um stub o substitui e retorna as respostas que B espera.
  • Motorista: Um driver chama o componente em teste. O componente A não está pronto, então um driver o substitui e invoca o componente B com as entradas necessárias.

Exemplos de casos de teste para testes de componentes

As duas páginas web abaixo estão inter-relacionadas do ponto de vista da funcionalidade, o que as torna um par de componentes útil para testes.

A página web 1 é a página de login do site de demonstração do banco.

Componente de página de login com campos de ID de usuário e senha.

Quando o usuário insere um ID de usuário e senha válidos e clica no botão enviar, a página o redireciona para a página inicial do site do banco de demonstração, mostrada a seguir.

Componente da página inicial do gerenciador com links de navegação e imagens.

Aqui, a página de login é um componente e a página inicial é outro. Testar a funcionalidade de cada página separadamente é o que chamamos de teste de componentes.

Cenários de teste de componentes na página web 1:

  • Insira um ID de usuário inválido e verifique se um aviso amigável é exibido ao usuário final.
  • Insira um nome de usuário e senha inválidos, clique em Redefinir e verifique se os campos de nome de usuário e senha foram apagados.
  • Insira um nome de usuário e uma senha válidos e clique no botão Entrar.

Cenários de teste de componentes na página web 2:

  • Verifique se a mensagem de boas-vindas da página do administrador está sendo exibida na página inicial.
  • Verifique se todos os links no lado esquerdo da página da web são clicáveis.
  • Verifique se o ID do gerente está sendo exibido no centro da página inicial.
  • Verifique a presença das três imagens diferentes na página inicial, conforme o diagrama.

Teste de unidade versus teste de componente

A tabela abaixo resume como os dois níveis diferem na prática diária.

Teste de Unidade Teste de componentes
Testar programas e módulos individuais para demonstrar que o programa é executado conforme a especificação. Testar cada objeto ou parte do software separadamente, com ou sem isolamento de outros objetos.
Validado em relação aos documentos de projeto. Validado de acordo com os requisitos de teste e casos de uso.
Feito pelos desenvolvedores. Feito pelos testadores.
Feito primeiro. Feito após a conclusão dos testes unitários por parte dos desenvolvedores.
Os defeitos geralmente são corrigidos no local e não são registrados formalmente. Os defeitos são registrados e tracconduzido pelo processo de gerenciamento de defeitos.

Perguntas Frequentes

Reduzir riscos, verificar o comportamento funcional e não funcional do componente, gerar confiança em sua qualidade, encontrar defeitos e prevenir que esses defeitos se propaguem.ping para níveis de teste mais elevados.

Os modelos leem um componente contrace propõe as entradas inválidas, os valores limite e os caminhos de erro que uma verificação manual tende a não detectar. Um testador ainda confirma cada resultado esperado antes da execução.

Sim. Um stub que retorna respostas predefinidas e um driver que fornece entradas fixas são códigos padronizados que um assistente escreve rapidamente. Decidir quais respostas são realistas continua sendo uma decisão humana.

O teste de componentes examina um componente individualmente. Componente teste de integração Examina as interfaces e interações entre os componentes e é executado após o teste dos componentes.

Codeestruturas de nível como JUnit, TestNG, NUnit e pytest, além de executores de componentes de interface do usuário, como Cypress Testes de componentes, Storybook e Jest. Todos eles se encaixam em um automação gasoduto.

Construindo e mantendo as versões duplicadas. Um protótipo que se distancia do componente real oculta defeitos até a integração, portanto, toda resposta simulada precisa ser revisada assim que a dependência real for lançada.

A ordem é invertida. Os casos de teste são escritos e automatizados antes mesmo do componente existir, e o código é adicionado até que os testes sejam aprovados. O componente chega com seu conjunto de testes já implementado.

Ambos, dependendo de quem executa o teste. Os testadores trabalham com uma interface gráfica (ou "caixa preta") baseada na especificação do componente, enquanto os desenvolvedores com acesso ao código aplicam o teste. caixa branca cobertura dentro do mesmo componente.

Resuma esta postagem com: