26
Fabrício Ferrari de Campos

Técnicas de modelagem de teste (parte 2)

Embed Size (px)

DESCRIPTION

 

Citation preview

Fabrício Ferrari de Campos

Baseadas em Estrutura

Teste e Cobertura de ComandosTeste e Cobertura de DecisãoOutras técnicas baseadas na estrutura

O que e cobertura de teste

Cobertura =

número de itens exercitados

total de itens

x 100%

Cobertura de teste é uma medida, referente ao número de itens (código) testados, pelo total de itens, multiplicado por 100%.

Teste e Cobertura de Comandos

Definir casos de teste que executem todos os comandos pelo menos uma vez (passa por todos os nodos do grafo)Métrica: número de nodos cobertosFácil de satisfazerNão garante qualidade do código

Teste e Cobertura de Comandos

Cobertura de comando

número de comandos exercitados

total de comandos

x 100%

Cobertura de comando é medida, de acordo com o número de comandos exercitados divididos pelo total de comandos, multiplicado por 100%.

=

Teste e Cobertura de Comandos

1.a = Integer.parseInt(args[0]);

2.b = Integer.parseInt(args[1]);

3.while(a < 0){

4. if (b < 0){

5. b = b + 2;

6. }

7. a = a + 1;

8.}

9.c = a + b;

a b C(resultado)

-1 -1 1

2

3

4

5

7

9

1

Um teste é o suficiente

Teste e Cobertura de Comandos

Questão simulado (CTFL-BSTQB)Se você estiver voando com um bilhete da classe econômica, há uma possibilidade de você conseguir mudar para a classe executiva. Principalmente se você tiver um cartão fidelidade da companhia aérea. Se você não tiver o cartão fidelidade (CF), há a possibilidade de você ser "despejado" do vôo se ele estiver lotado e você chegar atrasado.

Teste e Cobertura de Comandos

econômica lotada

cartão fidelidade

executivalotada

executivalotada

mudar

econômica

embarcar

despejado do vôo

n

s

s s

s n n

n econômica

mudar

Teste e Cobertura de Comandos

Três testes foram executados:Teste 1: O passageiro tem o CF e mudou para a classe executivaTeste 2: O passageiro não tem o CF e permaneceu na classe econômicaTeste 3: O passageiro foi "despejado" do vôoQual é a cobertura de comando obtida com esses três testes?

a) 60% b) 70% c) 80% d) 90%

Questão simulado (CTFL-BSTQB)

Teste e Cobertura de Comandos

Resposta corretaAlternativa: c) 80%

Os três testes apresentados cobrem 8 comandos de 10, ou seja, 80% dos comandos. Os testes não cobrem o comando 3 e o 9.

Teste e Cobertura de Decisao

~

Uma decisão é um IF, um loop (ex. do-whileou repeat-until), ou um CASE, no qual existem duas ou mais possibilidades de saídas ou resultados a partir de um comando

número de decisões exercitados

total de decisões

x 100% Cobertura de decisão =

Teste e Cobertura de Decisao

~

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õesA cobertura de decisão é mais eficiente que a cobertura de comandos: 100% da cobertura de decisão garante 100% da cobertura de comandos, mas não vice-versa

Teste e Cobertura de Decisao

~

Os testes devem cobrir cada saída possível de um nodo que tenha uma condiçãoMétrica: número de arestas cobertasTeste de decisão derivam-se dos casos de testes para executar decisões específicas, normalmente para se aumentar a cobertura

Teste e Cobertura de Decisao

1.a = Integer.parseInt(args[0]);

2.b = Integer.parseInt(args[1]);

3.while(a < 0){

4. if (b < 0){

5. b = b + 2;

6. }

7. a = a + 1;

8.}

9.c = a + b;

a b C(resultado)

-1 -1 1

0 0 0

-1 0 0

2

3

4

5

7

9

1

três testes são necessários

~

Teste e Cobertura de Decisao

~

Tendo como base o pseudocódigo abaixo, quantos testes são necessários para atingir 100% da cobertura de desvio/decisão?

1. If x = 3 then2. Display_messageX; 3. If y = 2 then4. Display_messageY; 5. else6. Display_messageZ; 7. else8. Display_messageZ;

Questão simulado (CTFL-BSTQB)

a) 1 b) 2 c) 3 d) 4

Teste e Cobertura de Decisao

~

Resposta corretaAlternativa: c) 3

Criando três testes conseguimos cobrir 100% das decisões do pseudocódigo, por exemplo:

x y

3 2

0 0

3 0

Outras tecnicas baseadas na estrutura

Cobertura de desvioLCSAJ (Linear Code Sequence and Jump -Seqüência de Código Linear e Salto)Cobertura de Caminho

Cobertura de desvio

Está estreitamente relacionada com a cobertura de decisão, tanto que 100% de cobertura de desvio, equivale a 100% de cobertura de decisãoCobertura de decisão medi a cobertura dos desvios condicionais, já a cobertura de desvio medi a cobertura de desvios condicionais e não condicionais

LCSAJ

Inclui a cobertura de código linear e salto, cobertura de decisão, cobertura de condições e cobertura de múltiplas condiçõesEssa técnica requer a cobertura de todas as condições que podem afetar ou determinar o resultado de uma condição

Cobertura de Caminho

Especifica dos caminhos possíveis de um software, quantos são cobertos na execução de um testePorcentagem de caminhos exercitada por uma suite de teste. 100% de cobertura de caminho implicam em 100% de cobertura LCSAJ

Baseadas na experiencia

Suposição de erroTeste exploratório

^

Suposicao de erro~

Deve ser usada sempre como um complemento à outras técnicas mais formaisNão há regras para a suposição de erroQuando usado para aumentar a técnica sistemática, testes intuitivos podem ser úteis para identificar testes específicos que não são facilmente identificados pelas técnicas formaisDepende muito da habilidade e experiência do testador

Teste exploratorioOcorre simultaneamente à modelagem, execução e registro de teste, e baseia-se nos objetivos de teste, onde é realizado em um tempo predefinidoÉ uma abordagem muito usual, em locais onde a especificação é rara ou inadequada e existe grande pressão por conta de prazo, ou para aprimorar/complementar um teste mais formal

Teste exploratorioPode servir como uma checagem do processo de teste, assegurando que os defeitos mais importantes sejam encontradosO aspecto principal é a aprendizagem: sobre o software, seu uso, seu pontos fortes e fracosTambém pode servir de complemento para outras técnicas formais

BSTQB. Base de Conhecimento para Certificação em Teste -Foundation Level Syllabus. 2007br. BSTQB. Glossário Padrão de Termos Utilizados em Teste de Software. Versão 1.3br D. Grahan; V. Veenendaal; I. Evans; R. Black. Foundations of Software Testing: ISTQB Certification. Cengage Learning Business Press, 2006.www.inf.pucrs.br/~copstein/CursoTeste/Dia3/Dia3_TesteFuncionalTesteEstrutural.ppt (Professor Dr. Bernardo Copstein)