,

quinta-feira, 11 de abril de 2013

Questão de Certificação - Dia 2





Em continuidade a série de questões de Certificações da CTFL.

Hoje iremos comentar uma questão do Simulado 2 (disponível na área de download do nosso Blog).












S2Q12  -  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:
Read P 

Read Q 
IF P+Q > 100 THEN 
     Print “Large” 
ENDIF 
IF P > 50 THEN 
      Print “P Large” 
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


Comentários:

De acordo com o Syllabus:

Teste e Cobertura de Sentença (Comando)
No teste de componente, cobertura de sentença é avaliada pela porcentagem de sentenças executáveis que foram exercitadas por um conjunto de casos de testes. No teste de sentenças derivam-se casos de teste para executar sentenças específicas, normalmente para se aumentar a cobertura.


Teste e Cobertura de Decisão (Desvio)
Cobertura de decisão, também chamada de teste de ramificação, é avaliada pela porcentagem dos resultados da decisão (por exemplo, as opções de “Verdadeiro” ou “Falso” de uma expressão condicional - IF) que foram exercitados em um conjunto de casos de teste. No teste de decisão derivam-se os casos de testes para executar decisões específicas, normalmente para se aumentar a cobertura.
Teste de decisão é uma forma de teste de controle de fluxo, já que ele gera um fluxo específico através dos pontos de decisões. A cobertura de decisão é mais eficiente que a cobertura de sentenças: 100% da cobertura de decisão garante 100% da cobertura de sentença, mas não vice-versa.



Analisando o código, vemos que o mesmo possue dois IF's, sendo que apenas um Teste de Cobertura de Sentença é suficiente para que possamos passar pelos 2 IF's e assim executar todo o cógido.

Teste: P = 60 e Q = 100

Já pensando nos Testes de Cobertura de Decisões, podemos aproveitar o teste acima criado, porém necessitamos de mais um teste para que possamos cobrir o resultado negativo do código. Logo teremos:

Teste 1)  P = 60 e Q = 100

Teste 2) P = 40 e Q = 40


Então temos, 1 teste de cobertura de sentença(comando) e 2 testes para a cobertura de desição (desvio)

Resposta: "B"

4 comentários:

  1. Tenho uma dúvida: na cobertura de desvio, já que serão testados os resultados das decisões, não deveriam existir casos de testes para fluxos que atendessem a apenas um dos IF's ?
    Exemplos:
    3. P = 60 e Q = 30

    4. P = 40 e Q =120

    ResponderExcluir
  2. Boa tarde Bruno,

    Boa pergunta.

    Como podemos ver na definição, a cobertura de decisão(desvio), os testes de desvio deverá cobrir cada fluxo possível de um desvio.

    Então quando pensamos em criar casos de teste de desvio estamos pensando em cobrir as sentenção e não especificamente fazer uma cobertura total de teste.

    No Teste1, onde temos P = 60 e Q = 100, esse teste é suficiente para passar pelos dois IF's, ambas nas condições "verdadeiras". Já o Teste2, onde temos P = 40 e Q = 40, temos valores suficiente para testar de uma só vez as condições "falsas" dos dois IF's.

    Logo esses dois testes são suficientes para temos 100% dos desvios cobertos.

    Esse código abre margens para temos diversos testes com outros cenários (como os que você mencionou acima), mas no que diz respeito aos "desvios cobertos" esses dois testes são suficientes para a cobrir as duas condoções de fluxos (Verdadeiras e Falsas) de ambos os IF's.

    Espero ter ajudado, caso contrário é so comentar.

    Abraços

    ResponderExcluir
  3. Quer dizer que a cobertura de desvio sempre tera a cobertura de comando e um teste do resultado faslo?

    ResponderExcluir