fbpx

O particionamento de equivalĂȘncia em testes de software Ă© uma tĂ©cnica de teste de caixa preta que o ajuda a criar casos de teste eficientes sem comprometer a cobertura do teste.

Neste artigo, veremos o que Ă© o particionamento de classe de equivalĂȘncia, por que ele Ă© Ăștil e exploraremos alguns dos processos e abordagens que vocĂȘ pode usar para aproveitar os benefĂ­cios dessa tĂ©cnica.

 

Table of Contents

O que Ă© particionamento de classe de equivalĂȘncia?

em testes de software?

Teste de controle de qualidade - o que Ă©, tipos, processos, abordagens, ferramentas e muito mais!

Todo software tem condiçÔes de entrada especĂ­ficas. No contexto do teste de software, essas condiçÔes de entrada descrevem os valores ou dados que um testador deve usar para verificar a qualidade e a funcionalidade do software. Essas entradas podem ser algo tĂŁo simples como um clique do mouse, atĂ© texto e nĂșmeros.

Uma partição equivalente no teste de software explora as diferentes entradas necessĂĄrias para usar o software e as agrupa em classes de equivalĂȘncia, ou seja, conjuntos de entradas que terĂŁo um efeito equivalente no comportamento do software.

Se vocĂȘ souber como cada grupo de entradas se comportarĂĄ, nĂŁo precisarĂĄ testar cada representante do grupo. Dessa forma, o particionamento da classe de equivalĂȘncia Ă© uma Ăłtima maneira de ajudar os testadores a reduzir a frequĂȘncia de testes redundantes. Em um mundo hipercompetitivo de desenvolvimento de software com prazos cada vez mais apertados, economizar tempo e esforço no ciclo de vida de testes de software (STLC) Ă© crucial.

Por fim, vale a pena observar que o teste de equivalĂȘncia Ă© uma tĂ©cnica de teste de caixa preta. Em resumo, isso significa que os testadores nĂŁo precisam conhecer o cĂłdigo interno ou o funcionamento interno do programa. Os testes sĂŁo baseados em entradas, saĂ­das e comportamentos externos. Dessa forma, esses testes sĂŁo altamente focados no comportamento do usuĂĄrio durante o uso do programa.

 

1. Particionamento de equivalĂȘncia de teste de software em poucas palavras

O particionamento de equivalĂȘncia divide os dados de entrada do teste de software em dois campos: entradas vĂĄlidas e invĂĄlidas. Os valores em cada partição devem fazer com que o software exiba o mesmo comportamento. Por exemplo:

  • Se a condição de um valor na Partição A for verdadeira, os outros valores na Partição A tambĂ©m deverĂŁo ser.
  • Da mesma forma, se as condiçÔes de um valor na Partição A forem falsas, os outros valores na Partição A tambĂ©m deverĂŁo ser falsos.

Em um contexto de teste, cada partição deve ser coberta pelo menos uma vez. Logicamente, isso significa que, se uma entrada na Partição A falhar, todas as outras entradas também falharão. Esse processo deve economizar tempo porque, em vez de testar cada entrada que fica na Partição A, os testadores podem testar apenas uma e extrapolar o resultado com base em seus pontos em comum.

 

2. Por que o teste de classe de equivalĂȘncia no teste de software Ă© importante

Antes de abordarmos os benefĂ­cios diretos do teste de classe de equivalĂȘncia no teste de software, precisamos definir por que a abordagem Ă© importante.

Todos os testadores entendem que o teste de software exige compromissos. O tempo e os orçamentos sĂŁo limitados, o que significa que os testadores precisam aproveitar ao mĂĄximo seus recursos. O particionamento de equivalĂȘncia de testes de software ajuda as equipes a encontrar um equilĂ­brio entre eficiĂȘncia e confiabilidade em seus testes, reduzindo o nĂșmero de entradas.

 

BenefĂ­cios do particionamento de equivalĂȘncia

em testes de software

Casos de uso da automação de processos robóticos em seguros e contabilidade

Uma partição equivalente no teste de software é preferida pelas equipes de teste por vårios motivos. Aqui estão alguns dos mais convincentes.

1. EficiĂȘncia

A grande vantagem do teste de partição de equivalĂȘncia estĂĄ em sua eficiĂȘncia. Quando os testadores usam o particionamento de equivalĂȘncia, eles podem reduzir o nĂșmero de casos de teste necessĂĄrios sem comprometer a cobertura do teste. Ao selecionar um caso de entrada de cada classe de equivalĂȘncia, os testadores podem se sentir confiantes de que entendem como o software funciona com uma variedade de entradas.

2. Simplicidade

Outra grande vantagem do particionamento de equivalĂȘncia de teste de software Ă© a simplicidade. A divisĂŁo de um conjunto diversificado de entradas em dados vĂĄlidos e invĂĄlidos significa que o planejamento de testes Ă© muito mais simples. Testar cada entrada individualmente requer muita documentação e coordenação. Reduzir isso a um exemplo representativo simplifica o processo de teste.

Cobertura aprimorada

O uso de classes de equivalĂȘncia nos testes tambĂ©m permite que vocĂȘ use o tempo de teste com mais eficiĂȘncia. A redução das entradas de teste em classes significa que vocĂȘ pode testar cada classe de forma mais completa. Essa abordagem abrangente seria francamente impossĂ­vel se vocĂȘ testasse cada entrada individualmente. O particionamento de equivalĂȘncia permite que as equipes sejam minuciosas e testem dados vĂĄlidos e invĂĄlidos, casos extremos, valores de limite e muito mais.

3. Reutilização

O tempo inicial que vocĂȘ investe para estabelecer cada classe de equivalĂȘncia no teste de software compensa no futuro se vocĂȘ reutilizar essas classes para futuros testes de entrada. Embora nem todas as partiçÔes sejam relevantes para testes futuros, as que forem economizarĂŁo muito tempo em projetos futuros ou atĂ© mesmo em situaçÔes de teste de regressĂŁo.

 

Desvantagens do particionamento de equivalĂȘncia

em testes de software

desafios dos ensaios de carga

Embora o particionamento de equivalĂȘncia ofereça alguns benefĂ­cios importantes, ele nĂŁo Ă© a solução ideal para todos os cenĂĄrios. Vamos explorar algumas de suas limitaçÔes.

1. Ordem de entrada

Em determinadas situaçÔes, a ordem de entrada Ă© uma parte essencial do teste da funcionalidade de um aplicativo. Isso nĂŁo Ă© algo que vocĂȘ possa realmente reduzir usando o particionamento de equivalĂȘncia. Os testadores devem estar atentos a essas situaçÔes e usar tĂ©cnicas alternativas para oferecer uma boa cobertura.

2. DependĂȘncias complexas de entrada

O software complexo com dependĂȘncias de entrada complexas Ă© outra ĂĄrea em que as limitaçÔes do particionamento de equivalĂȘncia sĂŁo expostas. Por exemplo, um software que produz cĂĄlculos com base em vĂĄrias entradas. Nesse cenĂĄrio, os testadores precisariam usar uma variedade de tĂ©cnicas para reduzir a explosĂŁo combinatĂłria e aumentar a probabilidade de isolar defeitos.

 

Abordagens alternativas para complementar o

limitaçÔes dos testes de equivalĂȘncia

testes alfa vs testes beta

Embora o teste de partição de equivalĂȘncia seja apropriado para muitos cenĂĄrios de teste, o software altamente complexo com dependĂȘncias intrincadas entre os valores de entrada pode exigir abordagens complementares adicionais.

Quando se trata de escrever casos de teste para software complexo, usar uma combinação dessas abordagens é uma ideia sólida.

1. Testes em pares

O teste em pares é uma técnica de teste de software que testa todas as combinaçÔes possíveis de cada par de parùmetros de entrada. Essa abordagem garante que cada par de parùmetros seja testado em conjunto pelo menos uma vez.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. Teste de tabela de decisĂŁo

Uma tabela de decisĂ”es ajuda os testadores a mapear metodicamente as diferentes combinaçÔes de entrada. É uma boa maneira de garantir a cobertura sistemĂĄtica quando existem dependĂȘncias complexas.

3. Testes de transição do Estado

Esse tipo de teste mede como o software faz a transição entre diferentes estados em resposta a vårias combinaçÔes de entrada.

4. Testes baseados em modelos

Essa abordagem requer a criação de um modelo com base na lógica interna do software e o uso de uma ferramenta de automação para criar casos de teste com base nesse modelo. Essa técnica é capaz de lidar com a complexidade e garantir a cobertura adequada.

 

Exemplos de testes de particionamento de classe de equivalĂȘncia

Teste Beta - O que Ă©, Tipos, Processos, Abordagens, Ferramentas, vs. Teste Alfa & Mais!

A melhor maneira de entender o particionamento de equivalĂȘncia Ă© observar como e onde vocĂȘ pode usar uma classe de equivalĂȘncia em testes de software. Aqui estĂŁo alguns exemplos para ajudĂĄ-lo a visualizar melhor o conceito.

 

1. Exemplo de teste de particionamento de classe de equivalĂȘncia nÂș 1

Um formulĂĄrio de pedido on-line Ă© um bom exemplo de classe de equivalĂȘncia em testes de software.

Digamos que vocĂȘ esteja criando um aplicativo para um varejista on-line de equipamentos estacionĂĄrios. HĂĄ um formulĂĄrio de pedido tĂ­pico para fardos de papel A4. Veja como vocĂȘ pode usar classes de equivalĂȘncia para testar essa forma.

Classes de equivalĂȘncia:

As quantidades de papel A4 estĂŁo em um intervalo especĂ­fico, por exemplo, de 1 a 100. Portanto, as trĂȘs classes sĂŁo:

  • 1 a 100
  • NĂșmeros abaixo de 1
  • NĂșmeros acima de 100.

 

Casos de teste:

TrĂȘs casos de teste devem ser executados, com os seguintes resultados esperados

  • Qualquer nĂșmero entre 1 e 100 = pedido processado
  • NĂșmeros abaixo de 1 = mensagem de erro
  • NĂșmeros acima de 100 = mensagem de erro

 

2. Exemplo de teste de particionamento de equivalĂȘncia nÂș 2

Uma classe de equivalĂȘncia em testes de software pode lidar com mais do que apenas nĂșmeros. Neste exemplo, exploraremos como vocĂȘ pode usar o mesmo princĂ­pio para verificar um portal de upload de arquivos. Digamos que vocĂȘ precise fazer um teste para um site que exige que os usuĂĄrios façam upload de documentos de identidade, mas sĂł pode aceitar formatos especĂ­ficos.

Classes de equivalĂȘncia:

  • Os documentos compatĂ­veis sĂŁo PDF e JPEG.
  • Documentos sem suporte sĂŁo todos os outros formatos de documento
  • Nenhum documento

 

Casos de teste:

  • Teste fazendo o upload de PDF ou JPEG = upload bem-sucedido
  • Teste ao fazer upload de formato nĂŁo suportado = mensagem de erro
  • Teste sem upload de arquivo = mensagem de erro

 

Como implementar um particionamento de equivalĂȘncia

abordagem de teste de software

Automação de testes ågeis de DevOps: Explicando a abordagem de automação baseada em mockups do ZAPTEST

Se vocĂȘ quiser usar classes de equivalĂȘncia em testes, precisarĂĄ adotar uma abordagem estratĂ©gica. Aqui estĂĄ um guia passo a passo Ăștil para implementar o particionamento de equivalĂȘncia em testes de software.

 

Etapa 1: Identificar variĂĄveis de entrada

 

Cada software responde a uma variedade de variĂĄveis de entrada. No caso de softwares complexos, essas variĂĄveis podem ser enormes. Portanto, analise os requisitos e as especificaçÔes do software e identifique todas as variĂĄveis que tĂȘm impacto sobre o comportamento do software.

Algumas das entradas mais Ăłbvias incluem formulĂĄrios de entrada do usuĂĄrio. No entanto, vocĂȘ precisa considerar uma variedade maior de entradas para sua lista. VocĂȘ tambĂ©m pode considerar variĂĄveis ambientais, chamadas de API, cĂĄlculos internos e assim por diante.

Em seguida, vocĂȘ deve entender os diferentes tipos de dados variĂĄveis. VocĂȘ pode categorizar essas variĂĄveis como inteiras, booleanas, strings, etc., para definir as partiçÔes apropriadas.

Por fim, vocĂȘ precisa explorar as restriçÔes de entrada. Isso inclui coisas como quais caracteres sĂŁo permitidos, formatos definidos e valores mĂ­nimos/mĂĄximos.

 

Etapa nÂș 2. Determinar partiçÔes vĂĄlidas e invĂĄlidas

Observe cada variĂĄvel de entrada e comece a dividi-las de acordo com os resultados vĂĄlidos e invĂĄlidos. Essas serĂŁo suas classes de equivalĂȘncia nos testes.

1. PartiçÔes vålidas

As partiçÔes vålidas podem ser divididas em duas classes.

Classes de equivalĂȘncia positiva:

Valores que vocĂȘ espera que o software manipule com ĂȘxito. Por exemplo, para um software que registra notas percentuais, qualquer valor entre 0 e 100 Ă© vĂĄlido.

Classes de equivalĂȘncia negativa:

Essa categoria serĂĄ para valores que estĂŁo fora dos limites da entrada esperada, mas que seu software deve tratar com uma mensagem de erro. Por exemplo, a entrada Ă© 110 para uma nota percentual, o que faz com que o software retorne uma mensagem de erro dizendo: “Todos os valores devem ser de 0 a 100”.

 

2. PartiçÔes invålidas

Essas classes de equivalĂȘncia incluirĂŁo entradas que desencadearĂŁo erros ou comportamentos inesperados. Em nosso exemplo acima, isso poderia incluir tentativas de inserir A+ ou B ou entradas semelhantes na nota percentual. Embora essas entradas possam estar tecnicamente corretas, elas estĂŁo fora das expectativas numĂ©ricas.

 

#3. Escrever casos de teste eficazes

Em seguida, vocĂȘ precisa criar casos de teste que cubram cada partição de equivalĂȘncia pelo menos uma vez. Conforme mencionado anteriormente no artigo, isso garante uma cobertura de teste adequada.

Em primeiro lugar, vocĂȘ deve selecionar valores representativos em cada partição de equivalĂȘncia que possam abranger dados vĂĄlidos e invĂĄlidos.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Dicas para escrever casos de teste sĂłlidos

  • Pense nos valores de limite: Certifique-se de testar os limites de suas partiçÔes. MĂ­nimo, mĂĄximo, inclusivo, exclusivo, etc., pois essas ĂĄreas sĂŁo fortes candidatas a bugs. Por exemplo, se suas expectativas de entrada estiverem entre 0 e 100, teste valores negativos, bem como nĂșmeros como 101.
  • Considere cenĂĄrios de teste positivos e negativos para seus casos de teste vĂĄlidos e invĂĄlidos.
  • O teste de combinação Ă© uma boa ideia. Use algumas abordagens diferentes, conforme descrito em nossas abordagens alternativas, para complementar as limitaçÔes da seção de testes de equivalĂȘncia acima.
  • Documentar a lĂłgica por trĂĄs do motivo pelo qual os valores de entrada foram divididos em partiçÔes especĂ­ficas e descrever claramente o comportamento esperado de cada teste
  • Sempre que possĂ­vel, use ferramentas visuais para trazer um senso de clareza e objetividade aos seus casos de teste, usando diagramas ou tabelas para mapear suas partiçÔes.

 

#4. Programar e executar seus casos de teste

Priorize suas tarefas com base em fatores como:

  • Quais ĂĄreas tĂȘm maior probabilidade de apresentar defeitos
  • Quais cenĂĄrios tĂȘm maior probabilidade de causar cenĂĄrios graves, como travamentos ou congelamentos

Em seguida, execute os testes e registre os resultados e os erros que ocorrerem. Para programas complexos com muitas entradas, é possível usar ferramentas de RPA para imitar as açÔes do usuårio.

 

#5. Analisar os resultados

ReĂșna os dados de teste coletados e analise os resultados. Alguns mĂ©todos que vocĂȘ precisa usar sĂŁo

  • Examine cada caso de teste e compare os resultados reais com os resultados esperados
  • Encontre quaisquer discrepĂąncias, investigue e informe quaisquer erros e defeitos.

 

#6 Dicas adicionais

Embora essas dicas nĂŁo se apliquem a todos os cenĂĄrios, elas serĂŁo Ășteis para testes de software complexos.

  • As tabelas de decisĂŁo sĂŁo uma excelente maneira de visualizar suas partiçÔes de equivalĂȘncia e as diferentes combinaçÔes de entrada que vocĂȘ pode querer usar
  • VocĂȘ pode mesclar classes de equivalĂȘncia se elas apresentarem um comportamento quase idĂȘntico, otimizando ainda mais o processo de teste
  • Use o teste de valor de limite para melhorar a detecção de defeitos
  • Sempre que possĂ­vel, automatize seus casos de teste de particionamento de equivalĂȘncia

 

Particionamento de equivalĂȘncia e anĂĄlise de valor de contorno

esclarecer alguma confusão na automatização de testes de software

O particionamento de equivalĂȘncia Ă© baseado na suposição de que cada teste em uma partição produzirĂĄ o mesmo resultado. Embora isso seja verdade em muitas situaçÔes, nem sempre funciona. Por exemplo, qualquer entrada que tenha sido adicionada a uma partição por engano pode nĂŁo ser verificada, levando Ă  redução da cobertura e Ă  possĂ­vel instabilidade do software no futuro.

A solução para esse problema Ă© o teste de valor limite. Ele permite que as equipes de teste de software se concentrem nas ĂĄreas com maior probabilidade de conter riscos e testem o software com base nisso. Em resumo, ele propĂ”e que os riscos tĂȘm maior probabilidade de ocorrer nas bordas ou limites das partiçÔes de entrada. Portanto, os testadores podem escrever casos de teste nos limites superior e inferior das entradas, alĂ©m dos outros casos de teste de classe de equivalĂȘncia.

 

Particionamento de equivalĂȘncia e automação com o ZAPTEST

melhores testes de software livre e empresarial + ferramentas de automatização RPA

As ferramentas de automação de teste de software, como o ZAPTEST, podem ajudar as equipes a automatizar o particionamento de equivalĂȘncia durante a criação e a execução do teste.

Vamos explorar como o ZAPTEST pode ajudĂĄ-lo a desbloquear os benefĂ­cios dessa abordagem Ăștil de teste de caixa preta.

 

1. Seleção de ferramentas

É importante selecionar a ferramenta certa para o trabalho. A maioria das ferramentas de automação de testes Ă© especializada em testes na Web, em dispositivos mĂłveis ou em desktops. O ZAPTEST Ă© capaz de lidar com testes em diferentes plataformas e aplicativos, o que o torna uma opção sĂłlida.

 

2. Escrever e executar casos de teste

O ZAPTEST 1Script permite que vocĂȘ examine a interface do usuĂĄrio para criar automação de testes. AlĂ©m disso, vocĂȘ tambĂ©m pode digitalizar modelos de aplicativos se estiver em um estĂĄgio inicial de desenvolvimento. Usando o recurso Scan GUI, o ZAPTEST examinarĂĄ todos os objetos de teste e os adicionarĂĄ Ă  lista de objetos.

A partir daĂ­, vocĂȘ pode adicionar objetos ao diagrama e criar as etapas de teste.

O ZAPTEST permite que vocĂȘ automatize a redação dos casos com uma interface simples de arrastar e soltar. VocĂȘ nĂŁo precisa de conhecimentos de codificação para criar casos de teste com o ZAPTEST. Portanto, a partir daqui, vocĂȘ pode selecionar a operação relevante em um mĂ©todo suspenso e criar um caso de teste com base nos valores de entrada necessĂĄrios para a sua interface. Em seguida, vocĂȘ pode criar casos de teste para cada equivalĂȘncia e executar seus casos de teste. VocĂȘ pode atĂ© mesmo reutilizar casos de teste e editĂĄ-los no editor de etapas, economizando muito tempo.

 

3. RelatĂłrios e gerenciamento de casos de teste

O ZAPTEST permite que vocĂȘ execute casos de teste em paralelo, economizando um tempo considerĂĄvel. Isso pode ajudĂĄ-lo a executar um grande nĂșmero de partiçÔes de equivalĂȘncia diferentes de uma sĂł vez ou a executar grupos especĂ­ficos de testes.

Os resultados são fåceis de obter graças aos relatórios detalhados de falhas/passos, capturas de tela, registros de execução e métricas de desempenho relacionadas a cada caso de teste.

 

4. Manutenção de casos de teste

TambĂ©m Ă© possĂ­vel rastrear e manter os casos de teste de forma simples, graças aos recursos de controle de versĂŁo de qualidade. AlĂ©m disso, os usuĂĄrios do ZAPTEST podem clonar e reutilizar testes para atingir um novo nĂ­vel de eficiĂȘncia.

O ZAPTEST oferece muito mais funcionalidades além da automação de casos de teste. Com um conjunto de ferramentas RPA, o ZAPTEST oferece funcionalidade 2 em 1, preenchendo a lacuna entre DevOps e BizOps em um futuro marcado pela hiperautomação, em que tudo o que pode ser automatizado serå automatizado.

 

ConsideraçÔes finais

O particionamento de equivalĂȘncia Ă© uma solução elegante para situaçÔes em que os testadores precisam encontrar um equilĂ­brio entre eficiĂȘncia e precisĂŁo. Como alguns softwares permitem uma variedade quase infinita de entradas, o particionamento de classes de equivalĂȘncia ajuda as equipes a dividir os dados de teste em partes gerenciĂĄveis e pequenas, que podem ser testadas minuciosamente.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo