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

⚡ Resumo Inteligente

O teste de domínio verifica uma aplicação fornecendo-lhe o menor conjunto útil de entradas, abrangendo valores válidos, inválidos e limites, e confirmando que apenas os valores dentro do intervalo aceito produzem a saída necessária.

  • 🔘 Ideia central: Divida cada domínio de entrada em classes de equivalência e teste um valor representativo por classe, não todas as entradas possíveis.
  • ☑️ Foco nos limites: Valores no limite de uma classe, e logo fora dela, expõem defeitos de diferença de uma unidade com muito mais frequência do que valores intermediários.
  • Técnicas combinadas: A análise de classes de equivalência define o grupo.pingA análise de valores limite decide qual membro de cada grupo deve ser executado.
  • 🧪 Exemplo resolvido: Um módulo de emissão de bilhetes que atribui competições por idade e sexo reduz quatro faixas etárias a um conjunto de teste curto e de alto valor.
  • 📈 Dependência de conhecimento: Avaliar se uma saída está correta requer regras de negócio, portanto, a técnica é adequada para pequenos trechos de lógica bem compreendidos.

Teste de domínio em testes de software com classes de equivalência e valores limite.

O que é teste de domínio?

Teste de domínio é um teste de software O teste de domínio é um processo no qual a aplicação é testada fornecendo um número mínimo de entradas e avaliando suas saídas apropriadas. O objetivo principal do teste de domínio é verificar se a aplicação de software aceita entradas dentro da faixa aceitável e fornece a saída esperada.

É 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. Também é considerada uma das técnicas importantes. teste de caixa branca métodos. Além disso, verifica se o sistema não deve aceitar entradas, condições e índices fora do intervalo especificado ou válido.

Os testes de domínio variam para cada domínio específico, portanto, é necessário 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 uma única variável de entrada ou de uma combinação de variáveis ​​de entrada.

Os profissionais costumam estudar os casos mais simples de teste de domínio sob outros dois nomes: "teste de limites" e "análise de classes de equivalência".

Teste de limite - Análise de valor de limite (BVA) baseia-se em testes nos limites entre partições. Testaremos tanto os valores de entrada válidos quanto os inválidos nas partições/classes.

Teste de equivalência de classes – 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'.

Essa forma simplificada se aplica aos testes de domínio –

  • Somente para testes de variáveis ​​de entrada
  • Somente quando testado no nível do sistema
  • Somente quando testado um de cada vez
  • 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:

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

Construindo mesas como essas (na prática)

  • Para construir uma análise de classes de equivalência ao longo do tempo, insira as informações em uma planilha. Comece listando as variáveis. Adicione informações sobre elas à medida que as obtiver.
  • A tabela deverá 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 possam ser observadas.
  • Na prática, a maioria dessas tabelas está incompleta. As melhores listam todas as variáveis ​​e adicionam detalhes para as variáveis ​​críticas.

Estratégia de teste de domínio

Ao realizar testes de domínio, você precisa considerar os seguintes aspectos:

  • Qual domínio estamos testando?
  • Como agrupar os valores em classes?
  • Quais valores das classes a serem testadas?
  • Como determinar o resultado?

Qual domínio estamos testando?

Qualquer domínio que testamos possui funcionalidades de entrada e saída. Haverá variáveis ​​de entrada a serem inseridas e a saída correspondente deverá ser verificada. O diagrama abaixo ilustra essa relação entre entrada e saída.

Estratégia de teste de domínio mostrando variáveis ​​de entrada que fluem para um domínio e produzem uma saída.

Exemplo de teste de domínio

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.

No exemplo acima, não há necessidade de classificação, nem é necessária qualquer combinação de variáveis.

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

Considere uma exposição de jogos para crianças. Seis competições estão organizadas e os ingressos devem ser distribuídos de acordo com a idade e o sexo informados. O sistema de ingressos é um dos módulos a serem testados para garantir a funcionalidade completa da exposição de jogos.

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

  • Meninos com idade entre 5 e 10 anos devem participar da atividade de contação de histórias.
  • Meninas com idade entre 5 e 10 anos devem participar do Concurso de Desenho.
  • Meninos com idade entre 10 e 15 anos devem participar do Quiz.
  • Meninas com idade entre 10 e 15 anos devem participar da redação.
  • Para crianças com idade igual ou inferior a 5 anos, meninos e meninas devem participar do Concurso de Rimas.
  • Com idade >15 anos, meninos e meninas devem participar do concurso de Poesia.

Neste caso, os dados de entrada serão Idade e Sexo, e, consequentemente, o ingresso para a competição será emitido. Este é o caso em que a divisão dos dados de entrada, ou simplesmente o agrupamento, é necessária.ping de valores, entra em cena.

Como agrupar os valores em classes?

Particionar alguns valores significa dividi-los em partes que não se sobrepõem.ping subconjuntos.

Como discutimos anteriormente, existem dois tipos de particionamento:

  • Particionamento equivalente – O particionamento por 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, a partir das quais 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.
  • Análise de valor de limite – A análise de valores 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 do próprio conceito de limite.

No exemplo acima, estamos dividindo os valores em subconjuntos. Estamos dividindo a idade nas seguintes classes:

  • Classe 1: Crianças com idade entre 5 e 10 anos.
  • Classe 2: Crianças com idade inferior a 5 anos
  • Classe 3: Crianças com idade entre 10 e 15 anos.
  • Classe 4: Crianças com idade superior a 15 anos.

Quais valores das classes a serem testadas?

Os valores selecionados para teste devem ser valores limite:

  • Os limites são representantes das classes de equivalência das quais os amostramos. Eles têm maior probabilidade de expor um erro do que outros membros da classe, portanto, são melhores representantes.
  • 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:

Classe 1: Crianças com idade entre 5 e 10 anos (Idade >5 e ≤10 anos)

Valores limite:

  • Os valores devem ser iguais ou inferiores a 10. Portanto, a idade de 10 anos deve ser incluída nesta classe.
  • Os valores devem ser superiores a 5. Portanto, a idade de 5 anos não deve ser incluída nesta classe.
  • Os valores devem ser iguais ou inferiores a 10. Portanto, a idade de 11 anos não deve ser incluída nesta classe.
  • 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 é utilizada quando se precisa testar apenas uma condição de cada partição. Nesse caso, assume-se que se uma condição em uma partição funcionar, então todas as condições funcionarão. Da mesma forma, se uma condição nessa partição não funcionar, assume-se 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 escolhido. Portanto, a idade selecionada "8" é uma idade de entrada válida para a faixa etária entre (Idade >5 e <=10). Esse tipo de partição é chamado 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 implementaçã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.

Analisando os resultados do exemplo: a tela abaixo mostra a emissão de bilhetes para cada combinação de idade e sexo.

A emissão de bilhetes para cada combinação de idade e sexo foi usada para determinar os resultados dos testes de domínio.

Portanto, 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 será reprovado.

Estrutura de teste de domínio

Normalmente, os testadores seguem os passos abaixo no teste de domínio. Estes passos podem ser personalizados ou omitidos de acordo com as 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.
  • Identificar variáveis ​​adicionais potencialmente relacionadas para testes de combinação, onde teste de tabela de decisão ajuda.
  • Imagine riscos que não necessariamente se encaixam em 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.

Perguntas Frequentes

Ambas as etiquetas aparecem na prática. As classes derivadas da especificação tornam-na uma caixa-preta A técnica consiste em classes derivadas do código, o que o torna uma caixa branca. A análise em si é idêntica.

Ele abrange as áreas propensas a erros com muito poucos casos de teste. As limitações são reais: os limites são difíceis de definir com precisão e fluxos de trabalho completos nunca são testados, portanto, ele complementa outros métodos em vez de substituí-los.

O particionamento de equivalência é uma etapa dentro do teste de domínio, que também ordena variáveis, adiciona análise de limites, lida com dimensões secundárias e variáveis ​​de saída e termina em uma tabela de risco.

Os dois se sobrepõem sem serem idênticos. Este artigo aborda a análise do domínio de entrada, enquanto o uso na indústria, como por exemplo... testes na área da saúde significa realizar testes com conhecimento do setor, que ainda é necessário para avaliar os resultados esperados.

Os assistentes de IA leem um requisito e propõem classes de equivalência candidatas, valores de limite e casos inválidos ausentes. Um testador ainda confirma os limites reais, já que um intervalo inferido incorretamente gera um conjunto de testes confiável, porém inútil.

Copiloto do GitHub Escreve métodos de teste parametrizados assim que as classes e arestas aparecem no prompt ou no código. Limites de negócio não declarados devem ser fornecidos pelo testador.

Cada combinação cresce multiplicativamente, então raramente é prática. Analise cada variável individualmente primeiro e, em seguida, use comparações aos pares ou matriz ortogonal seleção para as combinações de risco.

Testando apenas classes válidas e ignorando.ping teste negativo, utilizando um limite inclusivo onde a regra é exclusiva e ignorando completamente as variáveis ​​de saída.

Resuma esta postagem com: