O que é teste de módulo? Definição, Exemplos
⚡ Resumo Inteligente
O teste de módulos verifica subprogramas, sub-rotinas, classes e procedimentos individuais, em vez do programa completo, de modo que os defeitos surgem dentro de um pequeno bloco de código bem compreendido, onde permanecem baratos de localizar e corrigir.
O que é teste de módulo?
teste de módulo É um tipo de teste de software que verifica subprogramas, sub-rotinas, classes ou procedimentos individuais em um programa. Em vez de testar o programa de software inteiro de uma só vez, o teste de módulos recomenda testar os blocos de construção menores do programa.
O teste de módulos é em grande parte orientado a testes de caixa branca. O objetivo do teste de módulos não é demonstrar o funcionamento correto do módulo, mas sim demonstrar a presença de um erro nele. Essa inversão é importante: uma execução que não encontra nada confirmou muito pouco, enquanto uma execução que expõe um defeito cumpriu seu papel.
Os testes em nível de módulo também permitem a introdução de paralelismo no processo de teste, pois criam a oportunidade de testar vários módulos simultaneamente, em vez de esperar por uma compilação completa.
Por que fazer testes de módulo
Recomenda-se o teste de módulos porque ele altera a economia da detecção de defeitos.
- A probabilidade de identificar erros ou bugs em partes menores de um programa aumenta.
- Vários módulos podem ser testados simultaneamente, e, portanto, essa abordagem suporta testes paralelos.
- A complexidade dos testes pode ser gerenciada facilmente, uma vez que cada módulo é analisado individualmente.
- Um defeito encontrado dentro de um módulo é tracÉ possível trabalhar com uma pequena quantidade de código, o que reduz drasticamente o tempo de depuração.
Como fazer testes de módulo?
Criando um caso de teste é o segmento importante do teste de módulo. Ao projetar casos de teste para um teste de módulo, um testador precisa levar duas coisas em consideração.
- Especificação do módulo
- O código fonte do módulo
Analise a lógica do módulo usando um ou mais dos seguintes métodos: caixa branca métodos e, em seguida, complementar esses casos de teste aplicando caixa-preta métodos para a especificação do módulo. Valores realistas são tão importantes quanto os caminhos escolhidos, portanto, prepare o dados de teste Ao lado dos casos, e não posteriormente.
Após a elaboração dos casos de teste, o próximo passo é combinar os módulos para teste. O método utilizado é um... incrementais não incremental método.
- Método não incremental — todos os módulos são testados independentemente. Primeiro, todos os módulos são combinados e, em seguida, o programa inteiro é testado.
- método incremental — Cada módulo é testado primeiro e, em seguida, adicionado gradualmente à coleção testada. O processo realiza um novo teste passo a passo.
- Dentro dos testes incrementais, existem duas abordagens: de cima para baixo e de baixo para cima teste.
- Para executar o módulo com os dados selecionados, é necessário um driver para fornecer os dados de teste, monitorar a execução e capturar os resultados.
A escolha entre os dois métodos representa um equilíbrio entre o esforço de configuração e a facilidade de diagnóstico.
| Aspecto | método incremental | Método não incremental |
| Densidades | Um módulo de cada vez, adicionado a uma coleção testada. | Todos os módulos foram combinados e testados em conjunto. |
| É necessário um andaime. | Mais pilotos e esboços, escritos progressivamente | Menos dublês de teste, já que módulos reais estão presentes. |
| Isolamento obrigatório | Forte — um ponto de falha no módulo recém-adicionado | Fraco — uma falha pode ter origem em qualquer lugar |
| Melhor adequado para | Construções de grande porte com muitos módulos interagindo entre si | Programas pequenos com poucos módulos e baixo acoplamento. |
Drivers e stubs em testes de módulos
O driver mencionado acima é metade de um par. Como um módulo em teste raramente está no início ou no fim da cadeia de chamadas, os testadores substituem o que estiver faltando em qualquer um dos lados por um código fictício.
- Dirigir — substitui o módulo de chamada acima daquele em teste. Ele fornece os dados de teste, invoca o módulo, monitora a execução e captura os resultados. O teste bottom-up depende dos drivers, pois os módulos de nível inferior ficam prontos antes dos de nível superior.
- Stub — substitui um módulo chamado abaixo daquele que está sendo testado. Ele aceita a chamada e retorna uma resposta fixa e conhecida para que o módulo em teste possa completar seu caminho. O teste de cima para baixo depende de stubs, porque os módulos de nível superior ficam prontos primeiro.
Um caso de teste concretiza a integração. Se um módulo de cálculo de pagamento estiver concluído, mas a tela de finalização da compra que o chama ainda não, um driver envia ao módulo um conjunto de totais de pedidos e registra o resultado. Se o serviço de consulta de impostos que o módulo chama também não estiver concluído, um protótipo retorna uma taxa de imposto fixa para que o cálculo ainda seja executado. Nenhuma das partes da estrutura de suporte é enviada; ambas são descartadas assim que os módulos reais chegam, e é por isso que a incompreensão dos protótipos é listada posteriormente como um desafio recorrente.
Exemplos de dicas para teste de módulo
Aqui estão algumas dicas a serem consideradas antes de realizar os testes de módulo.
- RevVeja os casos de teste antes de usá-los.
- Evite confusão sobre a origem das discrepâncias.
- Utilize ferramentas de teste automatizadas.
- Analise as variáveis que devem permanecer inalteradas.
- Troque os módulos entre os testadores para evitar autotestes.
- Reutilize os casos de teste.
A quinta dica tem mais peso do que seu tamanho sugere. Um desenvolvedor que testa apenas o módulo recém-escrito repete as mesmas premissas que produziram o defeito; portanto, alternar os módulos entre as pessoas é um dos ganhos de qualidade mais baratos disponíveis.
Teste de unidade versus teste de módulo
Os dois termos são usados de forma intercambiável em muitas equipes, embora a autoria e o escopo sejam diferentes.
| Teste de módulo | Teste de Unidade |
| Os testes de módulo são uma coleção de testes escritos por um testador depois que algum código foi escrito por um desenvolvedor | Testes unitários são uma coleção de testes escritos por um desenvolvedor durante o processo de desenvolvimento de software. |
| O teste de módulos pode envolver a combinação de testes unitários. | Os testes unitários podem testar unidades isoladamente. |
Teste de módulo vs. teste de componente vs. teste de integração
O teste de módulos também fica próximo a dois níveis vizinhos que são fáceis de confundir com ele. A tabela os separa pelo que está sendo testado e quem normalmente realiza o teste.
| Aspecto | teste de módulo | Teste de componentes | Teste de integração |
| Em teste | Um subprograma, classe ou procedimento | Um componente independente com suas dependências imediatas. | As interfaces entre módulos combinados |
| Proprietário habitual | Testador, após a escrita do código | testador | Testador de integração |
| andaime | Motoristas e canhotos | Esboços para dependências externas | Progressivamente menos testes duplos |
| Defeito exposto | Erro lógico dentro do módulo | Erro de comportamento no componente | Erro de interface e passagem de dados |
Em uso diário teste de componentes e os testes de módulos são frequentemente tratados como a mesma atividade, enquanto teste de integração Só começa depois que cada módulo individual for aprovado por si só.
Desafios no teste de módulo
Esses são os desafios que as equipes enfrentam com mais frequência quando os testes de módulo são introduzidos.
- Testes não incrementais requerem mais trabalho — Combinar tudo primeiro significa que uma única falha pode fazer com que os testadores revisem todo o programa.
- Teste de mal-entendido duplica — um stub que retorna um valor irrealista produz uma sequência verde que não prova nada.
- Depurar testes frequentemente — O código de estrutura básica traz seus próprios defeitos, e o tempo gasto corrigindo um driver é tempo que não é gasto testando o módulo.
- Precisa entender o código — A orientação de caixa branca significa que um testador que não consegue ler o módulo não pode criar casos significativos para ele.
