what is component testing
O que é Teste de Componente, também chamado de Teste de Módulo em Teste de Software:
Um componente é a unidade mais baixa de qualquer aplicativo. Portanto, teste de componentes; como o nome sugere, é uma técnica de testar a menor ou a menor unidade de qualquer aplicativo.
O teste de componentes às vezes também é conhecido como Teste de Programa ou Módulo.
Um aplicativo pode ser pensado como uma combinação e integração de muitos pequenos módulos individuais. Antes de testarmos todo o sistema, é importante que cada componente OU a menor unidade do aplicativo seja testado exaustivamente.
c ++ converter char * para int
Neste caso, os módulos ou as unidades são testados de forma independente. Cada módulo recebe uma entrada, faz algum processamento e gera a saída. A saída é então validada em relação ao recurso esperado.
Os aplicativos de software são enormes por natureza e é um desafio testar todo o sistema. Isso pode levar a muitas lacunas na cobertura do teste. Portanto, antes de passar para o teste de integração ou teste funcional, é recomendável começar com o teste de componentes.
Leia também=> Diferença de unidade, integração e teste funcional
O que você aprenderá:
- Teste de Componente
- O objetivo do Teste de Componentes
- Entradas para teste de nível de componente
- Quem faz o teste de componentes?
- O que é testado em Teste de componente?
- Quando o teste de componentes é concluído?
- Estratégia de teste de teste de componentes
- Stubs e drivers
- Um exemplo
- Como escrever casos de teste de componentes?
- Teste de componente vs. teste de unidade
- Teste do componente Vs interface Vs integração Vs sistemas
- Conclusão
- Leitura recomendada
Teste de Componente
É uma espécie de teste de caixa branca.
Portanto, o teste de componentes procura bugs e verifica o funcionamento dos módulos / programas que podem ser testados separadamente.
Existe uma estratégia de teste e um plano de teste para o teste de componentes. E, para cada componente, há um cenário de teste que será dividido em casos de teste. O diagrama abaixo representa o mesmo:
O objetivo do Teste de Componentes
O objetivo principal do teste de componentes é verificar o comportamento de entrada / saída do objeto de teste. Ele garante que a funcionalidade do objeto de teste está funcionando corretamente e completamente bem de acordo com a especificação desejada.
Entradas para teste de nível de componente
As quatro principais entradas para o teste de nível de componente são:
- Plano de Teste do Projeto
- Requisitos de sistema
- Especificações do Componente
- Implementações de componentes
Quem faz o teste de componentes?
O teste de componente é feito pelos serviços de QA ou pelo testador.
O que é testado em Teste de componente?
O teste de componentes pode levar em conta a verificação de características funcionais ou não funcionais específicas dos componentes do sistema.
Pode ser testar o comportamento do recurso (por exemplo, determinar vazamentos de memória), teste de desempenho, teste estrutural, etc.
Quando o teste de componentes é concluído?
O teste de componente é executado após o teste de unidade.
Os componentes são testados assim que são criados, portanto, há chances de que os resultados recuperados de um componente em teste dependam de outros componentes que, por sua vez, não foram desenvolvidos até o momento.
Dependendo do modelo de ciclo de vida de desenvolvimento, o teste de componentes pode ser executado isoladamente com outros componentes do sistema. O isolamento é feito para evitar influências externas.
Então, para testar esse componente, usamos Stubs e Driverspara simular a interface entre os componentes do software.
O teste de integração é feito após o teste do componente.
Estratégia de teste de teste de componentes
Dependendo da profundidade do nível de teste, o teste de componentes é dividido em duas partes:
- Teste de componente em pequeno (ctis)
- Teste de componentes em grande (CTIL)
Quando o teste de componente é feito isoladamente com outros componentes, ele é chamado de teste de componente em pequeno. Isso é feito sem considerar a integração com outros componentes.
Quando o teste de componente é feito sem isolamento com outros componentes do software, ele é chamado de teste de componente em geral. Isso acontece quando há uma dependência do fluxo de funcionalidade dos componentes e, portanto, não podemos isolá-los.
Se os componentes dos quais temos dependência ainda não foram desenvolvidos, usamos objetos fictícios no lugar dos componentes reais. Esses objetos fictícios são o stub (função chamada) e o driver (função chamada).
Stubs e drivers
Antes de passar para um breve resumo sobre Stubs e Drivers, devo informar sobre o diferença entre os testes de componentes e os testes de integração. O motivo é - Stubs e drivers também são usados em testes de integração, portanto, isso pode levar a alguma confusão entre essas duas técnicas de teste.
A técnica de teste de integração é uma técnica em que combinamos 2 componentes sequencialmente e testamos o sistema integrado juntos. Os dados de um sistema são transferidos para outro sistema e a exatidão dos dados é validada para o sistema integrado.
Ao contrário do teste de módulo, onde o único componente / módulo é testado exaustivamente antes de ser integrado a outros componentes. Portanto, podemos dizer que o teste de componente é realizado antes do teste de integração.
Usos de integração e componentes Stubs e drivers .
“Drivers” são os programas fictícios que são usados para chamar as funções do módulo mais baixo, caso a função de chamada não exista.
“Stubs” pode ser referido como código, um fragmento que aceita as entradas / solicitações do módulo superior e retorna os resultados / resposta
Conforme explicado anteriormente, os componentes são testados individualmente e independentemente. Portanto, pode haver alguns recursos dos componentes, dependendo do outro componente que não é desenvolvido atualmente. Portanto, para testar os componentes com esses recursos “não desenvolvidos”, temos que usar alguns agentes estimuladores que processariam os dados e os retornariam aos componentes de chamada.
Dessa forma, garantimos que os componentes individuais sejam testados exaustivamente.
Aqui vemos que:
- C1, C2, C3, C4, C5, C6, C7, C8, C9 ————— são os componentes
- C1, C2 e C3 juntos formam a Subunidade 1
- C4 e C5 juntos formam a Subunidade 2
- C6, C7 e C8 juntos formam a Subunidade 3
- C9 sozinho faz a subunidade 4
- A Subunidade 1 e a Subunidade 2 se combinam para formar a Unidade de Negócios 1
- A Subunidade 3 e a Subunidade 4 se combinam para formar a Unidade de Negócios 2
- A Unidade de Negócios 1 e a Unidade de Negócios 2 se combinam para fazer a aplicação.
- Portanto, o teste de componente, neste caso, seria testar os componentes individuais que são C1 a C9.
- O Internet seta entre a subunidade 1 e a subunidade 2 mostra o ponto de teste de integração.
- Da mesma forma, o Internet seta entre a subunidade 3 e a subunidade 4 mostra o ponto de teste de integração
- A seta verde entre a unidade de negócios 1 e a unidade de negócios 2 mostra o ponto de teste de integração
Portanto, estaríamos fazendo:
- COMPONENTE teste para C1 a C9
- INTEGRAÇÃO teste entre as subunidades e unidades de negócios
- SISTEMA teste do aplicativo como um todo
Um exemplo
Até agora, devemos ter estabelecido que o teste de componentes é algum tipo de técnica de teste de caixa branca . Bem, pode estar certo. Mas isso não significa que essa técnica não possa ser usada na técnica de teste da caixa preta.
java adicionar ao final da matriz
Considere um grande aplicativo da web que começa com uma página de login. Como testador (isso também em um mundo ágil), não poderíamos esperar até que todo o aplicativo fosse desenvolvido e pronto para o teste. Para aumentar nosso tempo de lançamento no mercado, devemos começar os testes o quanto antes. Assim, ao vermos que a página de Login está desenvolvida, devemos insistir que ela seja disponibilizada para que possamos testar.
Assim que você tiver a página de Login disponível para teste, poderá executar todos os seus casos de teste (positivos e negativos) para garantir que a funcionalidade da página de Login esteja funcionando conforme o esperado.
As vantagens de testar sua página de login neste momento seriam:
teste de carga vs teste de desempenho vs teste de estresse
- A IU é testada quanto à usabilidade (erros de grafia, logotipos, alinhamento, formatação etc.)
- Tente usar técnicas de teste negativo como de autenticação e autorização. Há uma grande probabilidade de encontrar defeitos nesses casos.
- Uso de técnicas como Injeções SQL garantiria testar a violação de segurança em um estágio muito inicial.
Os defeitos que você registraria neste estágio agiriam como “lições aprendidas” para a equipe de desenvolvimento e seriam implementados na codificação da página consecutiva. Conseqüentemente, testando cedo - você garantiu uma melhor qualidade das páginas que ainda não foram desenvolvidas.
Como as outras páginas consecutivas ainda não foram desenvolvidas, você pode precisar de stubs para validar a funcionalidade da página de login. Por exemplo ,você pode querer uma página simples informando “registro bem-sucedido”, no caso de credenciais corretas e janela pop-up de mensagem de erro no caso de credenciais incorretas.
Você pode seguir nosso tutorial anterior em Teste de integração para ter mais insights sobre Stubs e Drivers.
Como escrever casos de teste de componentes?
Os casos de teste para teste de componentes são derivados de produtos de trabalho, por exemplo, design de software ou modelo de dados. Cada componente é testado por meio de uma sequência de casos de teste, onde cada caso de teste cobre uma combinação específica de entrada / saída, ou seja, funcionalidade parcial.
Abaixo está um recorte de amostra de um caso de teste de componente para o Módulo de Login.
Podemos escrever outros casos de teste de forma semelhante.
Teste de componente vs. teste de unidade
A primeira diferença entre o teste de componente e o teste de unidade é que o primeiro é realizado por testadores, enquanto o segundo é realizado por desenvolvedores ou profissionais SDET.
O teste de unidade é conduzido em um nível granular. Por outro lado, o teste de componentes é feito no nível do aplicativo. No teste de unidade, é verificado se um programa individual ou parte do código está sendo executado conforme especificado. No teste de componentes, cada objeto do software é testado separadamente com ou sem isolamento com outros componentes / objeto do sistema.
Portanto, o teste de componente é semelhante ao teste de unidade, mas é feito em um nível superior de integração e no contexto do aplicativo (não apenas no contexto dessa unidade / programa como no teste de unidade).
Teste do componente Vs interface Vs integração Vs sistemas
Componente , como expliquei, é a unidade mais baixa de um aplicativo que é testado independentemente.
A interface é a camada de união dos 2 componentes. O teste da plataforma ou da interface na qual os 2 componentes interagem é chamado de teste de interface.
Agora, testar a interface é um pouco diferente. Essas interfaces são principalmente APIs ou serviços da Web , então o teste dessas interfaces não seria semelhante à técnica da caixa preta, em vez disso, você faria algum tipo de teste de API ou teste de serviço da Web usando SOAP UI ou qualquer outra ferramenta.
Uma vez que o teste de interface é feito, vem o Teste de integração .
Durante o teste de integração, combinamos os componentes individuais testados um por um e os testamos de forma incremental. Validamos durante a integração que os componentes individuais, quando combinados um por um, se comportam como esperado e os dados não são alterados ao fluir de um módulo para outro módulo.
Assim que todos os componentes forem integrados e testados, nós realizamos o Teste de sistemas para testar o aplicativo / sistema inteiro como um todo. Este teste valida os requisitos de negócios em relação ao software implementado.
Conclusão
Eu diria que Teste de unidade e os testes de componentes são feitos lado a lado.
Ao contrário do teste de unidade, que é feito pela equipe de desenvolvimento, o teste de componente / módulo é feito pela equipe de teste. É sempre recomendável realizar um teste completo de componentes antes de iniciar o teste de integração.
Se o teste de componente for sólido como uma rocha, encontraremos menos defeitos no teste de integração. Haveria problemas, mas esses problemas estariam relacionados ao ambiente de integração ou aos desafios de configuração. Você pode garantir que a funcionalidade dos componentes integrados está funcionando bem.
Espero que este tutorial tenha sido útil para entender os testes de componentes, integração e sistema. Se você ainda tiver dúvidas, fique à vontade para nos perguntar nos comentários.
Leitura recomendada
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- O que é Teste de Integração de Sistema (SIT): Aprenda com Exemplos
- Download do e-book do Testing Primer
- O que é teste de comparação (aprenda com exemplos)
- O que é teste de integração (tutorial com exemplo de teste de integração)
- Teste Funcional Vs Teste Não Funcional
- As diferenças entre teste de unidade, teste de integração e teste funcional
- O que é teste incremental: explicação detalhada com exemplos