O que é teste de domínio em teste de software? (com exemplo)

Índice:

Anonim

O que é teste de domínio?

O Teste de Domínio é um processo de Teste de Software no qual o aplicativo é testado fornecendo um número mínimo de entradas e avaliando suas saídas apropriadas. O objetivo principal do teste de domínio é verificar se o aplicativo de software aceita entradas dentro da faixa aceitável e fornece a saída necessária.

É uma técnica de teste funcional em que a saída de um sistema é testada com um número mínimo de entradas para garantir que o sistema não aceite valores de entrada inválidos e fora do intervalo. É um dos métodos de teste de caixa branca mais importantes. Ele também verifica se o sistema não deve aceitar entradas, condições e índices fora do intervalo especificado ou válido.

O teste de domínio é diferente para cada domínio específico, portanto, você precisa ter conhecimento específico do domínio para testar um sistema de software.

Neste tutorial, você aprenderá-

  • Prática mais simples de teste de domínio
  • Estratégia de Teste de Domínio
  • Exemplo de teste de domínio
  • Estrutura de teste de domínio

Prática mais simples de teste de domínio

No teste de domínio, dividimos um domínio em subdomínios (classes de equivalência) e, em seguida, testamos usando os valores de cada subdomínio. Por exemplo, se um site (domínio) foi fornecido para teste, estaremos dividindo o site em pequenas partes (subdomínio) para facilitar o teste.

O domínio pode envolver o teste de qualquer variável de entrada ou combinação de variáveis ​​de entrada.

Os profissionais frequentemente estudam os casos mais simples de teste de domínio com menos de dois outros nomes, "teste de limite" e "análise de classe de equivalência".

Teste de limite - a análise de valor de limite (BVA) é baseada em testes nos limites entre as partições. Estaremos testando os valores de entrada válidos e inválidos na partição / classes.

Teste de classe de equivalência - A ideia por trás dessa técnica é dividir (ou seja, particionar) um conjunto de condições de teste em grupos ou conjuntos que podem ser considerados iguais (ou seja, o sistema deve tratá-los de forma equivalente), portanto, 'particionamento de equivalência'.

Esse formulário simplificado se aplica a testes de domínio -

  1. Apenas para testes de variáveis ​​de entrada
  2. Somente quando testado no nível do sistema
  3. Somente quando testado um de cada vez
  4. Somente quando testado de uma forma muito superficial

Pode ser simplificado conforme abaixo:

Variável Classe de Equivalência de Classe Válida Classe de Equivalência de Classe Inválida Limites e casos especiais Notas
X 0-100 0
100
<0 -1
> 100 101

Explicação:

  1. Se um campo aceita intervalos de 0 a 100, o campo não deve aceitar -1 e 101, pois são entradas inválidas e estão além dos limites.
  2. O campo deve aceitar valores como 0,100 e qualquer número entre eles.

Construindo uma mesa como esta (na prática)

  1. Para construir uma análise de classe de equivalência ao longo do tempo, coloque as informações em uma planilha. Comece listando as variáveis. Adicione informações sobre eles à medida que as obtém.
  2. A tabela deve conter todas as variáveis. Isso significa todas as variáveis ​​de entrada, todas as variáveis ​​de saída e quaisquer variáveis ​​intermediárias que você possa observar.
  3. Na prática, a maioria das tabelas que vi estão incompletas. Os melhores vistos listam todas as variáveis ​​e adicionam detalhes para as variáveis ​​críticas.

Estratégia de Teste de Domínio

Durante o teste de domínio, você precisa considerar as seguintes coisas,

  1. Qual domínio estamos testando?
  2. Como agrupar os valores em classes?
  3. Quais valores das classes a serem testados?
  4. Como determinar o resultado?

Qual domínio estamos testando?

Qualquer domínio que testamos tem alguma funcionalidade de entrada e uma funcionalidade de saída. Haverá algumas variáveis ​​de entrada a serem inseridas e a saída apropriada deve ser verificada.

Exemplo de teste de domínio

  1. Considere um cenário de teste de entrada única:

C = a + b, onde aeb são variáveis ​​de entrada e C é a variável de saída.

Aqui no exemplo acima, não há necessidade de classificação ou a combinação das variáveis ​​é necessária.

  1. Considere as várias entradas abaixo e o cenário de saída apropriado:

Considere uma exibição de jogos para crianças, 6 competições são planejadas e os ingressos devem ser dados de acordo com a idade e gênero. A bilheteria é um dos módulos a serem testados para toda a funcionalidade da exibição dos Jogos.

De acordo com o cenário, temos seis cenários baseados na idade e nas competições:

  1. Idade> 5 e <10 anos, o menino deve participar da narrativa.
  2. Idade> 5 e <10 anos, as meninas devem participar do concurso de desenho.
  3. Idade> 10 e <15 anos, o menino deve participar do Quiz.
  4. Idade> 10 e <15 anos, a menina deve participar da redação da redação.
  5. Com idade <5 anos, meninos e meninas devem participar da Competição de Rimas.
  6. Idade> 15 anos, meninos e meninas devem participar de concurso de Poesia.

Aqui, a entrada será Idade e Sexo e, portanto, o bilhete para a competição será emitido. Esta partição de caso de entradas ou simplesmente agrupamento de valores entram em cena.

Como agrupar os valores em classes?

Particionar alguns valores significa dividi-los em subconjuntos não sobrepostos.

Como discutimos anteriormente, existem dois tipos de particionamento:

  1. Particionamento de equivalência - o particionamento de equivalência é uma técnica de teste de software que divide os dados de entrada de uma unidade de software em partições de dados equivalentes das quais os casos de teste podem ser derivados. Em princípio, os casos de teste são projetados para cobrir cada partição pelo menos uma vez.
  2. Análise de valor limite - a análise de valor limite é uma técnica de teste de software na qual os testes são projetados para incluir representantes de valores limite em um intervalo. A ideia vem da fronteira .

Para o exemplo acima, estamos particionando os valores em um subconjunto ou subconjunto. Estamos dividindo a idade nas classes abaixo:

  1. Classe 1: Crianças com faixa etária de 5 a 10
  2. Classe 2: Crianças com idade inferior a 5 anos
  3. Classe 3: Crianças com faixa etária de 10 a 15 anos
  4. Classe 4: Crianças com faixa etária maior que 15 anos.

Quais valores das classes a serem testados?

Os valores coletados para teste devem ser valores limite:

  1. Os limites são representantes das classes de equivalência das quais os amostramos. Eles são mais propensos a expor um erro do que outros membros da classe, portanto, são melhores representantes.
  2. O melhor representante de uma classe de equivalência é um valor entre o intervalo.

Para o exemplo acima, temos as seguintes classes a serem testadas:

Por exemplo, para o cenário # 1:

  1. Classe 1: crianças com faixa etária de 5 a 10 (idade> 5 e <= 10)

Valores limite:

  1. Os valores devem ser iguais ou menores que 10. Portanto, a idade de 10 anos deve ser incluída nesta classe.
  2. Os valores devem ser maiores que 5. Portanto, a idade de 5 anos não deve ser incluída nesta classe.
  3. Os valores devem ser iguais ou menores que 10. Portanto, a idade de 11 anos não deve ser incluída nesta classe.
  4. Os valores devem ser maiores que 5. Portanto, a idade de 6 anos deve ser incluída nesta classe.

Valores de partição de equivalência:

A partição de equivalência é referida quando é necessário testar apenas uma condição de cada partição. Nesse caso, presumimos que, se uma condição em uma partição funcionar, todas as condições devem funcionar. Da mesma forma, se uma condição nessa partição não funcionar, presumimos que nenhuma das outras condições funcionará. Por exemplo,

(Idade> 5 e <= 10)

Como os valores de 6 a 10 são válidos, um dos valores entre 6,7,8,9 e 10 deve ser selecionado. Portanto, a idade "8" selecionada é uma idade de entrada válida para a faixa etária entre (Idade> 5 e <= 10). Esse tipo de partição é conhecido como partição de equivalência.

Cenário Valores limite a serem tomados Valores de particionamento de equivalência
Menino - Idade> 5 e <= 10 Idade de entrada = 6 Idade de entrada = 5 Idade de entrada = 11 Idade de entrada = 10 Idade de entrada = 8
Menina - Idade> 5 e <= 10 Idade de entrada = 6 Idade de entrada = 5 Idade de entrada = 11 Idade de entrada = 10 Idade de entrada = 8
Menino - Idade> 10 e <= 15 Idade de entrada = 11 Idade de entrada = 10 Idade de entrada = 15 Idade de entrada = 16 Idade de entrada = 13
Menina - Idade> 10 e <= 15 Idade de entrada = 11 Idade de entrada = 10 Idade de entrada = 15 Idade de entrada = 16 Idade de entrada = 13
Idade <= 5 Idade de entrada = 4 Idade de entrada = 5 Idade de entrada = 3
Idade> 15 Idade de entrada = 15 Idade de entrada = 16 Idade de entrada = 25

Como determinamos se o programa foi aprovado ou reprovado no teste?

A aprovação da funcionalidade não depende apenas dos resultados dos cenários acima. A entrada fornecida e a saída esperada nos darão os resultados e isso requer conhecimento de domínio.

Determinando os resultados do exemplo:

Portanto, se todos os casos de teste acima forem aprovados, o domínio de emissão de bilhetes na competição será aprovado. Caso contrário, o domínio falha.

Estrutura de teste de domínio

Normalmente, os testadores seguem as etapas abaixo em um teste de domínio. Eles podem ser personalizados / ignorados de acordo com nossas necessidades de teste.

  • Identifique as variáveis ​​potencialmente interessantes.
  • Identifique as variáveis ​​que você pode analisar agora e ordená-las (da menor para a maior e vice-versa).
  • Crie e identifique valores de limite e valores de classe de equivalência como acima.
  • Identifique as dimensões secundárias e analise cada uma de forma clássica. (No exemplo acima, Gênero é a dimensão secundária).
  • Identifique e teste as variáveis ​​que contêm os resultados (variáveis ​​de saída).
  • Avalie como o programa usa o valor desta variável.
  • Identifique outras variáveis ​​potencialmente relacionadas para o teste de combinação.
  • Imagine riscos que não necessariamente correspondem a uma dimensão óbvia.
  • Identifique e liste as variáveis ​​não analisadas. Reúna informações para análise posterior.
  • Resuma sua análise com uma tabela de risco / equivalência.

Resumo:

O teste de domínio, conforme descrito acima, requer conhecimento de como fornecer a entrada correta para atingir a saída desejada. Portanto, só é possível usá-lo para pequenos pedaços de código.