Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.