Coberturas

100% de cobertura de comando cobre 100% de cobertura de desvio? Ou é o contrário?

100% de cobertura de caminho garante 100% de cobertura de LCSAJ?

Se algumas dessas perguntas já passaram pela sua cabeça, garanto que não foi somente pela sua. Pela minha e de várias outras pessoas também.

Então o que você acha de solucionar de uma vez todas as dúvidas quanto as coberturas?

“Se tá brincando, Fabrício?”

“Sei, sei e eu também vou te mostrar um esquema para acertar todos os números da loteria”

Que isso pessoal, é verdade. Eu agarantiu!!!

Seu Creysson

Eu criei uma representação gráfica de qual cobertura cobre qual, baseada em uma outra que a leitora Renata Eliza (muito obrigado!) me enviou:

Coberturas

Ficou mais fácil não ficou?

Mas se mesmo assim restaram dúvidas, segue abaixo a listagem de quais coberturas cobrem quais, baseado no material da certificação CTFL, cedido pela BSTQB:

  1. 100% da  cobertura de decisão ou desvio garante 100% da cobertura de comando, mas não vice-versa;
  2. 100% de cobertura de decisão implica em 100% de cobertura de desvio, e vice-versa;
  3. 100% de cobertura LCSAJ implica em 100% de cobertura de decisão;
  4. 100% de cobertura de caminho implica em 100% de cobertura LCSAJ.

E isso aí pessoal. Espero que eu tenha ajudado. 🙂

Fique por dentro das novidades, assine o feed do QualidadeBR.
Assine o feed

Fonte:

ISTQB – Glossário de Termos de Teste (Versão 1.3 – Português/Brasil);

Syllabus Foundation Level (em Português/Brasil).

Resolução de questões CTFL: Q15S2

Essa deveria ser uma questão mais fácil de cobertura de sentença e desvio, por usar a nossa linguagem. Porém, aplicada numa questão de Teste de Software, as coisas ficam confusas.

Questão

Considere o seguinte:

Pegar e ler o jornal
Olhe o que está passando na televisão
Se tiver um programa que você estiver interesse em assistir, então, veja a TV e
assista o programa
Caso contrário
Continue lendo o jornal
Se existe uma palavra cruzada no jornal, então tente completar

a) CS = 1 e CD = 1
b) CS = 1 e CD = 2
c) CS = 1 e CD = 3
d) CS = 2 e CD = 2
e) CS = 2 e CD = 3

Análise do código

Que código?

Esse daqui:

  1. Pegar jornal
  2. Ler jornal
  3. Olhar televisão
  4. IF tiver um programa que você estiver interesse em assistir THEN
  5. Veja a TV
  6. Assista o programa
  7. ELSE
  8. Continue lendo o jornal
  9. IF existe uma palavra cruzada no jornal THEN
  10. Tente completar
  11. ENDIF
  12. ENDIF

Acredito que uma maneira de resolver essa questão é passando o cenário descrito para um pseudocódigo, embora gaste mais tempo. Mas no momento o importante é compreender a questão, leve o tempo que levar.

Analisando o código temos dois IFs, sendo que o primeiro tem um ELSE, e o segundo está associado ao ELSE, ou seja, é dependente do primeiro IF.

Resolução

Cobertura de sentença

Dois testes são necessários: um para passar pelo primeiro IF e outro para passar pelo segundo IF. E passando pelos dois IFs, iremos executar todas as sentenças.

Cobertura de desvio

Já para a cobertura de desvio é preciso 3 testes:

Teste 1

Está passando um bom filme e o cidadão vai assistir. (primeiro IF – verdadeiro)

Teste 2
Está passando o Faustão e o cidadão vai continuar a leitura do jornal de domingo. (primeiro IF – falso)
O cidadão acaba de encontrar uma palavra cruzada e logo tenta completar. (segundo IF – verdadeiro)

Teste 3
Está passando de Volta a Lagoa Azul e o cidadão vai continuar a leitura do jornal. (primeiro IF – falso)
Não há uma palavra cruzada no jornal. (segundo IF – falso)

Resposta

Alternativa: e)  CS = 2 e CD = 3

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Trabalhe, trabalhe, trabalhe em equipe

Esse post é mais para dá uma quebrada nessa série de resoluções de questões da CTFL. E comentar sobre algo muito importante, que muitos dizem, e que às vezes pode parecer até clichê, mas é a pura verdade.

E também estava querendo comentar sobre a dobradinha da Brawn GP (hehe), já que abandonei há muito tempo atrás o meu blog de F1.

Então chega de blá-blá, e vamos para o post.

Superar desafios

Estamos sempre estudando, trabalhando, nos esforçando para alcançar o algo a mais. Superar desafios, que não param de chegar (que bom), desde aquelas missões impossíveis que te aparecem às 18:00, quando você já estava arrumando as coisas para sair do trabalho, mas acaba tendo que ficar para resolver. Até os seus desafios pessoais: passar numa prova, emagrecer (no meu caso engordar…rsrs), aprender um novo idioma, etc.

O caso BBB

Calma, não vou falar do Big Brother Brasil e sim de três pessoas, que representam toda uma equipe de Fórmula 1: Button, Barrichelo e Brawn. O primeiro é o companheiro de equipe do Rubinho, e o terceiro é o chefe da equipe, Ross Brawn.

Hoje de madrugada estavam os três no pódio do grande prêmio da Austrália, o Button no lugar mais alto o Rubinho no segundo e o Ross Brawn para receber o prêmio da equipe vencedora.

E os três superaram diversos desafios para chegar até lá. E a razão dos três estarem lá não é apenas devido as próprias habilidades e esforços de cada um. E sim de uma equipe toda, aquela velha história de que a vitória é de todos: desde o mecânico até o chefe da equipe.

Só em equipe

Se você tiver um grande desafio, como a Brawn teve, não adianta apenas você se esforçar, assim como não adiantava apenas o Rubinho dá o seu máximo e o carro não ser bom, fato que ocorreu nos anos anteriores.

Você irá precisar de uma equipe. E todos nós fazemos parte de uma equipe (acredito eu). No meu trabalho mesmo, temos um grande projeto, enormes desafios, cobranças e uma equipe que adora superá-los. Eu sozinho não ia conseguir garantir a qualidade do sistema, por mais que eu me esforce. É um desafio que deve ser encarado por uma equipe e todos na equipe devem trabalhar, trabalhar e trabalhar.

O gerente do projeto por mais que ele seja competente não conseguirá gerenciar todas as equipes e as tarefas, ele precisa de outras pessoas para ajudá-lo. Os desenvolvedores não conseguirão garantir que o sistema estará de acordo com os requisitos sem a nossa ajuda.

Em equipe, grandes obstáculos se tornam menores. Exemplos diversos:

  • É mais fácil fazer dieta junto com os seus amigos (as), já que todos vão evitar ir numa churrascaria ou comer uma feijoada na quarta-feira;
  • Estudar para uma prova em grupo, onde todos pensarão em como resolver uma questão confusa e compreender melhor um capítulo difícil;
  • Gravar um CD de rock sozinho é algo quase impossível, já que temos pelo menos três instrumentos (guitarra, baixo e bateria), embora Dave Grohl, tenha tocado todos os instrumentos do primeiro álbum do Foo Fighters sozinho.

Hoje em dia vivenciamos o progresso, e com ele muitas coisas se tornaram mais fáceis, porém os nossos desafios estão cada vez mais difíceis. Portanto temos que trabalhar duro e em equipe. A velha história de que a união faz a força.

Se um projeto dá certo ou errado a culpa ou a glória não serão apenas de uma única pessoa e sim de todos.

E para terminar, não adianta temos uma excelente infra-estrutura, usar a melhor metodologia, ter um bom prazo, senão temos uma boa equipe. As pessoas são e sempre serão o diferencial, a razão do fracasso ou do sucesso de um projeto. Não tente terceirizar a culpa para a metodologia e nem se vangloriar sozinho. E quando eu falo em pessoas os clientes também estão inclusos, aliás, são os primeiros que devem está comprometidos com o sucesso do projeto.

“Eu sou parte de uma equipe. Então, quando venço, não sou eu apenas quem vence. De certa forma, termino o trabalho de um grupo enorme de pessoas.”Ayrton Senna

“Um floco de neve é uma das mais frágeis criações, mas veja o que eles conseguem fazer quando se juntam!” – Autor desconhecido

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q14S2

Essa é uma questão casca grossa. E a principal razão para eu dizer isso, é que ela quebra uma regra que eu tinha: o número de testes para garantir a cobertura de desvio será sempre maior que o número de testes para garantir a cobertura de sentença.

Questão

Dado o seguinte código, qual a alternativa verdadeira:

  1. IF A > B  THEN
  2. C = A – B
  3. ELSE
  4. C = A + B
  5. ENDIF
  6. Read D
  7. IF C = D Then
  8. Print “Error”
  9. ENDIF

a) 1 teste de cobertura de sentença (comando), 3 para a cobertura de desvio
b) 2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio
c) 2 testes de cobertura de sentença (comando), 3 para a cobertura de desvio
d) 3 testes de cobertura de sentença (comando), 3 para a cobertura de desvio
e) 3 testes de cobertura de sentença (comando), 2 para a cobertura de desvio

Análise do código

Temos dois IFs independentes, sendo que o primeiro IF tem um ELSE.

Resolução

Cobertura de sentença

Com um único teste poderíamos garantir quase toda a cobertura de sentença, por exemplo:

Teste 1

A = 20
B = 10
C = será 10
D = 10

Com o teste 1 iremos passar pelo primeiro e segundo IF, porém, não iremos passar pelo ELSE. Portanto precisamos de mais um teste:

Teste 2

A = 0
B = 10
C = será 10 (o valor de C nem interessa nesse teste)
D = 9 (o valor de D nem interessa nesse teste)

Com o teste 2 passamos pelo ELSE, porque A é igual a B e nos levará a linha 4, a única pela qual não tínhamos passado.

Cobertura de desvio

Podemos usar os mesmos testes feitos na cobertura de sentença. Mas com uma diferença: no teste 2, os valores de C e D nos interessam, pois irão cobrir o resultado falso (a não passagem) do segundo IF.

Portanto, com apenas dois testes também alcançamos a cobertura de desvio.

Resposta

Alternativa: b)  2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio

Dica

Adaptando a minha regra inicial: o número de testes para garantir a cobertura de desvio, na maioria das vezes, será maior que o número de testes para garantir a cobertura de sentença.

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q13S2

Retomando o simulado 2. Vamos resolver a questão 13, que é bem simples, comparada as demais apresentadas anteriormente.

Questão

Dado o seguinte código:

  1. Switch PC on
  2. Start “outlook”
  3. IF outlook appears THEN
  4. Send an email
  5. Close Outlook
  6. ENDIF

a) 1 teste de cobertura de sentença (comando), 1 para a cobertura de desvio
b) 1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio
c) 1 teste de cobertura de sentença (comando), 3 para a cobertura de desvio
d) 2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio
e) 2 testes de cobertura de sentença (comando), 3 para a cobertura de desvio

Análise do código

Temos apenas um IF. Ou seja, é mamão com açúcar.

Resolução

Para alcançar a cobertura de sentença precisamos de apenas um teste, no qual iremos passar pelo IF. Ou seja, o outlook irá aparecer e executaremos as linhas 4 e 5, juntamente com as demais.

Já para alcançar a cobertura de desvio precisamos de dois testes, um que passe pelo IF e outro que não passe. Ou seja, num teste o outlook irá aparecer e no outro não.

Não falei que seria fácil. 🙂

Resposta

Alternativa: b)  1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q14S1

Voltando ao simulado 1. Vamos ver a questão de número 14.

Questão

Quantos  casos  de  testes  são  necessários  para  cobrir  todas  as  possibilidades  de
declarações  (caminhos)  para  o  seguinte  fragmento  de  código?  Supondo  que  as  duas
condições são independentes entre elas.
…………

  1. if (Condition 1)
  2. then statement 1
  3. else statement  2
  4. fi
  5. if (Condition 2)
  6. then statement 3
  7. fi

…………
a) 2
b) 3
c) 4
d) Não há como estimar

Análise

A questão pede o total de testes para cobrir todas as possibilidades de declarações (caminhos), ou seja, pede-se a cobertura de cobertura de caminho.

Quanto ao código, podemos perceber que há dois IFs independentes, como o próprio enunciado já fala.

Resolução

A melhor maneira de resolver essa questão é fazendo o fluxo do código para pode visualizar os caminhos existentes:

Fluxo

Olhando a figura acima, podemos visualizar que há 4 caminhos possíveis:

Azul: Condition 1 é verdadeira > executa o statement 1 > Condition 2 é falsa > finaliza

Preto: Condition 1 é verdadeira > executa o statement 1 > Condition 2 é verdadeira>executa o statement 3 > finaliza

Vermelho: Condition 1 é falsa> executa o statement 2 > Condition 2 é verdadeira> executa o statement 3 > finaliza

Verde: Condition 1 é falsa > executa o statement 2 > Condition 2 é falsa > finaliza

Resposta

Alternativa: c)  4

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q12S2

Dois dos assuntos que mais apresentam dificuldade são os de cobertura de sentença (comando) e desvio. E acredito que o motivo é que nós (da área de Teste e Qualidade de Software), na maioria das vezes não somos os responsáveis por usar tais coberturas. E sim os desenvolvedores, já que elas são técnicas baseadas em estrutura.

Irei apresentar a resolução da questão 12 do simulado 2, e em outros posts também abordarei as questões 13, 14 e 15 deste mesmo simulado, que também falam sobre cobertura de sentença (comando) e desvio.

Questão

Dado o seguinte código, o que é verdadeiro sobre o número mínimo de casos de
teste necessários para uma total cobertura de sentença (comando) e desvio:

  1. Read P
  2. Read Q
  3. IF P+Q > 100 THEN
  4. Print “Large”
  5. ENDIF
  6. If P > 50 THEN
  7. Print “P Large”
  8. ENDIF

a) 1 teste de cobertura de sentença (comando), 3 para a cobertura de desvio
b) 1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio
c) 1 teste cobertura de sentença (comando), 1 para a cobertura de desvio
d) 2 testes de cobertura de sentença (comando), 3 para a cobertura de desvio
e) 2 testes de cobertura de sentença (comando), 2 para a cobertura de desvio

Análise do código

Temos dois IFs, e um detalhe importante: são dois IFs independentes, ou seja, o resultado do primeiro IF não impacta no segundo IF.

Resolução

Antes de ir para resolução propriamente dita, é bom lembrar dos conceitos de cobertura de sentença (comando) e da cobertura de desvio:

Cobertura de sentença (comando) = está associada a quantidade de linhas do código que está sendo testada
Cobertura de desvio = está associada a quantidade de desvios que são testados, o que inclui fazer o teste da saída verdadeira e falsa de um desvio (desvio = IF, CASE, SWITCH, WHILE, etc)

Agora vamos para a resolução, usando as duas técnicas:

Sentença (comando)

Com um único teste podemos alcançar a cobertura total de sentença, por exemplo:

P = 100
Q = 1

Iremos passar pelos dois IFs. Logo cobrimos todas as sentenças: 1,2,3,4,5,6,7,8.

Desvio

Já para alcançar a cobertura total de desvio precisamos de dois testes: um que passe pelos dois IFs e outro que não passe por eles, por exemplo:

Teste 1

P = 100
Q = 1

Com estes valores de entrada, iremos passar pelo primeiro IF e também pelo segundo.

Teste 2

P = 50
Q = 1

Com estes valores de entrada, não iremos passar pelo primeiro IF e nem pelo segundo.

Detalhe da questão: No enunciado da questão pede-se “o número mínimo de casos de teste”.

Resposta

Alternativa: b)  1 teste de cobertura de sentença (comando), 2 para a cobertura de desvio

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q5S2

Nossa! Como está questão meu deu dor de cabeça. Primeiro por culpa minha mesmo, de ter errado na tradução: me esqueci da palavra “válidas” no enunciado, o que acabou tornando a questão bem confusa.

E depois, quando parecia tudo está resolvido, o leitor Antonio Moraes fez uma excelente pergunta no post sobre a Q1S1. Segue ela abaixo:

[…] 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?

Daí resolvi me interessar (como já diria um amigo meu) e entender melhor a questão. E encontrei uma grave inconsistência na questão:

A tradução foi feita com base em um simulado com 5 alternativas (2.PracticeExam1 (English) Q40), que dava como correta a alternativa C, porém a C está assim nesse simulado: c)    10000, 50000, 9999

O que está incorreto pois 9999  é um valor inválido e desta maneira a alternativa estaria incorreta. Então pesquisei pela questão original na internet e encontrei a mesma questão (fonte), com a alternativa C com os valores: 10.000, 50.000, 99.999

A primeira coisa que fiz foi arrumar esse erro na tradução. Porém, novamente cometi mais um erro, não prestei atenção que o simulado que eu me baseei tinha 5 alternativas e uma delas com uma alternativa mais correta do que a alternativa C. A alternativa D.

E após de até ter mudado o simulado. Em uma discusão no grupo DFTestes, onde o pessoal disse que a alternativa correta é a C e não a D. Parei novamente, li e reli a questão original e a traduzida, e percebi que realmente a C é a alternativa correta. E um dos motivos para a minha confusão foi que a tradução, ainda não estava tão parecida quanto a questão original, então dei uma melhora na tradução para deixar mais parecida com a original e também entendível em português.

Bem, segue abaixo a questão e a resolução desta questão que gerou tanta discussão e confusão.

Questão

O  número  em  um  sistema  de  controle  de  estoque  pode  variar  entre  10.000  e 99.999 inclusive. Quais das seguintes entradas poderiam ser o resultado da modelagem de teste usando apenas classes de equivalências válidas e limites válidos?

a) 1.000, 5.000, 99.999

b) 9.999, 50.000, 100.000

c) 10.000, 50.000, 99.999

d) 10.000, 99.999

e) 9.999, 10.000, 50.000, 99.999, 100.000

Analisando o enunciado da questão

Pede-se apenas os valores válidos e usando as técnicas de classe de equivalência e de valores limites.

Resoluçã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, 50.000 e 99.999

Daí você pode me perguntar: “O 50.000 não é necessário, pois o 10.000 e o 99.999 já fazem parte da classe de equivalência válida.”

Bem esse foi o pensamento que tive, quando acreditei que a alternativa D estava correta.

Mas, prestando mais atenção percebi que a questão pede para usar a técnica de classe de equivalência e de valores limites, e apenas valores que caracterizem o uso de cada uma delas, lembrando que esses valores precisam ser de classes e limites válidos.

Portanto a alternativa C é a correta. Pois:

10.000 = limite mínimo válido
50.000 = valor da classe de equivalência válida
99.999 = limite máximo válido

Desta maneira estamos claramente usando as duas técnicas.

Resposta

Alternativa: c)  10.000, 50.000, 99.999

Eu já atualizei o simulado 2, com está correção. Quem quiser baixá-lo ele está sendo disponibilizado no link abaixo:

http://www.mediafire.com/file/ohy4jdwxijw/Simulados_CTFL-BSTQB.zip

Peço desculpas, por mais esse erro.

Até mais!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q13S1

Acredito que a grande dificuldade desta questão é o desconhecimento da complexidade ciclomática de McCabe, eu mesmo não fazia a menor idéia do que era, antes de ver essa questão. E o pior de tudo é que o Syllabus não fala dela, e o máximo que podemos encontrar no material sedido pela BSTQB é a sua definição no ISTQB – Glossário de Termos de Teste.

Mas o intuito do post não é explicar a complexidade ciclomática de McCabe, e sim apresentar a resolução da questão 13 do simulado 1. Quem quiser entender melhor a complexidade ciclomática, recomendo os seguintes links abaixo:

http://logbr.reflectivesurface.com/2008/11/12/conceitos-de-programacao-complexidade-ciclomatica/

http://www.antoniopassos.pro.br/blog/?p=347

http://en.wikipedia.org/wiki/Cyclomatic_complexity

Agora vamos para a questão…

Dado o seguinte programa:

1 IF  X < Y

2 THEN  Statement 1;

3 ELSE IF  Y >=  Z

4 THEN Statement  2;

5 END

A complexidade ciclomática de McCabe é :

a) 2

b) 3

c) 4

d) 5

Análise do código

Temos dois IFs, sendo que o segundo é dependente do primeiro, ou seja, a sua execução depende do resultado do primeiro IF, pois o segundo IF está associado ao ELSE do primeiro IF.

Acredito que essa história de primeiro e segundo IF, pode ter te deixado confuso querido(a) leitor(a). Então, vamos facilitar as coisas, abaixo segue o fluxo do código da questão:

Fluxo

Resolução

Temos duas maneiras de resolver essa questão: fazendo o fluxo com os caminhos lógicos possíveis (parecido com a figura acima), ou usando a fórmula da complexidade ciclomática.

Vamos primeiro para a maneira mais difícil, usando a fórmula:

M = E − N + 2P
M= complexidade ciclomática
E= número de arestas (linhas/caminhos)
N= número de nodos
P= número de componentes conectados

M= 6 – 5 + 2X1

M= 1 + 2

M =3

Portanto já sabemos que a complexidade ciclomática é igual a 3.

Agora vamos resolver essa mesma questão, de uma maneira mais simples e fácil:

Fluxo

Sabendo que a complexidade ciclomática medi o número de caminhos de uma determinada função. Fica claro na figura acima, que o código apresentado tem 3 caminhos lógicos possíveis:

Verde: X é menor que Y > executar o Statement 1 > END

Azul: X é maior que Y > Y é menos que Z > END

Vermelho: X é maior que Y > Y é maior igual que Z > THEN Statement  2 > END

E o motivo por eu achar a segunda maneira mais fácil é simples: eu dificilmente foi lembrar da fórmula da complexidade ciclomática na hora da prova. E como tenho certeza que a pessoa que irá aplicar o exame não irá colocar a fórmula na lousa (como nos tempos de escola), prefiro fazer o fluxo do código, afinal não vou esquecer de como faz círculos e retas, durante a prova.

Logicamente essa é minha opinião, se você acha melhor resolver usando a fórmula, tudo bem.

Resposta

Alternativa: b)  3

Por hoje é só pessoal. No próximo post irei resolver a questão 5 do simulado 2, a que o Clauriston comentou no post anterior. Até lá!

Atualização 13 de Novembro de 2009

Estava hoje dando uma olhada no artigo publicado pelo próprio McCabe, e vi que ele mesmo diz que é possível calcular a complexidade ciclomática de uma forma bem mais simples (e a Cristina até citou nos comentários).

Fórmula mágica:

Quantidade de decisões + 1 = complexidade ciclomática 😀

OBS.: Considerando a análise de um programa que tenha apenas um ponto de entrada e um de saída.

Trecho retirado do artigo: “This proves that the cyclomatic complexity  of a structured program equals the number of predicates plus one […]

Fica aí a dica!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Resolução de questões CTFL: Q1S1

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.

Assine o feed