Durante os estudos para a CTFL (Certified Tester – Foundation Level), algumas questões dos simulados geraram dúvidas, tanto para mim, quanto para outras pessoas, que até entraram em contato comigo perguntando sobre a resolução de tais.
Pensando no alto grau de dificuldade que muitas questões trazem, e que em muitas vezes apenas engolimos a resposta, e não entendemos o motivo dela. Vou fazer uma série de posts, com a resolução das questões que achei mais complicadas e também que outras pessoas acharam.
E para começar vamos ver a resolução da primeira questão do simulado 1 (Q1S1), uma questão que não é tão difícil, mas que pode gerar dúvida:
Um campo de entrada (input field) referente ao ano de aniversário aceita valores de 1900 até 2004. Utilizando a análise do valor limite o teste usaria quais valores?
a) 0,1900,2004,2005
b) 1900, 2004
c) 1899,1900,2004,2005
d) 1899, 1900, 1901,2003,2004,2005
Analisando o enunciado da questão
O campo aceita valores entre 1900 e 2004. E temos que usar a análise do valor limite para determinar os valores que usaremos no teste.
Resolução
A técnica de análise de valor limite faz uso dos valores: mínimo inválido, mínimo válido, máximo válido e máximo inválido. Portanto, teremos que ter quatro valores para o teste. Então já eliminamos duas alternativas: b e d
Agora que surge a dúvida…
Alternativa a
0 = valor mínimo inválido
1900 = valor mínimo válido
2004 = valor máximo válido
2005 = valor máximo inválido
Alternativa c
1899 = valor mínimo inválido
1900 = valor mínimo válido
2004 = valor máximo válido
2005 = valor máximo inválido
Agora você pode está pensando: “Então temos duas alternativas corretas?”
Não, pois a análise do valor limite, como o próprio nome já sugere, está interessada nos valores limites.
“Hmmm, já sei! O 0 não é um valor limite.”
Perfeito! É isso mesmo! O 0 é um valor mínimo inválido, porém está bem abaixo do limite mínimo.
Resposta
Alternativa: c) 1899,1900,2004,2005
Se você achou alguma questão difícil ou não clara, e gostaria que eu colocasse aqui, só fazer um comentário. Que iremos discutir sobre ela.
Ahh…se a explicação estiver confusa ou não for suficiente para o entendimento, sinta-se à vontade em comentar. 🙂
Até a próxima!
Fique por dentro das novidades, assine o feed do QualidadeBR.
Estando 0 e 1899 abaixo do valor limite, qual a diferença entre eles ?
Tenho que garantir que 1899 não seja aceito por ser o último inteiro antes do 1900 ?
Em outras palavras, a alternativa A seria correta se tivesse esta 5 opções ?
0 = valor mínimo inválido
1899 = valor mínimo inválido
1900 = valor mínimo válido
2004 = valor máximo válido
2005 = valor máximo inválido
Não entendi…
Boas perguntas Fernando.
1ª pergunta
A diferença é que para a técnica de valor limite o 1899 é o valor que tem mais chance de encontrar um defeito do que o 0.
Bem essa foi a explicação teórica. Agora vamos para a prática:
IF ano_aniversario >= 1899 AND ano_aniversario <= 2005 THEN
Print “Data válida”
ELSE
Print “Data inválida”
Fazendo o teste com os valores da alternativa A, encontraríamos uma falha: apresentar 2005 como sendo um valor válido. Já usando os valores da alternativa C, encontraríamos duas falhas: apresentar 2005 como sendo um valor válido e também o 1899 como válido.
2ª pergunta
Exato. Fazendo uma analogia, se alguém fosse verificar a sua altura, supondo que você tenha 1.80. Essa pessoa iria checar o valor 1.80 (máximo válido) e o 1.81 (máximo inválido) e não precisaria checar o 2.00(máximo inválido).
3ª pergunta
Sim. Se a questão não pedir o número mínimo de testes essa alternativa proposta por você estaria correta. Agora se tivesse essa alternativa e também a C, e na questão pedisse o número mínimo de testes, a alternativa correta seria a C. Pelo fato dela utilizar menos testes do que a que você propôs.
Conclusão:
O uso do 0, ou de qualquer outro valor, pode até ser feito, principalmente se você quiser verificar alguma entrada típica do usuário. Porém, o teste básico que você faria utilizando a técnica do valor limite, seria justamente os dos limites (mínimo inválido, mínimo válido, máximo válido e máximo inválido).
Se sobrou mais alguma dúvida só falar.
Obrigado pelas perguntas Fernando!
Bom dia Fabrício!
não entendi a questão 5 do simulado 2; resposta C.
qto à técnica de valor limite/partição de equivalência.
não foi delimitado mínimo e/ou máximo, então aplica-se o mínimo e o máximo. Correto? Assim a resposta seria E, mas e o valor 50.000? não entendi.
Obrigado pelos incentivos.
Olá Clauriston!
Essa é uma questão que gera bastante dúvida, aliás, ela estava com um erro de tradução. A tradução correta é:
O número em um sistema de controle de estoque pode variar entre 10.000 e
99.999. Quais das seguintes entradas válidas podem ser colocadas nos testes usando as técnicas de classe de equivalência e valores limites?
Agora com a tradução correta, acredito que fica mais fácil o entendimento da alternativa correta ser a C. Pois a questão pede entradas válidas, ou seja, limites válidos e não inválidos.
Logo, os valores 9.999 e 100.000 da alternativa E são inválidos, fazendo com ela seja uma alternativa incorreta.
Se ficou mais alguma dúvida, só falar.
Obrigado pelo comentário Clauriston!
Olá Fabricio,
Primeiramente gostaria de parabeniza-lo pelo blog, está excelente!!!
Em segundo lugar, de acordo com a correta tradução da questão 5 do simulado 2, a alternativa correta não seria a D. Não entendi o porque do valor 50.000 precisar ser testado.
Você tem idéia?
Agradeço desde já pelo apoio.
Olá Antonio!
Excelente dúvida!
Vamos analisar melhor a questão, seguindo as técnicas propostas:
Técnica de classe de equivalência – temos 3 partições:
Inválida mínima = valores menores que 10.000;
Válida = valores entre 10.000 e 99.999;
Inválida máxima = valores maiores que 99.999.
Técnica de valores limites – temos 4 limites a serem verificados:
Inválido mínimo = 9.999;
Válido mínimo = 10.000;
Válido máximo = 99.999;
Inválido máximo = 100.000.
E como a questão pede somente os valores válidos, chegamos aos seguintes valores:
10.000 e 99.999
Ou seja, a questão mais correta é realmente a D. Pois, estamos usando os dois limites válidos, e ambos já estão inclusos na particição de equivalência válida.
Buscando mais informações sobre a questão original, para tentar sanar essa inconsistência, percebi que a maioria das fontes apresenta essa questão com apenas 4 alternativas e a que está justamente de fora é a alternativa D. E neste caso a C é entendida como a correta.
E a justificativa para isso, é eles terem pensado que os valores 10.000 e 99.999 foram encontrados usando a técnica de valor limite, e o 50.000 usando a de equivalência. Pelo menos, essa é a única razão para incluir o 50.000, que eu pensei.
Para não gerar dúvida é melhor marcar a D como correta, afinal ela é a mais consistente (no meu entender). Vou até alterar o simulado.
Se tiver alguma opinião contrária, sinta-se à vontade.
Pingback: Resolução de questões CTFL: Q5S2 « QualidadeBR
Olá pessoal!
Estou aqui estudando sobre testes (para tentar tirar certificação BSTQB semana que vem! hehe) e eis que encontro esse blog justamente quando estava aqui matutando minhas dúvidas em relação a questão 5, sobre partição de equivalência e valores limites.
Realmente a questão ficou um pouco confusa, mas quando pensamos em valores válidos e no conceito das técnicas de partição de equivalência e valores limites, tudo fica mais claro.
A partição de equivalência se baseia em alguns princípios:
– toda entrada de dados possui um domínio de valores que pode ser decomposto em partições de equivalência;
– a utilização de várias valores de uma mesma partição não agrega valor à cobertura de testes;
– pode-se definir partições válidas e inválidas.
Pois bem, no caso da questão (pensando na técnica de particionamento de equivalência) temos algumas partições:
1) X < 10.000 (1 valor que satisfaça essa condição faria a cobertura de teste para essa partição) – perceba que essa é uma partição INVÁLIDA!
2) 10.000 <= X 99.999 ( 1 valor que satisfaça essa condição faria a cobertura de teste para essa partição) – hmmmm, mais uma partição INVÁLIDA!
Portanto, só precisamos da partição 2, ou seja, valores que satisfaçam essa condição.
Agora, analisando o conceito da técnica de valores limites, vamos também pensar em seu conceito e na condição de valor válido:
– a análise de valor limite explora o fato de que falhas normalmente aparecem no limite das partições de equivalência;
– assim, sao testados o valor limite exato e os valores adjacentes dos limites: n, n + 1 e n -1.
Assim, para a partição válida compreendida em 10.000 <= X <= 99.999, teremos os valores limites VÁLIDOS:
– 10.000:
– 10.001;
– 99.998;
– 99.999.
Cruzando as duas técnicas e analisando as alternativas, chegamos à resposta:
D)10.000, 99.999.
É isso!
Abraços e espero ter ajudado (ou pelo menos acrescentado) algo pra vocês!
Caro “Anônimo”,
Primeiro obrigado pelo comentário, com certeza agregou valor a discussão. 🙂
Só não entendi a segunda partição que você pensou (10.000 <= X 99.999). No meu entendimento da questão temos três partições, como comentei no comentário anterior.
Agora sobre a técnica de valores limites, acredito que os valores 10.001 e 99.998, podem até serem usados no teste, porém não representam os limites, que no caso, é representado pelos valores 10.000 e 99.999.
E que bom que chegamos na mesma alternativa, como a correta. 🙂
Abraços!
Ops… a segunda partição é na verdade: 10.000 <= X <= 99.999 (faltou o ‘<=’!)
Na verdade, os valores 10.001 e 99.998 poderiam sim serem usados no teste de valor limite, pois são os limites adjacentes (da partição válida) dos valores 10.000 e 99.999.
Para que se tenha uma cobertura real do limite, segundo a técnica, é proposto que se selecione o valor exato do limite (que seriam os valores 10.000 e 99.999) e os valores adjacentes, sendo um acima e um abaixo do valor limite.
Dentre as alternativas para a questão, não temos nenhuma com os limites adjacentes válidos, por isso chegamos nos valores limites 10.000 e 99.999.
É isso!
Ops de novo.. vi aqui que engoli uma das partições mesmo..desculpem..devo ter deletado sem querer…
1) X < 10.000 (1 valor que satisfaça essa condição faria a cobertura de teste para essa partição) – perceba que essa é uma partição INVÁLIDA!
2) 10.000 <= X 99.999 ( 1 valor que satisfaça essa condição faria a cobertura de teste para essa partição) – hmmmm, mais uma partição INVÁLIDA!
😉