A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Adequação do Teste. 2 Teste é incompleto Origem da incompletude –Seqüências insuficientes –Classificadores parciais É necessário uma medida que indique.

Apresentações semelhantes


Apresentação em tema: "Adequação do Teste. 2 Teste é incompleto Origem da incompletude –Seqüências insuficientes –Classificadores parciais É necessário uma medida que indique."— Transcrição da apresentação:

1 Adequação do Teste

2 2 Teste é incompleto Origem da incompletude –Seqüências insuficientes –Classificadores parciais É necessário uma medida que indique quão completo é o teste. Indica: –Quando o testador deve parar de testar –Quando o testar precisa escrever mais testes

3 3 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 4 Exemplo 01: public static String collapseSpaces(String argStr) { 02: char last = argStr.charAt(0); 03: StringBuffer argBuf = new StringBuffer(); 04: for (int i = 0; i < argStr.length(); i++) { 05: char ch = argStr.charAt(i); 06: if (ch != ’ ’|| last != ’ ’) { 07: argBuf.append(ch); 08: last = ch; 09: } 10: } 11: return argBuf.toString(); 12: } Velocity version 1.3, Apache Jakarta project.

5 5 Exemplo 01: public static String collapseSpaces(String argStr) { 02: char last = argStr.charAt(0); 03: StringBuffer argBuf = new StringBuffer(); 04: for (int i = 0; i < argStr.length(); i++) { 05: char ch = argStr.charAt(i); 06: if (ch != ’ ’|| last != ’ ’) { 07: argBuf.append(ch); 08: last = ch; 09: } 10: } 11: return argBuf.toString(); 12: } Velocity version 1.3, Apache Jakarta project. quebra quando argStr é null ou “”.

6 6 Exemplo (nova versão) 01: public static String collapseSpaces(String argStr) { 02: if (argStr == null) return null; 03: char last = argStr == “” ? “” : argStr.charAt(0); 04: StringBuffer argBuf = new StringBuffer(); 05: for (int i = 0; i < argStr.length(); i++) { 06: char ch = argStr.charAt(i); 07: if (ch != ’ ’|| last != ’ ’) { 08: argBuf.append(ch); 09: last = ch; 10: } 11: } 12: return argBuf.toString(); 13: }

7 7 Exemplo RA1: Não executar statements 8 e 9 RA2: Não executar statement 6 RA3: Executar statement 6

8 8 Exemplo (stmts de interesse) 01: public static String collapseSpaces(String argStr) { 02: if (argStr == null) return null; 03: char last = argStr == “” ? “” : argStr.charAt(0); 04: StringBuffer argBuf = new StringBuffer(); 05: for (int i = 0; i < argStr.length(); i++) { 06: char ch = argStr.charAt(i); 07: if (ch != ’ ’|| last != ’ ’) { 08: argBuf.append(ch); 09: last = ch; 10: } 11: } 12: return argBuf.toString(); 13: }

9 9 Exemplo Suíte adequada TC1: collapseSpaces(“ ”); TC2: collapseSpaces(“”); TC3: collapseSpaces(“adequacao do teste”);

10 10 Exemplo Suíte adequada TC1: collapseSpaces(“ ”); TC2: collapseSpaces(“”); TC3: collapseSpaces(“adequacao do teste”); TC1 sat. RA1 e RA3 TC2 sat. RA1 e RA2 TC3 sat. RA3

11 11 Exemplo Outra suíte adequada TC1: collapseSpaces(“ ”); TC2: collapseSpaces(“”); TC3: collapseSpaces(“adequacao do teste”); TC1 sat. RA1 e RA3 TC2 sat. RA1 e RA2 TC3 sat. RA3 ×

12 12 Exemplo Outra suíte adequada TC1: collapseSpaces(“ ”); TC2: collapseSpaces(“”); TC3: collapseSpaces(“adequacao do teste”); TC1 sat. RA1 TC2 sat. RA1 e RA2 TC3 sat. RA3 Minimização de suíte de teste preocupa-se em reduzir o número de testes necessários para atender os requisitos de adequação.

13 Redução/Minimização Pros –Facilita manutenção dos testes –Reduz tempo de execução Cons –Pode eliminar testes importantes

14 14 Nota importante Requisito de adequação pode ser formulado em função de algum conceito relevante: –requisitos –condições de entradas –etc. Não apenas código!

15 15 Força de critério (subsumption)‏

16 16 Força de critérios de adequação Em geral, não é possível medir se uma suite é melhor que a outra para revelar erros TC_a TC_b incomparáveis

17 17 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. Força de critérios de adequação

18 18 Quiz Dados –RA1: Não executar statements 7 e 8 –RA2: Não executar statement 5 –RA3: Executar statement 5 –C1 = {RA2, RA3} e C2 = {RA1, RA3} C1 é mais forte que C2?

19 19 Quiz Dados –RA1: Não executar statements 7 e 8 –RA2: Não executar statement 5 –RA3: Executar statement 5 –C1 = {RA2, RA3} e C2 = {RA1, RA3} C1 é mais forte que C2? –RA2 => RA1 –RA2 é mais forte (i.e., restritivo) que RA1 –C1 é mais forte que C2

20 20 Resumo até aqui Requisito e critério de adequação Força (subsumption) do critério Seleção/minimização/priorização


Carregar ppt "Adequação do Teste. 2 Teste é incompleto Origem da incompletude –Seqüências insuficientes –Classificadores parciais É necessário uma medida que indique."

Apresentações semelhantes


Anúncios Google