Juli Goes
Juli Goes24/11/2023 10:44
Compartilhe

Tecnica de Teste - Partição de Equivalência

  • #Integração
  • #Selenium
  • #API Rest

Pessoal Tudo bem?

Pelo fato de que o curso Introdução aos Testes (Dio.IO) nos fornece uma pincelada na área de testes, resolvi compartilhar com vocês uma técnica prática de testes, que é a técnica de Partição de Equivalência, um tipo de teste de caixa preta.

O que é isso? É uma técnica usada para gerar casos de testes focados na regra do negócio.

E sim para gerar casos de testes não é necessário que o profissional de testes tenha somente criatividade. Sei que no início da profissão muitos não têm base técnica suficiente, e geram inúmeros casos, sem um foco específico, e sim isso faz parte do aprendizado, aconteceu comigo, e pode acontecer com outros que estão iniciando. No entanto temos técnicas que nos ajudam a gerar cenários de testes e ainda a justificar o motivo pelo qual eles foram gerados.

Então vamos lá - O que é partição de equivalência (conceito do ISTQB)?

Partição De Equivalência

Subconjunto do domínio de valor de uma variável dentro de um componente ou sistema para o qual se assume, baseado na especificação, que todos os valores devem ser tratados da mesma forma.

Você entendeu o conceito? Acho que quem lê pensa, Oi?

Basicamente ele informa que temos um conjunto de variáveis, e podemos dividi-los em partições, baseado na especificação da regra de negócios especificada, o tratamento igual para todas as partes.

Mas vamos lá entender como fazer na prática.

Vamos supor que você tem um sistema de uma faculdade, e agora na Black Friday eles vão colocar uma promoção de desconto para ex-alunos.

Regra de negócio - Os ex-alunos que voltarem a se matricular durante a promoção da Black Friday terão o desconto de 30% nas mensalidades para todo o curso escolhido.

Passo 1 - Primeiro vamos escolher as variáveis que devem ser testadas.

Nesse caso podemos dividir em uma pergunta booleana True or False.

O matriculando é um ex-aluno?

______________SIM____________________ |______________ NÃO __________

Então qual seria a variável de entrada?

O sistema conta com cadastro de nome completo e CPF, nessa regra o validador escolhido foi o CPF.

Então temos como variável de Entrada = CPF

Retorno esperado Sim ou Não (Lembre da nossa pergunta)

Então quais casos a gente poderia gerar para validar essa regra?

1 - CPF de um ex-aluno

2 - CPF de um novo aluno

Estes dois casos são suficientes para validar se a regra foi ou não aplicada?

Pensei aí...

Em tese sim, pois teríamos a validação dos retornos esperados na regra, porém ainda temos que definir quais seriam os casos inválidos que podem ocorrer durante esse cadastro.

Passo 2 - Agora Vamos dividir por retornos válidos e inválidos:

__________________Inválido _________ | ________ Válidos (booleano Sim/Não)_____________

Qual poderia ser um caso inválido?

1 - Um CPF inválido;

2 - Preencher um cadastro e não informar o CPF(em branco);

Então até o momento temos 04 cenários diferentes para testes

1 - CPF de um ex-aluno

2 - CPF de um novo aluno

3 - Um CPF inválido

4 - Preencher um cadastro e não informar o CPF

______Inválido(CPF inválido e em branco) ____ | ________ Válidos (Sim/Não)_____________

Estes quatro casos estariam validando a regra de negócio?

Se a resposta for SIM...

Não precisamos gerar mais inúmeros casos de testes para validar a regra.

Veja que até o momento não usamos a aplicação, não usamos nenhuma ferramenta, você pode fazer isso usando uma folha de papel sulfite e uma caneta somente.

Simples, certo?

E ainda nesse momento você pode pensar em outras validações para conversar com o Product Owner do projeto ou com o Analista de Requisitos, como por exemplo:

  • Se uma pessoa se inscrever em mais de um curso terá o mesmo desconto nos dois?
  • Se uma pessoa for um aluno atual e se inscrever, terá algum tipo de desconto?
  • Se um ex-aluno com alguma dívida com a faculdade poderá fazer o cadastro com desconto?
  • Se um ex-aluno que tem alguma pendência em matérias se inscrever em um curso de Pós Graduação terá o desconto? O sistema irá permitir a matrícula?
  • Existe um limite de tempo de ex-aluno para conseguir esse desconto, por exemplo ex-alunos com mais de 10 anos desde o último curso?
  • Existe alguma regra de perda deste desconto durante o curso? Por exemplo, falta de pagamento, não concluir as matérias dentro do semestre?
  • Existe uma regra de data de pagamento da própria matrícula, para ainda conservar o desconto, exemplo em até uma semana da matrícula?
  • A data que vale esse desconto seria somente na Black Friday ou durante uma semana ou um mês? Quais são os limites (essa resposta daria uma nova partição de equivalência para essa regra.

O que você pode fazer primeiro e, verificar na própria documentação se tem algum item que já responde alguns destes questionamentos, caso não tenha, ou tenha alguma ambiguidade, vale a pena questionar ao Product Owner do projeto.

Esses questionamentos contribuem para a aplicação, e que estes questionamentos não sejam feitos pelos clientes na hora da matrícula. Um dos papéis do QA é também analisar a regra do negócio, seus impactos e coberturas, isso melhora a qualidade da aplicação.

Espero que de alguma forma eu tenha conseguido explicar para vocês esse método.

Tente você mesmo, pegue uma regra de negócio e faça este desenho, é um bom exercício para começar a pensar nos cenários de testes.

Caso tenha alguma dúvida estou a disposição de Vocês!

Até Mais,

Juli

Compartilhe
Comentários (0)