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

O que é teste de domínio?

Teste de domínio é um Teste de software processo 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 entrega a saída necessária.

É um Teste funcional técnica na qual 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 mais importantes Branco Box Ensaios métodos. 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 difere para cada domínio específico, portanto, você precisa ter conhecimento específico do domínio para testar um sistema de software.

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 depois testamos usando valores de cada subdomínio. Por exemplo, se um site (domínio) foi fornecido para teste, dividiremos o site em pequenas porções (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 geralmente 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 do valor limite (BVA) baseia-se em testes nos limites entre 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 desta 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), daí 'particionamento por equivalência'.

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

  1. Somente 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 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 aceitar intervalos de 0 a 100, o campo não deverá 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 mesa como essa (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 variáveis. Adicione informações sobre eles à medida que as obtém.
  2. A tabela deve eventualmente 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 variáveis ​​críticas.

Estratégia de teste de domínio

Durante o teste de domínio, você precisa considerar o seguinte,

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

Qual domínio estamos testando?

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

Estratégia de teste de domínio

Exemplo de teste de domínio

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

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 combinação das variáveis.

  1. Considere as múltiplas entradas abaixo e o cenário de saída apropriado:

Consideremos uma exposição de jogos para crianças, são organizadas 6 competições e os bilhetes devem ser atribuídos de acordo com a idade e o género. A bilhetagem é um dos módulos a testar para toda a funcionalidade da exibição dos Jogos.

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

  1. Idade >5 e <10, o menino deverá participar da Contação de Histórias.
  2. Idade >5 e <10, menina deverá participar de Concurso de Desenho.
  3. Idade >10 e <15, o menino deve participar do quiz.
  4. Idade >10 e <15, a menina deverá participar da redação da redação.
  5. Idade <5, meninos e meninas devem participar do Concurso de Rimas.
  6. Com idade >15 anos, meninos e meninas devem participar do concurso de Poesia.

Aqui a entrada será Idade e Gênero e daí será emitido o ingresso para a competição. Neste caso, a partição de entradas ou simplesmente o 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 equivalente – O particionamento por equivalência é um teste de software técnica que divide os dados de entrada de uma unidade de software em partições de dados equivalentes a partir dos 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 do valor limite é uma teste de software técnica na qual os testes são projetados para incluir representantes de valores limite em um intervalo. A ideia vem do limite.

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 anos
  2. Classe 2: Crianças com faixa etária 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 superior a 15 anos.

Quais valores das classes a serem testadas?

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, por isso 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 nº 1:

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

Valores limite:

  1. Os valores devem ser iguais ou inferiores a 10. Portanto, a idade de 10 anos deve ser incluída nesta classe.
  2. Os valores devem ser superiores a 5. Portanto, a idade de 5 anos não deve ser incluída nesta classe.
  3. Os valores devem ser iguais ou inferiores a 10. Portanto, 11 anos não devem ser incluídos nesta classe.
  4. Os valores devem ser superiores a 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. Nisto, assumimos que se uma condição em uma partição funcionar, então todas as condições deverão 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, deve-se escolher um dos valores entre 6,7,8,9 e 10. Portanto, a idade selecionada “8” é uma idade de entrada válida para a faixa etária entre (Idade >5 e <=10). Este tipo de partição é chamada de partição de equivalência.

Cenário Valores limite a serem considerados 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 passou ou falhou 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 do domínio.

Determinando os resultados do exemplo:

Determinando Resultados

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

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 ordene-as (da menor para a maior e vice-versa).
  • Crie e identifique valores limite e valores de classe de equivalência conforme 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 variáveis ​​que contêm resultados (variáveis ​​de saída).
  • Avalie como o programa usa o valor desta variável.
  • Identifique variáveis ​​adicionais potencialmente relacionadas para testes combinados.
  • Imagine riscos que não necessariamente correspondem a uma dimensão óbvia.
  • Identifique e liste 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 alcançar o resultado desejado. Assim, só é possível utilizá-lo para pequenos pedaços de código.