Teste de Software 06 Adequao do Teste Marcelo

  • Slides: 16
Download presentation
Teste de Software 06: Adequação do Teste Marcelo d’Amorim damorim@cin. ufpe. br

Teste de Software 06: Adequação do Teste Marcelo d’Amorim damorim@cin. ufpe. br

Resumo desta aula • Apresentar terminologia sobre adequação e seleção de teste – Requisito

Resumo desta aula • Apresentar terminologia sobre adequação e seleção de teste – Requisito e critério de adequação – Seleção e minimização de testes – Força (subsumption) do critério 2

Teste é incompleto • É necessário uma medida que indique quão completo é o

Teste é incompleto • É necessário uma medida que indique quão completo é o teste – Indica quando o testador deve parar de testar 3

Definição: Adequação • Requisito de adequação (RA) – Condição sobre uma suíte de teste

Definição: Adequação • Requisito de adequação (RA) – Condição sobre uma suíte de teste • Critério de adequação – Uma suíte de teste é adequada quando (i) todos os testes passam e (ii) todo RA é satisfeito por pelo menos um caso de teste 4

Exemplo 01: public static String collapse. Spaces(String arg. Str) { 02: char last =

Exemplo 01: public static String collapse. Spaces(String arg. Str) { 02: char last = arg. Str. char. At(0); 03: String. Buffer arg. Buf = new String. Buffer(); 04: for (int i = 0; i < arg. Str. length(); i++) { 05: char ch = arg. Str. char. At(i); 06: if (ch != ’ ’|| last != ’ ’) { 07: arg. Buf. append(ch); 08: last = ch; 09: } 10: } 11: return arg. Buf. to. String(); 12: } 5 Velocity version 1. 3, Apache Jakarta project.

Exemplo • RA 1: Não executar statements 7 e 8 • RA 2: Não

Exemplo • RA 1: Não executar statements 7 e 8 • RA 2: Não executar statement 5 • RA 3: Executar statement 5 6

Exemplo • Suíte adequada TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”); TC

Exemplo • Suíte adequada TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”); TC 3: collapse. Spaces(“adequacao do teste”); 7

Exemplo • Suíte adequada TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”); TC

Exemplo • Suíte adequada TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”); TC 3: collapse. Spaces(“adequacao do teste”); • TC 1 sat. RA 1 • TC 2 sat. RA 1 e RA 2 • TC 3 sat. RA 3 8

Exemplo • Outra suíte adequada × TC 1: collapse. Spaces(“ ”); TC 2: collapse.

Exemplo • Outra suíte adequada × TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”); TC 3: collapse. Spaces(“adequacao do teste”); • TC 1 sat. RA 1 • TC 2 sat. RA 1 e RA 2 • TC 3 sat. RA 3 9

Exemplo • Outra suíte adequada TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”);

Exemplo • Outra suíte adequada TC 1: collapse. Spaces(“ ”); TC 2: collapse. Spaces(“”); TC 3: collapse. Spaces(“adequacao do teste”); (Seleção) de suíte de teste • Minimização TC 1 sat. RA 1 emereduzir • preocupa-se TC 2 sat. RA 1 RA 2 o número de testes necessários para atender os • TC 3 sat. RA 3 requisitos de adequação. 10

Notas importante • O conceito de critério de adequação não é aplicado apenas para

Notas importante • O conceito de critério de adequação não é aplicado apenas para código! • Nem sempre é viável obrigar uma teste suíte atender a todos os requisitos (RA)! 11

Força (subsumption) em critérios de adequação • Uma definição: – revela mais erros •

Força (subsumption) em critérios de adequação • Uma definição: – revela mais erros • Em geral, não é possível medir se uma suite é mais forte que outra (subsumes) TC_a incomparáveis TC_b 12

Força de critérios de adequação • Definiçao: Ca mais forte que Cb se e

Força de critérios de adequação • Definiçao: Ca mais forte que Cb se e somente se para qualquer programa P, qualquer suíte que satisfaz Ca também satisfaz Cb. 13

Quiz • Dados – RA 1: Não executar statements 7 e 8 – RA

Quiz • Dados – RA 1: Não executar statements 7 e 8 – RA 2: Não executar statement 5 – RA 3: Executar statement 5 – C 1 = {RA 2, RA 3} e C 2 = {RA 1, RA 3} • C 1 é mais forte que C 2? 14

Quiz • Dados – RA 1: Não executar statements 7 e 8 – RA

Quiz • Dados – RA 1: Não executar statements 7 e 8 – RA 2: Não executar statement 5 – RA 3: Executar statement 5 – C 1 = {RA 2, RA 3} e C 2 = {RA 1, RA 3} • C 1 é mais forte que C 2? – RA 2 => RA 1 – RA 2 é mais forte (i. e. , restritivo) que RA 1 – C 1 é mais forte que C 2 15

Resumo desta aula • Apresentar terminologia sobre adequação e seleção de teste – Requisito

Resumo desta aula • Apresentar terminologia sobre adequação e seleção de teste – Requisito e critério de adequação – Seleção/minimização – Força (subsumption) do critério 16