O que é teste de matriz ortogonal? (Exemplo)

⚡ Resumo Inteligente

O teste de matriz ortogonal é uma técnica de caixa preta que usa matrizes estatísticas para construir um conjunto de testes compacto, cobrindo todos os pares de valores de entrada com muito menos casos de teste do que o teste de combinação exaustivo exige.

  • 🎯 Promessa fundamental: Cada par de níveis entre quaisquer dois fatores aparece pelo menos uma vez nas simulações geradas.
  • 🔢 Notação: Um array é escrito como LRuns(Níveis)fatores), então L9(3⁴) significa nove execuções para quatro fatores de três níveis.
  • 📉 Escala de poupança: Quatro fatores em três níveis cada reduzem-se de 81 combinações exaustivas para nove execuções ortogonais.
  • 🧮 Regra do equilíbrio: As colunas devem ser preenchidas de forma que nenhum par de fatores se mova junto, caso contrário a tabela não será ortogonal.
  • 🛠️ Ferramentas: GeneratorSistemas como o PICT e o ACTS constroem a matriz automaticamente, o que elimina a principal fonte de erros manuais.
  • ⚠️ Limite conhecido: A cobertura de pares não consegue detectar um defeito que requer três ou mais valores específicos em conjunto.

Teste de matriz ortogonal: reduzindo as combinações de entrada a um pequeno conjunto balanceado de casos de teste.

Teste de matriz ortogonal

Teste de matriz ortogonal (OAT) O teste com matrizes ortogonais é uma técnica de teste de software que utiliza matrizes ortogonais para criar casos de teste. Trata-se de uma abordagem de teste estatístico, especialmente útil quando o sistema em teste aceita um grande número de entradas de dados. O teste com matrizes ortogonais maximiza a cobertura de testes ao emparelhar e combinar as entradas, de modo que o sistema seja exercitado com um número comparativamente menor de casos de teste e em um tempo de execução reduzido.

Por exemplo, ao verificar uma passagem de trem, é necessário testar fatores como o número de passageiros, o número da passagem, o número do assento e o número do trem. Testar cada fator individualmente é trabalhoso. É mais eficiente quando o engenheiro de controle de qualidade combina diversas entradas e as testa em uma única execução. Nesses casos, podemos utilizar o método de teste de matriz ortogonal.

Esse tipo de emparelhamento ou combinação de entradas para economizar tempo é chamado de teste em pares, e a técnica OATS é uma maneira de produzir um conjunto de testes em pares. Como a técnica funciona puramente com base em valores de entrada e resultados esperados, sem qualquer visualização do código interno, ela pertence à categoria de... teste de caixa preta família.

Por que OAT (teste de matriz ortogonal)?

No cenário atual, entregar um produto de software de qualidade ao cliente tornou-se um desafio devido à complexidade do código.

No método convencional, os conjuntos de testes incluem casos de teste derivados de todas as combinações de valores de entrada e pré-condições. Como resultado, é necessário cobrir um número n de casos de teste.

Mas, em um cenário real, os testadores não terão tempo livre para executar todos os casos de teste a fim de descobrir os defeitos, pois existem outras atividades, como documentação, sugestões e feedback do cliente, que precisam ser consideradas dentro da fase de testes.

Conseqüentemente, os gerentes de teste queriam otimizar o número e a qualidade dos casos de teste para garantir o máximo Cobertura de teste Com o mínimo esforço. Esse esforço é chamado de Otimização de Casos de Teste.

  • Método sistemático e estatístico para testar interações entre pares.
  • Interações e pontos de integração são uma das principais fontes de defeitos.
  • Execute um conjunto de casos de teste bem definidos e concisos que provavelmente revelarão a maioria (mas não todos) os erros.
  • A abordagem ortogonal garante a cobertura aos pares de todas as variáveis.

Portanto, a técnica se integra aos outros métodos de redução de entrada que a equipe já utiliza. Particionamento de equivalência e análise de valores de contorno As matrizes ortogonais decidem quais valores valem a pena testar para um único campo; elas decidem quais desses valores devem ser testados em conjunto.

Como o teste de matriz ortogonal é representado

Uma matriz ortogonal é descrita por uma fórmula concisa, e não pelo seu conteúdo. O diagrama abaixo mostra como as três grandezas dessa fórmula se relacionam com o formato da matriz.

Notação de matriz ortogonal mostrando sequências, fatores e níveis na fórmula L(Sequências)

  • Corridas (N) – Número de linhas na matriz, que se traduz no número de casos de teste que serão gerados.
  • Fatores (K) – Número de colunas na matriz, que se traduz no número máximo de variáveis ​​que podem ser manipuladas.
  • Níveis (V) – Número máximo de valores que podem ser assumidos em um único fator.

Um único fator geralmente possui de 2 a 3 entradas a serem testadas. Esse número máximo de entradas determina os níveis.

Leia o nome do array da esquerda para a direita. Em L9(34) O 9 representa a contagem de execuções, o 3 representa o número de níveis que cada fator pode assumir e o sobrescrito 4 representa o número de fatores. O mesmo artigo usa L4(23), que são quatro execuções para três fatores, cada um com dois níveis.

Duas propriedades tornam um array ortogonal, e ambas precisam ser verdadeiras para que a contagem de repetições seja confiável:

  • Equilíbrio: Cada nível de um fator aparece o mesmo número de vezes em sua própria coluna.
  • Completude aos pares: Para quaisquer duas colunas, toda combinação de um nível de cada coluna aparece o mesmo número de vezes.

Se a segunda propriedade falhar, a tabela é simplesmente um conjunto de testes reduzido, não uma matriz ortogonal, e a garantia de comparação aos pares que justifica a redução deixa de ser válida.

Como fazer testes de array ortogonal: exemplos

  1. Identifique a variável independente para o cenário.
  2. Encontre a menor matriz com o número de execuções.
  3. Mapeie os fatores para a matriz.
  4. Escolha os valores para quaisquer níveis “sobras”.
  5. Transcreva as corridas para casos de teste, adicionando quaisquer combinações particularmente suspeitas que não sejam geradas.

Os dois exemplos práticos abaixo aplicam esses cinco passos, primeiro a um pequeno problema de dois níveis e depois a um problema maior de três níveis.

Exemplo 1

Uma página da Web possui três seções distintas (Superior, Central e Inferior) que podem ser exibidas ou ocultadas individualmente para o usuário.

  • Nº de fatores = 3 (superior, intermediário, inferior)
  • Nº de níveis (visibilidade) = 2 (oculto ou mostrado)
  • Tipo de matriz = L4(23)

(4 é o número de execuções obtido após a criação da matriz OAT)

Se optarmos pela técnica convencional de alterar uma seção de cada vez, precisaremos de casos de teste como 2 x 3 = 6 casos de teste.

Casos de teste cenários Valores a serem testados
Teste nº 1 ESCONDIDO Soutien
Teste nº 2 MOSTRANDO Soutien
Teste nº 3 ESCONDIDO Tanga
Teste nº 4 MOSTRANDO Tanga
Teste nº 5 ESCONDIDO Coração
Teste nº 6 MOSTRANDO Coração

Essas seis execuções variam uma seção de cada vez e nunca colocam duas seções em um estado escolhido simultaneamente. Testar todas as combinações levaria 23 = 8 corridas.

Se optarmos pelo teste OAT, precisaremos de 4 casos de teste, conforme mostrado abaixo:

Casos de teste TOPO Coração Tanga
Teste nº 1 oculto oculto oculto
Teste nº 2 oculto Visível Visível
Teste nº 3 Visível oculto Visível
Teste nº 4 Visível Visível oculto

Ao verificar quaisquer duas colunas dessa tabela, todos os quatro pares Oculto/Visível aparecem exatamente uma vez, o que representa a propriedade de ortogonalidade em sua forma mais simples.

Exemplo 2

A funcionalidade de um microprocessador deve ser testada:

  • Temperatura: 100C, 150C e 200C.
  • Pressão: 2 psi, 5 psi e 8 psi
  • Doping Montante: 4%, 6% e 8%
  • Taxa de deposição: 0.1 mg/s, 0.2 mg/s e 0.3 mg/s

Utilizando o método convencional, precisamos de 34 = 81 casos de teste para cobrir todas as entradas. Vamos trabalhar com o método OATS em vez disso:

Número de fatores = 4 (temperatura, pressão, etc.)ping valor e taxa de depósito)

Níveis = 3 níveis por fator (a temperatura tem 3 níveis – 100°C, 150°C e 200°C – e da mesma forma os outros fatores também têm 3 níveis cada)

Crie uma matriz conforme abaixo:

1. Colunas com o número de fatores

Caso de teste # Temperatura: Pressão: Doping quantidade Taxa de deposição

2. Insira o número de linhas igual aos níveis de cada fator. Por exemplo, a temperatura tem 3 níveis. Portanto, insira 3 linhas para cada nível de temperatura.

Caso de teste # Temperatura: Pressão: Doping quantidade Taxa de deposição
1 100C
2 100C
3 100C
4 150C
5 150C
6 150C
7 200C
8 200C
9 200C

3. Agora divida a pressão, façaping quantidade e taxas de deposição nas colunas.

Por exemplo: Insira 2 psi nas temperaturas de 100°C, 150°C e 200°C, e da mesma forma insira...ping O valor é de 4% para 100°C, 150°C e 200°C, e assim por diante.

Caso de teste # Temperatura: Pressão: Doping quantidade Taxa de deposição
1 100C 2 psi 4% 0.1mg/s
2 100C 5 psi 6% 0.2mg/s
3 100C 8 psi 8% 0.3mg/s
4 150C 2 psi 4% 0.1mg/s
5 150C 5 psi 6% 0.2mg/s
6 150C 8 psi 8% 0.3mg/s
7 200C 2 psi 4% 0.1mg/s
8 200C 5 psi 6% 0.2mg/s
9 200C 8 psi 8% 0.3mg/s

Portanto, em OAs, precisamos de 9 casos de teste para cobrir.

Nota sobre a precisão: Preencher as três colunas restantes diretamente para baixo, como faz o passo 3, repete a mesma pressão.ping e a deposição triplica dentro de cada bloco de temperatura. Pressão e façaping A quantidade, portanto, se move em conjunto, e pares como 2 psi com 6% nunca aparecem, então as nove linhas acima são um conjunto de teste reduzido em vez de uma verdadeira matriz ortogonal. O L9(3) balanceado4A matriz abaixo mantém as mesmas nove execuções, abrangendo todos os nove pares de níveis entre cada dois fatores.

Caso de teste # Temperatura: Pressão: Doping quantidade Taxa de deposição
1 100C 2 psi 4% 0.1mg/s
2 100C 5 psi 6% 0.2mg/s
3 100C 8 psi 8% 0.3mg/s
4 150C 2 psi 6% 0.3mg/s
5 150C 5 psi 8% 0.1mg/s
6 150C 8 psi 4% 0.2mg/s
7 200C 2 psi 8% 0.2mg/s
8 200C 5 psi 4% 0.3mg/s
9 200C 8 psi 6% 0.1mg/s

Teste de matriz ortogonal versus teste de pares (todos os pares)

Os dois termos são usados ​​de forma intercambiável em muitas equipes, mas não são idênticos. Ambos visam abranger pares de valores, mas diferem no grau de restrição imposto à tabela resultante.

Aspecto Teste de matriz ortogonal Teste aos pares (todos os pares)
Estrutura subjacente Matriz ortogonal, emprestada do planejamento de experimentos. Matriz de cobertura, gerada por um algoritmo de busca
Regra de cobertura Cada par aparece o mesmo número de vezes. Cada par aparece pelo menos uma vez.
Fatores com níveis desiguais Requer um array de níveis mistos, que pode não existir para o formato desejado. Manipulado diretamente pelo gerador
Contagem típica de execuções Igual ou ligeiramente superior, devido à exigência de equilíbrio. Igual ou inferior para as mesmas entradas.
Restrições entre valores Difícil de expressar dentro da matriz Compatível com a maioria dos geradores modernos.

Na prática, uma matriz ortogonal balanceada é o modelo de ensino mais claro e a escolha mais segura quando os fatores compartilham a mesma contagem de níveis, enquanto uma matriz de cobertura é o que a maioria das ferramentas produz para projetos reais com entradas complexas e desiguais. Ambas são complementares. teste de tabela de decisão e testes de transição de estado, que visam regras de negócio e sequências, em vez de combinações de valores.

Ferramentas de teste de matriz ortogonal

Criar um array manualmente só é prático para os pequenos exemplos acima. Acima de quatro ou cinco fatores, as equipes usam um gerador, e a ferramenta decide a quantidade de execuções para elas.

  • IMAGEM: um gerador de linha de comando de código aberto da MicrosoftOs parâmetros e seus valores são gravados em um arquivo de modelo de texto simples, e a ferramenta imprime o conjunto de combinações. Restrições e submodelos são suportados, o que é importante quando certos pares de valores são inválidos. Veja o Repositório PICT.
  • ATOS: Uma ferramenta de pesquisa do NIST que gera matrizes de cobertura para cobertura de duas a seis vias e também publica uma biblioteca de matrizes pré-computadas. Ela está disponível em Projeto de testes combinatórios do NIST.
  • Plataformas combinatórias comerciais: As ferramentas hospedadas adicionam requisitos tracCapacidade, resultados esperados e exportação para um sistema de gerenciamento de testes, o que é adequado para equipes maiores que precisam de um registro de auditoria.
  • Bibliotecas de arrays publicadas: Matrizes padrão como L4, L8, L9, L16 e L18 são tabuladas e podem ser copiadas diretamente quando os números de fatores e níveis coincidirem.

Independentemente da ferramenta que produza a tabela, as linhas geradas ainda precisam ser transformadas em casos executáveis ​​com dados reais e resultados esperados, e então agendadas como qualquer outro conjunto de testes dentro do sistema. técnicas de teste de software já em uso no projeto.

Vantagens dos testes com matrizes ortogonais

  • Garante o teste das combinações de pares de todas as variáveis ​​selecionadas.
  • Reduz o número de casos de teste.
  • Cria menos casos de teste que ainda abrangem a interação de cada par de variáveis.
  • É possível lidar com uma combinação complexa de variáveis.
  • É mais simples de gerar e menos sujeito a erros do que conjuntos de testes criados manualmente.
  • É útil para Teste de integraçãoe igualmente útil para teste de configuração, onde as combinações de navegador, sistema operacional e dispositivo se multiplicam rapidamente.
  • Melhora a produtividade devido à redução dos ciclos e tempos de teste.

Os compostos de poupança durante teste de regressão, porque um conjunto balanceado menor é barato o suficiente para ser executado novamente a cada ciclo, enquanto um conjunto de combinações exaustivo geralmente é executado uma vez e depois abandonado discretamente.

Desvantagens dos testes com matrizes ortogonais

  • À medida que o volume de dados de entrada aumenta, a complexidade do projeto dos casos de teste também aumenta. Consequentemente, o esforço manual e o tempo gasto aumentam, obrigando os testadores a recorrerem a... Teste de automação.
  • A cobertura de pares não é cobertura total. Um defeito que só aparece quando três valores específicos ocorrem juntos pode passar despercebido por toda a matriz.
  • Fatores com números diferentes de níveis não se mapeiam perfeitamente em uma matriz padrão, portanto, é necessário um gerador de matriz de níveis mistos ou de matriz de cobertura.
  • A escolha dos níveis é uma questão de julgamento. Se um valor importante for omitido do modelo de entrada, nenhuma matriz poderá recuperá-lo.
  • Restrições entre valores, como um método de pagamento válido apenas em um país, são difíceis de expressar e geralmente produzem linhas inválidas que precisam ser removidas manualmente.

Nenhuma dessas limitações exclui a técnica; elas simplesmente definem seus limites. Matrizes ortogonais reduzem o problema de combinação, enquanto a análise de risco e teste de domínio Decida, para começar, quais fatores merecem fazer parte do modelo.

Erros ou erros ao realizar OAT

  • Direcionar os esforços de teste para a área errada da aplicação.
  • Escolher os parâmetros errados para combinar.
  • Utilizando testes com matrizes ortogonais quando o conjunto de entrada é suficientemente pequeno para permitir testes exaustivos.
  • Aplicar testes de matriz ortogonal manualmente em um modelo grande o suficiente para necessitar de um gerador.
  • Confiar exclusivamente em testes de matriz ortogonal para aplicações de alto risco, onde é necessária uma cobertura mais profunda.

O último item é o que causa mais danos na prática. Em uma característica crítica para a segurança ou para as finanças, o conjunto de pares funciona como um piso, e não como um teto, e normalmente é complementado com casos específicos em teste do sistema nível e com o plano mais amplo descrito em tipos de testes de software.

Perguntas Frequentes

É uma técnica de caixa preta. O array é construído apenas a partir de parâmetros de entrada e seus valores permitidos, sem referência ao código-fonte, ramificações ou estado interno, de modo que pode ser projetado antes da conclusão da implementação.

O testador constrói o modelo de entrada, geralmente com um analista de negócios confirmando quais valores são válidos. Os desenvolvedores contribuem quando um parâmetro é interno, como uma configuração de cache. A qualidade do modelo, e não a matriz, determina o valor do conjunto de testes.

Não, depende deles. O particionamento e a análise de limites reduzem cada campo a um pequeno número de valores representativos, e a matriz decide então quais desses valores serão combinados. Executar a matriz em valores brutos não filtrados produz uma tabela desnecessariamente grande.

É necessário um array de níveis mistos, por exemplo, L18, que combina colunas de dois e três níveis. Quando nenhum array padrão se adequa, um gerador de array de cobertura lida diretamente com o formato e retorna uma tabela menor do que forçar todos os fatores a terem a mesma quantidade de níveis.

Qualquer falha que exija três ou mais valores específicos simultaneamente. Estudos empíricos de dados de falhas relatam que a maioria das falhas é desencadeada por um ou dois parâmetros, razão pela qual a cobertura de pares é eficaz, mas a cobertura de três vias é recomendável para características críticas.

Principalmente em nível de integração e sistema, onde vários componentes ou configurações interagem. Também se aplica a matrizes de ambiente, como navegador, sistema operacional e tamanho da tela, e a qualquer produto configurável em que as combinações disponíveis superam o período de teste disponível.

O aprendizado de máquina lê os requisitos e os registros de produção para sugerir os fatores e níveis relevantes, e os modelos de histórico de defeitos classificam quais combinações merecem cobertura tripla. A matemática por trás da matriz é determinística — a parte inteligente consiste em escolher o que entra no modelo.

Ele elabora o arquivo de modelo para um gerador, o loop orientado a dados que lê as linhas e as asserções relacionadas a elas. Verifique a alegação de cobertura com o próprio gerador, pois um modelo de linguagem pode produzir uma tabela plausível que não seja ortogonal.

Resuma esta postagem com: