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

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

Teste de Software 02: Oracles Marcelo d’Amorim

Apresentações semelhantes


Apresentação em tema: "Teste de Software 02: Oracles Marcelo d’Amorim"— Transcrição da apresentação:

1 Teste de Software 02: Oracles Marcelo d’Amorim damorim@cin.ufpe.br

2 Resumo Limitação de oracles Tipos de oracles Exemplos

3 Oracle Função que classifica o comportamento de uma execução (teste) como –correto (teste passa) ou não (teste falha)‏

4 Oracles parciais Condição necessária mas insuficiente para detectar um erro Fonte de incompletude

5 Oracles parciais: Exemplo Ordenação de um array de inteiros int[] input = new int[]{432, 909, 754, 7, 87}; int[] output = sort(input); Assert.assertTrue(isAscending(output)); assuma que sort() não faz mutação em input

6 Oracles parciais: Exemplo Ordenação de um array de inteiros int[] input = new int[]{432, 909, 754, 7, 87}; int[] output = sort(input); Assert.assertTrue(isAscending(output)); Assert.assertTrue(isPermutation(input, output));

7 Limitação Em geral, é indecidível automatizar a construção de oracles

8 Tipos de oracles Programas sequenciais –Usam asserção de estado –Usam diferenciação Programas concorrentes –...

9 Baseados em asserção Onde a asserção é declarada? –Programa teste: SUT, subject Declarado pelo programador Declarado pelo implementador da linguagem –Teste Declarado pelo testador

10 Baseados em asserção Onde a asserção é declarada? –Programa teste: SUT, subject Declarado pelo programador Declarado pelo implementador da linguagem –Teste Declarado pelo testador

11 Baseados em asserção Onde a asserção é declarada? –Programa teste: SUT, subject Declarado pelo programador Declarado pelo implementador da linguagem –Teste Declarado pelo testador Precioso para o testador! Entretanto, o programador raramente escreve código com asserções. Note também que as asserções da linguagem testam apenas crash.

12 Baseados em asserção Onde a asserção é declarada? –Programa teste: SUT, subject Declarado pelo programador Declarado pelo implementador da linguagem –Teste Declarado pelo testador

13 Baseados em diferenciação new int[]{432, 909, 754, 7, 87}; sort1(_); array_1

14 Baseados em diferenciação new int[]{432, 909, 754, 7, 87}; sort1(_); array_1 sort2(_); array_2

15 Baseados em diferenciação new int[]{432, 909, 754, 7, 87}; sort1(_); array_1 sort2(_); array_2 Assert.assertEquals(array_1, array_2);

16 Formas de diferenciação Baseado em estado (slide anterior)‏ Baseado em fluxo de controle Capture and Replay de tela de GUI

17 Resumo Limitação de oracles Tipos de oracles Exemplos


Carregar ppt "Teste de Software 02: Oracles Marcelo d’Amorim"

Apresentações semelhantes


Anúncios Google