![Page 1: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/1.jpg)
Aula 06 Introdução a Teste Automatizado
Alessandro Garcia LES/DI/PUC-Rio
Março 2013
![Page 2: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/2.jpg)
Ago 2008 2 / 27 Arndt von Staa © LES/DI/PUC-Rio
Especificação
• Objetivo dessa aula – Apresentar os uma técnica para a criação testes automatizados
e mostrar como desenvolver dirigido por testes.
• Slides adaptados de: Staa, A.v. Notas de Aula em Programacao Modular; 2008.
• Referência básica: – Monografia: Arcabouço para a Automação de Testes de
Programas Redigidos em C; contido no arquivo TesteAutomatizado.zip acessível para download através do site da disciplina, aba: Software
• Referência adicional: – Beck, K.; Test-Driven Development by Example; Reading,
Massachusetts: Addison-Wesley; 2003
![Page 3: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/3.jpg)
Ago 2008 3 / 27 Arndt von Staa © LES/DI/PUC-Rio
Sumário
• Automação simplória • Arcabouço de apoio ao teste automatizado
• Linguagem de diretivas de teste
• Interpretador de diretivas • Exemplo de uso do arcabouço
• Arquitetura do arcabouço • Vantagens e desvantagens
![Page 4: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/4.jpg)
4 / 30 LES/DI/PUC-Rio
Custo e qualidade do Teste
• É uma atividade cara, porém essencial – 30 – 50% do custo de desenvolvimento
• Causas – Falta de planejamento – Tempo escasso – Falta de metodologia – Inserção de novos defeitos – Especificação incompleta
• Seleção de dados – Dados óbvios, randômicos, viciados – Casos de teste rigorosamente selecionados
![Page 5: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/5.jpg)
5 / 30 LES/DI/PUC-Rio
Exercício sobre Introdução à Teste
• Se organizem em grupos (2 a 3 pessoas): de preferência o grupo que irá realizar os trabalhos na disciplina
• Escrevam em uma folha de papel o seguinte cabeçalho:
EXERCÍCIO 1: INTRODUÇÃO À TESTE Data: (data de hoje) Integrantes: (nome dos integrantes do grupo) Atividade 1: Casos de teste para uma função
![Page 6: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/6.jpg)
6 / 30 LES/DI/PUC-Rio
Exemplo: criando casos de teste
• Um bom conjunto de casos de teste é aquele que possui alta probabilidade em revelar defeitos na função ou no módulo que a contém
int verificaTriangulo (int segmentoAB, int segmentoAC, int segmentoBC);
EXERCÍCIO 1: INTRODUÇÃO À TESTE Data: (data de hoje) Integrantes: (nome dos integrantes do grupo) Atividade 1: Casos de teste para uma função • C1: (a, b, c) -> (d) • C2: (x, y, z) -> (k) • ...
![Page 7: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/7.jpg)
7 / 30 LES/DI/PUC-Rio
Criando casos de teste com a especificação
EXERCÍCIO 1: INTRODUÇÃO À TESTE Data: (data de hoje)
Integrantes: (nome dos integrantes do grupo)
• Atividade 1: Casos de teste para uma função • C1: (a, b, c) -> (d)
• C2: (x, y, z) -> (k) • ...
• Atividade 2: Casos de teste com especificação
• C1: (a, b, c) -> (d) • C2: (x, y, z) -> (k)
![Page 8: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/8.jpg)
8 / 30 LES/DI/PUC-Rio
Criando casos de teste com a especificação
A função recebe como entrada três valores inteiros. Cada valor corresponde ao segmento de um lado do triângulo. Assim, o primeiro valor corresponde ao segmento do lado AB, o segundo valor ao segmento do lado AC e o terceiro valor correspondem ao segmento do lado BC. Esses três segmentos correspondem aos três lados que formam o triângulo ABC. A função recebe os três valores como entrada e verifica que tipo de triângulo é formado com base nos três segmentos. Por fim, a função retorna a quantidade de lados que possuem o mesmo tamanho. Assim, se o triângulo for equilátero, ou seja, os três lados possuem o mesmo tamanho, então a função retorna 3. Se o triângulo for isósceles (dois lados com o mesmo tamanho), então a função retorna 2. Se o triângulo for escaleno (os três lados possuem tamanhos diferentes), então a função retorna 0. Caso os três valores não correspondam a um triângulo, a função retorna o código -1.
int verificaTriangulo (int segmentoAB, int segmentoAC, int segmentoBC);
![Page 9: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/9.jpg)
9 / 30 LES/DI/PUC-Rio
Casos de teste
• Um dos problemas comuns ao testar software é determinar quando os módulos foram suficientemente testados
• Mesmo usando a especificação, é difícil produzir bons casos de teste que sejam capazes de revelar a existência de defeitos
• Por exemplo, para o problema do triângulo, é necessário apenas quatro casos de testes para se testar a função em termos dos três tipos de triângulo – 1 caso válido para triângulo equilátero (retorna 3) – 1 casos válidos para triângulo isósceles (retorna 2) – 1 caso válido para triângulo escaleno (retorna 0) – 1 caso válido para valores que não correspondem a um triângulo
(retorno -1)
![Page 10: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/10.jpg)
10 / 30 LES/DI/PUC-Rio
Criando casos de teste com a especificação
int verificaTriangulo(int segAB, int segAC, int segBC){
if ((segAB == segAC) && (segAC == segBC)){ return 3; //equilatero }
if (((segAB == segAC) && (segAC != segBC)) || ((segAC == segBC) && (segAB != segAC)) || ((segAB == segBC) && (segBC != segAB))){ return 2; //isosceles }
if ( (segAB != segAC) && (segAC != segBC)) { return 0; //escaleno } return -1;
} Qual é a saída para o caso de teste (2, 1, 1)?
![Page 11: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/11.jpg)
11 / 30 LES/DI/PUC-Rio
Criando casos de teste com a especificação
• Qual é a saída para o caso de teste (2, 1, 1)? – 2 -> triângulo isósceles • Esses valores não correspondem a um triângulo.
• Para se ter um triângulo, é necessário que ele tenha em cada um dos seus lados, uma medida menor que a soma das medidas dos outros dois lados.
AB < AC + BC AC < AB + BC BC < AB + AC
– Observação: Se AB for o maior lado, para existir um triângulo, basta que AB < AC + BC.
![Page 12: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/12.jpg)
12 / 30 LES/DI/PUC-Rio
Função verificaTriangulo
int verificaTriangulo(int segAB, int segAC, int segBC){ if ( (segAB < segAC+ segBC) && (segAC< segAB + segBC) && (segBC< segAB + segAC)){
if ((segAB == segAC) && (segAC == segBC)){ return 3; //equilatero }
if (((segAB == segAC) && (segAC != segBC)) || ((segAC == segBC) && (segAB != segAC)) || ((segAB == segBC) && (segBC != segAC))){ return 2; //isosceles }
if ( (segAB != segAC) && (segAC != segBC)) { return 0; //escaleno }
} return -1; } E agora, o código está livre de defeitos???
![Page 13: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/13.jpg)
13 / 30 LES/DI/PUC-Rio
Completude dos casos de teste
• Um bom conjunto de casos de teste seria aquele que cobrisse os seguintes casos: – 1 caso válido para triângulo equilátero (retorna 3) – 1 caso válido para triângulo escaleno (retorna 0) – 3 casos válidos para triângulo isósceles (retorna 2) – 3 casos para testar Lk > Li + Lj (retorna -1) – 3 casos para testar Lk = Li + Lj (retorna -1) – 3 casos para testar um dos lados igual a 0 (retorna -1) – 3 casos para testar um dos lados menor do que 0 (retorna -1)
• Testes somente são capazes de mostrar a presença de faltas, mas não a ausência delas.
![Page 14: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/14.jpg)
14 / 30 LES/DI/PUC-Rio
O que é um módulo controlador do teste?
deve ser facilmente removível; instrumentação: discutido em aulas futuras
![Page 15: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/15.jpg)
15 / 30 LES/DI/PUC-Rio
Como testar um módulo?
• Uso de um módulo controlador do teste desenvolvido que auxilia a execução de casos de teste para testar um módulo sob teste
• Três formas: – Teste manual: controlador exibe um menu e
comparação é feita pelo próprio testador à olho nu – Teste de comparação automatizado:
• Casos de teste são implementados em C • Casos de teste são redigidos em scripts em uma linguagem
com uma sintaxe própria
![Page 16: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/16.jpg)
Exemplo de Módulo em C
16 /26 Alessandro Garcia © LES - DI/PUC-Rio
Discutindo Estrutura do arquivo ARVORE.h Estrutura do arquivo ARVORE.c
![Page 17: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/17.jpg)
Mar 2009 17 /32 Alessandro Garcia © LES/DI/PUC-Rio
Condições de retorno /*********************************************************************** *$TC Tipo de dados: ARV Condicoes de retorno ************************************************************************/
typedef enum { ARV_CondRetOK = 0 , /* Executou correto */ ARV_CondRetNaoCriouRaiz = 1 , /* Não criou nó raiz */ ARV_CondRetErroEstrutura = 2 , /* Estrutura da árvore está errada */ ARV_CondRetNaoEhFolha = 3 , /* Não é folha relativa à direção de inserção desejada */ ARV_CondRetArvoreNaoExiste = 4 , /* Árvore não existe */ ARV_CondRetArvoreVazia = 5 , /* Árvore está vazia */ ARV_CondRetNohEhRaiz = 6 , /* Nó corrente é raiz */ ARV_CondRetNaoPossuiFilho = 7 , /* Nó corrente não possui filho na direção desejada */ ARV_CondRetFaltouMemoria = 8 /* Faltou memória ao alocar dados */ } ARV_tpCondRet ;
Evento normal
Eventos excepcionais
![Page 18: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/18.jpg)
18 / 30 LES/DI/PUC-Rio
Teste Manual
• Controlador exibe um menu e comparação é feita pelo próprio testador à olho nu
1 Inserir nó à esquerda
2 Inserir nó à direita
3 Ir para nó filho à esquerda
4 Ir para nó filho à direita
5 Obter valor do nó corrente
6 Exibir a árvore em formato parentetizado
99 Terminar
Escolha a opção:
![Page 19: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/19.jpg)
19 / 30 LES/DI/PUC-Rio
Vantagens e desvantagens do teste manual
• Vantagens – É relativamente simples de programar. – É mais fácil verificar a corretude caso esta se baseie em valores
aproximados • evidentemente, isto requer que o testador saiba determinar quais as
aproximações aceitáveis
• Desvantagens – O usuário não sabe quando testou tudo que deveria ser testado
• teste incompleto pode deixar defeitos remanescentes
– O usuário imagina o resultado esperado – O usuário realiza testes que repetem condições já testadas
• teste redundante adiciona custo sem contribuir para descobrir novos defeitos
– O usuário corrige imediatamente ao encontrar uma falha • após eliminar o defeito que provocou a falha, o módulo precisa ser retestado • correção imediata aumenta o número de retestes
![Page 20: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/20.jpg)
20 / 30 LES/DI/PUC-Rio
Como testar um módulo?
• Uso de um módulo controlador do teste desenvolvido que auxilia a execução de casos de teste para testar um módulo sob teste
• Três formas: – Teste manual: controlador exibe um menu e
comparação é feita pelo próprio testador à olho nu – Teste de comparação automatizado:
• Casos de teste são implementados em C • Casos de teste são redigidos em scripts em uma linguagem
com uma sintaxe própria
![Page 21: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/21.jpg)
Ago 2008 21 / 27 Arndt von Staa © LES/DI/PUC-Rio
Como reduzir o custo do reteste?
• Automatizar a execução dos testes – estabelecer a seqüência de comandos de teste em uma espécie
de programa – obter os dados para os testes de cada comando
– efetuar a operação correspondente ao comando – comparar o resultado esperado com o obtido
• sem essa comparação jamais teremos um teste
– continuar com o próximo comando – emitir um relatório da execução do teste (laudo)
![Page 22: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/22.jpg)
Ago 2008 22 / 27 Arndt von Staa © LES/DI/PUC-Rio
Exemplo simplório
. . . ContaCaso ++ ; if ( CriarArvore( ) != ARV_CondRetOK ) { printf( "\nErro ao criar árvore" ) ; ContaFalhas ++ ; } ContaCaso ++ ; if ( InserirEsquerda('a' ) != ARV_CondRetOK ) { printf( "\nErro ao inserir nó raiz da árvore" ) ; ContaFalhas ++ ; } ContaCaso ++ ; if ( IrPai( ) != ARV_CondRetEhRaiz ) { printf( "\nErro ao ir para pai de nó raiz" ) ; ContaFalhas ++ ; } . . .
![Page 23: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/23.jpg)
Ago 2008 23 / 27 Arndt von Staa © LES/DI/PUC-Rio
Por que é simplório?
• O código é muito repetitivo – viola a regra de evitar duplicações de código
• As mensagens impressas não explicitam o porquê da falha – quais foram os valores que causaram a mensagem?
• Não identifica com precisão o objetivo de cada caso de teste – o leitor do código precisa inferir o objetivo a partir da leitura
• O módulo controlador do teste pode tornar-se muito extenso – dificulta verificar se o teste é um bom teste
• O código não produz um laudo do teste
![Page 24: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/24.jpg)
Ago 2008 24 / 27 Arndt von Staa © LES/DI/PUC-Rio
Como reduzir o volume de repetição?
• Criar um arcabouço (framework) com as funções de comparação.
Framework
Pontos deextensão
Aplicação
Serviço do arcabouço
![Page 25: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/25.jpg)
Ago 2008 25 / 27 Arndt von Staa © LES/DI/PUC-Rio
Exemplo de uma função de comparação
TST_tpCondRet TST_CompararInt( long ValorEsperado , long ValorObtido , char * pMensagem ) { if ( ValorObtido != ValorEsperado ) { ContaFalhas ++ ; fprintf( pArqLog , "\nErro >>> %s" , pMensagem ) ; fprintf( pArqLog , "Deveria ser: %ld É: %ld" , ValorEsperado , ValorObtido ) ; return TST_CondRetErro ; } /* if */ return TST_CondRetOK ; } /* Fim função: TSTG &Comparar inteiro */
![Page 26: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/26.jpg)
Ago 2008 26 / 27 Arndt von Staa © LES/DI/PUC-Rio
Como fica o código agora?
. . . if ( TST_CompararInt( ARV_CondRetOK , CriarArvore( ) , "Erro ao criar árvore" ) != TST_CondRetOK ) { return ; } if ( TST_CompararInt( ARV_CondRetOK , InserirEsquerda('a' ) , "Erro ao inserir nó raiz da árvore" ) != TST_CondRetOK ) { return ; } if ( TST_CompararInt( ARV_CondRetEhRaiz , IrPai( ) , "Erro ao ir para pai na raiz" ) != TST_CondRetOK ) { return ; } . . .
![Page 27: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/27.jpg)
Ago 2008 27 / 27 Arndt von Staa © LES/DI/PUC-Rio
Melhorou?
• Sim, pode-se adicionar mais funcionalidades ao arcabouço – outros comparadores
– funções de auxílio – . . .
• Sim, ganhou-se uniformidade
• Não, o código continua extenso • Não, pára na primeira falha encontrada
![Page 28: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/28.jpg)
Ago 2008 28 / 27 Arndt von Staa © LES/DI/PUC-Rio
Nossa solução
• Para quem programa Java, C++, C# e outros, existem diversos arcabouços: JUnit, CppUnit, CSUnit, ...
• A solução que adotamos é um interpretador inspirado no JUnit
![Page 29: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/29.jpg)
Ago 2008 29 / 27 Arndt von Staa © LES/DI/PUC-Rio
O roteiro de teste pode ser interpretado?
. . . == Criar árvore =criar OK =irdir ArvoreVazia == Inserir à direita =insdir CharA OK == Obter o valor inserido =obter CharA OK == Ir para no pai, não tem =irpai EhRaiz == Inserir à esquerda =insesq CharB OK =obter CharB OK == Ir para no pai, tem =irpai OK =obter CharA OK . . .
![Page 30: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/30.jpg)
Ago 2008 30 / 27 Arndt von Staa © LES/DI/PUC-Rio
O roteiro de teste pode ser interpretado?
• Declaração dos valores simbólicos – formato
• =declararparm <nome simbólico> <tipo> <valor> • tipos conhecidos: int , char , double , string , nome
– exemplos
== Declarar as condições de retorno =declararparm OK int 0 =declararparm NaoArvore int 4 =declararparm ArvoreVazia int 5 == Declarar os valores contidos nos nós =declararparm CharErro char '!' =declararparm CharA char 'a'
![Page 31: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/31.jpg)
Ago 2008 31 / 27 Arndt von Staa © LES/DI/PUC-Rio
Exemplo de fragmento do interpretador
/* Testar ARV Adicionar filho à direita */ else if ( strcmp( ComandoTeste , INS_DIR_CMD ) == 0 ) { NumLidos = LER_LerParametros( "ci" , &ValorDado , &CondRetEsperada ) ; if ( NumLidos != 2 ) { return TST_CondRetParm ; } /* if */ return TST_CompararInt( CondRetEsperada , ARV_InserirDireita( ValorDado ) , "Retorno errado inserir àa direita." ); } /* fim: Testar ARV Adicionar filho à direita */
![Page 32: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/32.jpg)
Ago 2008 32 / 27 Arndt von Staa © LES/DI/PUC-Rio
Arquitetura simplificada da nossa abordagem
Programaprincipal
Móduloem teste
Teste deitem de
interface
Funçãode controleespecífica
Módulo de controle
genérico
Diretivasde teste
Logdo teste
Módulo deleitura
![Page 33: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/33.jpg)
33 / 30 LES/DI/PUC-Rio
Arquitetura simplificada da nossa abordagem
Programaprincipal
Móduloem teste
Teste deitem de
interface
Funçãode controleespecífica
Módulo de controle
genérico
Diretivasde teste
Logdo teste
Módulo deleitura
LERPARM.h
GENERICO.h
PRINCIP.h coordena a realização dos testes; disponibiliza funções genéricas de comparação
TST_ESPC.h
interpreta os comandos genéricos e específicos
*.script
![Page 34: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/34.jpg)
Ago 2008 34 / 27 Arndt von Staa © LES/DI/PUC-Rio
Arquitetura completa
Programaprincipal
Móduloem teste
Teste deitem deinterface
Funçãode controleespecífica
Módulo de controlegenérico
Diretivasde teste
Logdo teste
Módulocontador
Interpretadorcontador
Móduloacesso
Interpretadoracesso
Arcabouço de apoioao teste automatizado
Módulo deleitura dasdiretivas
![Page 35: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/35.jpg)
Ago 2008 35 / 27 Arndt von Staa © LES/DI/PUC-Rio
Como usar?
• Forma “big bang” 1. Especificar a interface do módulo
• arquivo .h
2. Especificar a linguagem de diretivas de teste, sintaxe • =<nome da função> <lista parâmetros> <condição retorno>
3. Redigir a massa de teste nesta linguagem • serve como uma especificação executável!
4. Redigir o módulo de teste específico 5. Redigir o módulo a ser testado 6. Rever cuidadosamente os cinco artefatos 7. Compilar
• usar a biblioteca: ArcaboucoTeste.lib
8. Executar o teste 9. Corrigir até zero falhas observadas pelo teste
![Page 36: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/36.jpg)
Ago 2008 36 / 27 Arndt von Staa © LES/DI/PUC-Rio
Como usar?
• Forma iterativa – preparação inicial
1. Especificar parcialmente a interface do módulo a desenvolver 2. Especificar a linguagem de diretivas de teste 3. Redigir parte da massa de teste nesta linguagem 4. Redigir a versão inicial do módulo de teste específico
– todos os comandos retornam TST_CondRetNaoImplementado
5. Redigir o enchimento (stub) do módulo a ser testado – todas as funções fazem nada, se necessário retornam um valor neutro
6. Rever cuidadosamente os cinco artefatos 7. Compilar
– usar a biblioteca: ArcaboucoTeste.lib
8. Executar o teste 9. Corrigir até que sejam gerados somente erros de comando não
implementado
![Page 37: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/37.jpg)
Ago 2008 37 / 27 Arndt von Staa © LES/DI/PUC-Rio
Como usar?
• Forma iterativa – iteração
1. Escolher as funções a serem implementadas 2. Rever ou completar a interface do módulo 3. Rever a linguagem de diretivas de teste 4. Redigir a massa de teste nesta linguagem 5. Redigir a parte do módulo de teste específico visando as funções 6. Redigir as funções do módulo a ser testado 7. Rever cuidadosamente os cinco artefatos 8. Compilar
– usar a biblioteca: ArcaboucoTeste.lib
9. Executar o teste 10. Corrigir até que
– esteja tudo correto – sejam gerados somente erros de comando não implementado
![Page 38: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/38.jpg)
Instalando arcabouço
• Criar uma pasta (ex: arcaboucoLegal) • Descompactar o Arquivo de instalação da versão 2.02 na
pasta criada • Copiar para a raiz da pasta (arcaboucolegal) o bat vsvars32
– C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32
• Executar o vsvars32
• Executar bats, scripts, testes, ...
Ago 2008 38 / 27 Arndt von Staa © LES/DI/PUC-Rio
![Page 39: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/39.jpg)
Visual Studio
• Visual Studio 2008 – Editor - Demonstração – Criar Projeto > Aplicação de Console – Win32
– Importar Arquivos • ArcabouçoTeste.lib • CESPDIN.H • CONTA.H • GENERICO.H • LERPARM.H • TST_ESPC.H • MODULO - .H, .C e TST.C
– Build da Aplicação – \debug\.exe
• GMake – Compilação via prompt (sugestão)
Ago 2008 39 / 29 Arndt von Staa © LES/DI/PUC-Rio
![Page 40: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/40.jpg)
Ago 2008 40 / 27 Arndt von Staa © LES/DI/PUC-Rio
Exemplo prático
• Exemplo \arcabouc\simples • Adicionando nova funçõa
– adicionar prototipo de função no ARVORE.h – adicionar definição da função no ARVORE.c – no TestArv.C
• declarar constante de teste a ser chamada no script • adicionar tratamento de comando no bloco
– no script • adicionar constantes • adicionar comando • adicionar parâmetros e retorno esperado
![Page 41: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/41.jpg)
Ago 2008 41 / 27 Arndt von Staa © LES/DI/PUC-Rio
Quais seriam as vantagens?
• Teste automatizado exige rigor ao escrever – as especificações das interfaces
– o script de teste – embora alguns não acreditem, rigor é sempre vantagem!
• Facilita o desenvolvimento incremental do módulo – a cada incremento pode-se retestar integralmente o que já foi
feito (teste de regressão) • o que não foi alterado ou acrescido deveria continuar operando tal
como esperado • o que foi alterado e acrescido tem o teste ajustado
• A função de teste específico serve como exemplo de uso do módulo
![Page 42: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/42.jpg)
Ago 2008 42 / 27 Arndt von Staa © LES/DI/PUC-Rio
Quais seriam as vantagens?
• O script de teste serve como especificação executável do módulo – apesar de ser uma especificação incompleta e baseada em
exemplos, freqüentemente é mais precisa do que especificações textuais
• Os problemas encontrados são repetíveis, facilitando a depuração – reduz significativamente o esforço de teste quando se leva em
conta a necessidade de reteste após corrigir ou evoluir o módulo
• Caso a realização do teste gere um arquivo de log – documenta os laudos dos testes realizados
– assegura a existência da história da evolução durante o teste. – passa a ser um atestado da qualidade do módulo
![Page 43: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/43.jpg)
Ago 2008 43 / 27 Arndt von Staa © LES/DI/PUC-Rio
Quais seriam as vantagens?
• O esforço de redação do módulo de teste específico é pouco maior do que o esforço de redação de um controlador de teste manual.
• Através da linguagem de diretivas de teste pode-se realizar testes tão complexos e detalhados quanto se queira. – casos de teste selecionados segundo critérios de seleção bem
definidos – redigir as diretivas de teste requer monos esforço do que
redigir um controlador de teste contendo o roteiro
• Permite documentar os casos de teste – os títulos ( “==” ) informam a intenção do caso de teste – necessário para que outros possam mantê-los
![Page 44: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/44.jpg)
Ago 2008 44 / 27 Arndt von Staa © LES/DI/PUC-Rio
Quais seriam as vantagens?
• Reduz o estresse do desenvolvedor – é possível particionar o desenvolvimento em etapas –
desenvolvimento incremental – cada qual culminando com um módulo parcial porém
corretamente implementado
![Page 45: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/45.jpg)
Ago 2008 45 / 27 Arndt von Staa © LES/DI/PUC-Rio
E quais seriam as desvantagens?
• O arquivo de diretivas é na realidade um programa – pode conter defeitos
– se não tomar cuidado, a linguagem e/ou o script de teste tornam-se extensos e complicados
• Ao encontrar uma falha é necessário determinar se é – defeito no módulo em teste
– defeito no módulo de teste específico – defeito no script de teste – defeito na especificação do módulo
![Page 46: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/46.jpg)
Ago 2008 46 / 27 Arndt von Staa © LES/DI/PUC-Rio
E quais seriam as desvantagens?
• Custo inicial maior – ganha-se ao retestar, ou seja, sempre J
• Ao alterar um módulo, obriga a evoluir è coevolução – obviamente o módulo sob teste – o módulo de teste específico
– o script de teste, isso pode tornar-se um problema • se os casos de teste forem mal documentados • se o script de teste for mal organizado • se o script de teste não utilizar parâmetros simbólicos
• Nem sempre é possível utilizar teste automatizado – exibição (rendering) de figuras, gráficos – interfaces com os sistemas GUI (ex. windows)
– leiaute de janelas – . . .
![Page 47: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/47.jpg)
47 / 30 LES/DI/PUC-Rio
O Trabalho: Testando a Lista (diretório Lista)
Programaprincipal
Móduloem teste
Teste deitem de
interface
Funçãode controleespecífica
Módulo de controle
genérico
Diretivasde teste
Logdo teste
Módulo deleitura
LERPARM.h
GENERICO.h
PRINCIP.h
TST_ESPC.h
LISTA.c LISTA.h
TESTELIS.c
fixo
TESTELISTA.script
![Page 48: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/48.jpg)
48 / 30 LES/DI/PUC-Rio
O Trabalho: Testando a Lista (diretório Lista)
Programaprincipal
Móduloem teste
Teste deitem de
interface
Funçãode controleespecífica
Módulo de controle
genérico
Diretivasde teste
Logdo teste
Módulo deleitura
LERPARM.h
GENERICO.h
PRINCIP.h
TST_ESPC.h
LISTA.c LISTA.h
TESTELIS.c
TESTELISTA.script
Modificações não esqueçam de satisfazer os princípios de modularidade
![Page 49: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/49.jpg)
49 / 30 LES/DI/PUC-Rio
PARA CASA: exemplos práticos de uso do arcabouço
• Teste manual: – Exemplo \arcabouc\manual: mostrado como construir um
módulo e o respectivo controlador de teste manual
• Teste automatizado: – Exemplo \arcabouc\simples: mostrado como construir um
módulo e o respectivo módulo de teste específico utilizando a biblioteca do arcabouço de teste
• Comparar o módulo de teste específico com o controlador de teste manual – os exemplos tratam de um módulo editor de árvores binárias
• Teste automatizado da Lista (Trabalho) – Exemplo \arcabouc\simples
![Page 50: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/50.jpg)
50 / 30 LES/DI/PUC-Rio
Dicas para o Trabalho
• Já instalou, compilou e executou o arcabouço de testes? – Seção 2 da monografia dá todos os passos de instalação – A biblioteca do arcabouço precisa ser compatível com a versão
da plataforma de desenvolvimento utilizada • portanto, antes de utilizá-la, ela precisa ser recompilada
• “Recomenda-se fortemente...” = leia-se “DEVE LER” • É parte da tarefa, mesmo antes da aula de teste
automatizado, conforme descrito no enunciado: – ler a monografia “AutoTest...” – ler o arquivo “...readme” para verificar como instalar – ler a documentação do GMake
• útil para gerar scripts de compilação e ligação • arquivos .comp devem ser re-executados na sua máquina
– começar a utilizar os exemplos e arcabouço de testes...
![Page 51: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/51.jpg)
51 / 30 LES/DI/PUC-Rio
Dicas para o Trabalho
• Executar o exemplo TesteLista em linha de comando (CMD) 1. Regere a biblioteca do arcabouço: ArcaboucoTeste.lib
– Vide “Leia.me”
2. Recompilar os arquivos do exemplo: lista\CompilaTudo.bat
3. Executando lista\TesteLista.exe, detalhes são dados – Não clique duas vezes sobre tal programa, não é uma aplicação
windows e deve ser executa no console!
4. Executando lista\TesteLista.exe /sTesteLista.script
• Quem está sem grupo?
![Page 52: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/52.jpg)
52 / 30 LES/DI/PUC-Rio
Dicas para o Trabalho
• Não esqueça de rever cuidadosamente: – critérios de avaliação
– procedimentos para entrega do trabalho
• Certifique-se que seu trabalho atende os seguintes pontos: – estruturação: contém tanto o fonte dos módulos de
implementação quanto módulos definição (interface) • siga princípios de modularidade: interfaces simples e documentadas,
alta coesão, baixo acoplamento, ...
– obediência a padrões de programação
– execução do código não apresenta falhas – testes rodam e, idealmente, cobrem condições anormais de uso – Arquivos LEIAME.TXT e RELATOR.TXT
![Page 53: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/53.jpg)
Trabalho - Dúvidas
• É para fazer o teste de novas funções pelo script? – SIM
• Será necessário modificar o arquivo TESTLIS.c para que eu possa realizar o teste da minha implementação do módulo Lista? – SIM, pois certamente haverão modificações na interface do
Módulo Lista... – ... Logo, deve-se modificar o módulo de teste
53 / 30 LES/DI/PUC-Rio
![Page 54: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/54.jpg)
Jun 2009 54 / 35 LES/DI/PUC-Rio
Qual o nível de rigor dos testes?
0 iterações
1 iteração
2 iterações
Árvore inexistente Árvore vazia
Modelo de árvore binária ancorada
pEsq pDir Valor
pRaiz pCorrente Estas configurações devem ser usadas para testar a inserção, exclusão, manipulação...
![Page 55: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/55.jpg)
55 / 30 LES/DI/PUC-Rio
Não esquecer...
• Preencher tabela de atividades ao longo do processo.
• NÃO DEIXE PARA ÚLTIMA HORA, POIS VOCÊ NÃO SE LEMBRARÁ DO QUE FEZ TAL DIA, TAL HORA.
• Com relatórios similares a esse você aprende a planejar o seu trabalho.
• O relatório é INDIVIDUAL
![Page 56: Aula 06 Introdução a Teste Automatizado - PUC-Rioinf1301/docs/2017_2/aula6.pdf · 2017. 9. 4. · 9 / 30 LES/DI/ PUC-Rio Casos de teste • Um dos problemas comuns ao testar software](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603fb2ec2f722713a47dc27c/html5/thumbnails/56.jpg)
Ago 2008 56 / 27 Arndt von Staa © LES/DI/PUC-Rio
Fim