Eng.ª do Software - 10. Testes de software

66
ENGENHARIA DO SOFTWARE I Manuel Menezes de Sequeira DCTI, ISCTE-IUL [email protected] , D6.02 As apresentações desta série baseiam-se nas apresentações disponibilizadas por Ian Sommerville , tendo sido alteradas e adaptadas primeiro por Anders Lyhne Christensen e finalmente por Manuel Menezes de Sequeira.

description

Testes de software. Unidade de Engenharia do Software I para o curso de METI no ISCTE-IUL no 2.º semestre do ano lectivo de 2009/2010.

Transcript of Eng.ª do Software - 10. Testes de software

Page 1: Eng.ª do Software - 10. Testes de software

ENGENHARIA DO SOFTWARE I

Manuel Menezes de Sequeira

DCTI, ISCTE-IUL

[email protected], D6.02

As apresentações desta série baseiam-se nas apresentações disponibilizadas por Ian Sommerville, tendo sido alteradas e adaptadas primeiro por  Anders Lyhne Christensen e finalmente por Manuel

Menezes de Sequeira.

Page 2: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 2

Na aula anterior

Verificação e validaçãoPlaneamento da verificação e validaçãoInspecções de softwareAnálise estática automáticaDesenvolvimento de software em sala limpa

2009/2010

Page 3: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 3

Testes de software

2009/2010

Page 4: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 4

Sumário

Testes de softwareTeste de sistemasTeste de componentesDesenho de casos de testeAutomatização de testes

2009/2010

Page 5: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 5

Objectivos Discutir diferença entre testes de validação e de

defeitos

Descrever princípios de testes de sistema e de componentes

Descrever estratégias para gerar casos de teste para sistemas

Compreender características essenciais das ferramentas de automatização de testes

2009/2010

Page 6: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 6

Processo de testes Testes de componentes

Teste de componentes individuais do programaUsualmente responsabilidade de desenvolvedor do

componente (excepto por vezes em sistemas críticos)

Testes derivados da experiência do desenvolvedor

Testes de sistemaTeste sistemas ou um subsistemas (compostos de

componentes)Responsabilidade de equipa de testes independenteTestes baseados em especificação do sistema

2009/2010

Page 7: Eng.ª do Software - 10. Testes de software

7Engenharia do Software I

Fases de teste

2009/2010

Testes de componentes

Testes de sistemas

Desenvolvedor do software

Equipa de testes

independente

Page 8: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 8

Testes de defeitos

Objectivo é descobrir defeitos em programas

Teste com sucesso leva programa a comportamento anómalo

Mostram presença e não ausência de defeitos

2009/2010

Page 9: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 9

Objectivos do processo de testes Testes de validação

Demonstra a desenvolvedor e cliente do sistema que software cumpre requisitos

Teste com sucesso mostra que sistema se comporta como pretendido

Testes de defeitosDescobre erros ou defeitos no software levando a

comportamento incorrecto ou que não corresponde à especificação

Teste com sucesso leva sistema a comportar-se incorrectamente, assim expondo um defeito no sistema

2009/2010

Um teste que não descubra erros ou defeitos é inconclusivo.

Page 10: Eng.ª do Software - 10. Testes de software

10Engenharia do Software I

Processo de testes de software

2009/2010

Casos de teste

Dados de teste

Resultados dos testes

Relatórios dos testes

Desenhar casos de

teste

Preparar dados de

teste

Executar programa com dados de teste

Comparar resultado com casos de teste

Page 11: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 11

Políticas de testes Testes exaustivos podem mostrar ausência de

defeitos

Testes exaustivos geralmente impossíveis

Políticas de testes definem abordagem a usar na escolha de testes de sistemaTestar todas funcionalidades acessíveis em menusTestar combinações de funcionalidades acedidas no mesmo

menuQuando for necessário introduzir dados do utilizador, testar

todas funcionalidades com entradas correctas e incorrectas

2009/2010

Page 12: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 12

Testes de sistemas

Envolvem integrar componentes de modo a formarem sistema ou subsistema

Podem envolver testar incremento a fornecer a cliente

2009/2010

Page 13: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 13

Fases dos testes de sistemasTestes de integração A equipa de testes tem acesso ao código

fonte do sistema. O sistema ou subsistema é testado à medida que os componentes são integrados.

Testes de lançamento A equipa de testes testa o sistema completo a fornecer vendo-o como uma caixa preta.

2009/2010

Page 14: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 14

Testes de integração

EnvolveConstruir sistema a partir de componentesIr testando para revelar problemas gerados

por interacção entre componentes

Integração deve ser incremental para simplificar localização de erros

2009/2010

Page 15: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 15

Tipos de integraçãoDescendente Desenvolver esqueleto do sistema e preenchê-lo com

componentes.

Ascendente Integrar componentes infra-estruturais e adicionar componentes funcionais.

2009/2010

Page 16: Eng.ª do Software - 10. Testes de software

16Engenharia do Software I

Testes de integração incrementais

2009/2010

T1

T2

T3

T4

T5

A

B

C

D

T1

T2

T3

T4

A

B

C

T1

T2

T3

A

B

Sequência de testes

3

Sequência de testes

2

Sequência de testes

1

Page 17: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 17

Abordagens aos testes

2009/2010

DescendenteFacilita validação arquitectónica, i.e.,

descoberta de erros na arquitectura do sistemaPermite demonstração limitada do sistema

mesmo em fases iniciais do desenvolvimentoObservação dos testes pode exigir código extra

AscendenteFacilita muitas vezes implementação dos testesObservação dos testes pode exigir código extra

Page 18: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 18

Testes de lançamento Processo de teste do lançamento do sistema a

fornecer a clientes

Objectivo principal: aumentar confiança de fornecedor no cumprimento de requisitos

Normalmente de caixa preta ou funcionais

Baseados só na especificação do sistema

Testadores não conhecem implementação

2009/2010

Page 19: Eng.ª do Software - 10. Testes de software

19Engenharia do Software I

Testes de caixa preta

2009/2010

Dados de entrada do teste

Entradas causadoras de

anomalias

Resultados de saída do teste

Resultados reveladores de

defeitos

Sistema

Page 20: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 20

Linhas de orientação para testes Escolher entradas

Gerando todas as mensagens de erroLevando a transbordamentos de memória

Repetir várias vezes mesma entrada ou sequência de entradas

Forçar geração de saídas inválidas

Forçar cálculo de valores além dos limites

2009/2010

Dicas para equipa escolher testes que revelem defeitos no sistema.

Page 21: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 21

Cenário de testeNa Escócia, uma estudante está a estudar a história americana e foi convidada a escrever um artigo sobre a “mentalidade de fronteira no oeste americano de 1840 a 1880”. Para o fazer, precisa de encontrar fontes bibliográficas numa série de bibliotecas. Assim, autentica-se no sistema LIBSYS e usa o mecanismo de pesquisa para descobrir se pode aceder a documentos originais da época. Descobre fontes bibliográficas em várias bibliotecas universitárias dos EUA e descarrega cópias de algumas dessas fontes. No entanto, para um dos documentos é necessário que a sua universidade confirme que ela é realmente estudante e que a fonte será utilizada para fins não comerciais. A estudante usa o mecanismo do LIBSYS que permite solicitar essa autorização e regista o seu pedido. Se o pedido for concedido, o documento será transferido para o servidor da biblioteca e impresso. Ela receberá então uma mensagem do LIBSYS dizendo que irá receber uma mensagem de correio electrónico assim que o documento impresso estiver disponível para recolha.

2009/2010

Page 22: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 22

Testes de sistema1. Testar mecanismo de autenticação usando credenciais válidas e

inválidas para verificar se utilizadores com credenciais válidas são aceites e se utilizadores com credenciais inválidas são rejeitados.

2. Testar mecanismo de pesquisa usando diferentes interrogações a diferentes fontes de informação para verificar se mecanismo de facto encontra documentos.

3. Testar mecanismo de apresentação para verificar se informação é apresentada correctamente.

4. Testar mecanismo de pedido de autorização para descarregamento.

5. Testar resposta via correio electrónico que indica que documento descarregado está disponível.

2009/2010

Page 23: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 23

Casos de uso Podem ser base para obtenção de testes

de sistema

Ajudam a identificar operações a testar e ajudam a conceber os casos de teste necessários

A partir de diagrama de sequência associado, indentificar entradas e saídas a usar nos testes

2009/2010

Page 24: Eng.ª do Software - 10. Testes de software

24Engenharia do Software I

Diagrama de sequência da recolha de dados meteorológicos

2009/2010

: CommunicationsController

getReport()

: WeatherStation : WeatherData

sd data collection

getSummary()

getReport()

acknowledge()

acknowledge()

Page 25: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 25

Testes de desempenho

Testes de lançamento podem envolver teste a propriedades emergentesTestes de desempenhoTestes de fiabilidade

Planear série de testes com carga crescente até desempenho ficar inaceitável

2009/2010

Page 26: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 26

Testes de estresse Sujeitam sistema a cargas superiores a máximo

previsto tentando revelar defeitos

Aferem comportamento em caso de falhaSistema não pode falhar catastroficamenteFalhas não podem levar a perdas inaceitáveis de

serviço ou dados

Muito relevantes para sistemas distribuídos que podem sofre degradação séria perante rede sobrecarregada

2009/2010

Page 27: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 27

Testes de componentes ou testes unitários Processo de testar isoladamente

componentes individuais

É processo de teste de defeitos

2009/2010

Page 28: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 28

Componentes ou unidades (de modularização)

RotinasFunções e procedimentos isoladosOperações de classes e seus objectos

Classes e respectivas propriedades e operações

Componentes compósitos com interface definida para aceder à sua funcionalidade

2009/2010

Page 29: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 29

Testes de classes (de objectos)

Cobertura completa de classe por testes implicaTestar todas as operaçõesAlterar e inspeccionar todas as propriedadesFazer objectos passar por todos os estados

representativosFazer objectos passar por todos os possíveis

fluxos de controlo

Herança dificulta desenho de testes para classes, pois informação está disseminada

2009/2010

Page 30: Eng.ª do Software - 10. Testes de software

30Engenharia do Software I

Interface de estação meteorológica

2009/2010

WeatherStation

+ reportWeather()+ calibrate(instruments)+ test()+ startup(instruments)+ shutdown(instruments)

Page 31: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 31

Teste da estação meteorológica

Necessário definir casos de teste parareportWeather()calibrate()test()startup()shutdown()

2009/2010

Page 32: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 32

Teste da estação meteorológica

Usando modelo de transição de estadosIdentificar sequências de transição a testarIdentificar sequências de eventos que as

causemExemplo

1. Esperando

2. Calibrando

3. Testando

4. Transmitindo

5. Esperando

2009/2010

Page 33: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 33

Testes de interfaces

Detectar anomalias devidas aErros de interfaceSuposições inválidas acerca das interfaces

Especialmente importantes em desenvolvimento orientado para objectos (classes de objectos definidas pela interface)

2009/2010

Page 34: Eng.ª do Software - 10. Testes de software

34Engenharia do Software I

Testes de interfaces

2009/2010

C

A B

Casos de teste

Page 35: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 35

Tipos de interfacesParâmetros Dados passados de um procedimento para outro.

Memória partilhada

Bloco de memória partilhado entre procedimentos ou funções.

Procedimentais Subsistema encapsula conjunto de procedimentos a invocar a partir de outros subsistemas.

Passagem de mensagens

Subsistemas solicitam serviços a outros subsistemas.

2009/2010

Page 36: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 36

Erros de interfaceDe má utilização Componente invoca outro componente errando na

utilização da sua interface, e.g., passando argumentos pela ordem errada.

Equívocos Componente invocador faz suposições erradas acerca do comportamento do componente invocado.

De temporização Componentes invocador e invocado operam a diferentes velocidades e, por isso, há acessos a informação obsoleta.

2009/2010

Page 37: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 37

Linhas de orientação para testes de interface Invocar rotinas com valores extremos dos argumentos

Invocar rotinas com argumentos nulos onde parâmetros forem ponteiros ou referências

Tentar fazer os componentes falhar

Fazer testes de estresse em sistemas com passagem de mensagens

Variar ordem de activação de componentes em sistemas com memória partilhada

2009/2010

Page 38: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 38

Desenho de casos de teste Desenho de casos de teste (entradas e

saídas) usados para testar sistema

Objectivo: criar conjunto de testes eficazes na validação e nos testes de defeitos

AbordagensTestes baseados em requisitosTestes de partiçãoTestes estruturais

2009/2010

Page 39: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 39

Testes baseados em requisitos

Requisitos têm de ser testáveis

Técnica de testes de validação

Conjunto de testes derivado para cada requisito

2009/2010

Princípio geral da engenharia de requisitos

Page 40: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 40

Requisitos do LIBSYSO utilizador deverá poder pesquisar quer todos o conjunto inicial de bases de dados, quer um seu subconjunto.

O sistema disponibilizará visualizadores apropriados para o utilizador ler os documentos armazenados.

A cada pedido será atribuído um identificador único (ORDER_ID) que o utilizador poderá copias para a zona de armazenamento permanente da sua conta.

2009/2010

Page 41: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 41

Testes do LIBSYSIniciar pesquisas em que o utilizador procura a) itens que se sabe existirem e b) itens que se sabe não existirem. O conjunto a pesquisar inclui uma base de dados.

Iniciar pesquisas em que o utilizador procura a) itens que se sabe existirem e b) itens que se sabe não existirem. O conjunto a pesquisar inclui duas bases de dados.

Iniciar pesquisas em que o utilizador procura a) itens que se sabe existirem e b) itens que se sabe não existirem. O conjunto a pesquisar inclui mais do que duas bases de dados.

Seleccionar uma base de dados do conjunto e iniciar pesquisas em que o utilizador procura a) itens que se sabe existirem e b) itens que se sabe não existirem.

Seleccionar mais do que uma base de dados do conjunto e iniciar pesquisas em que o utilizador procura a) itens que se sabe existirem e b) itens que se sabe não existirem.

2009/2010

Page 42: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 42

Testes de partições Entradas e saídas muitas vezes em

diferentes classes cujos membros estão relacionados

Cada classe é partição ou domínio de equivalência para cujos membros comportamento do programa é equivalente

Devem escolher-se casos de teste em cada partição

2009/2010

Page 43: Eng.ª do Software - 10. Testes de software

43Engenharia do Software I

Partições de equivalência

2009/2010

Sistema

entradas válidasentradas inválidas

saídas

Page 44: Eng.ª do Software - 10. Testes de software

44Engenharia do Software I

Partições de equivalência

2009/2010

Menos de 4 Entre 4 e 10 Mais de 10Número de entradas

34 10

117

Menos de 10 000 Entre 10 000 e 99 999 Mais de 99 999Valores da entrada

9 99910 000 99 999

100 00050 000

Page 45: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 45

Especificação de rotina de pesquisaprocedure Search(element : in Element_T; sequence : in array (Integer range <>) of Element_T; elementFound : in out Boolean; index : in out Integer) is

with Pre => -- the sequence has at least one element

sequence'FIRST <= sequence'LAST,

Post => -- the element is found and is referenced by index (elementFound and sequence(index) = element) or -- the element is not in the sequence

(not elementFound and not (exists i, sequence'FIRST <= i <= sequence'LAST, sequence(i) = element));

2009/2010

Artificial…

Page 46: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 46

Partição das entradas

EntradasQue não cumprem a pré-condiçãoQue cumprem a pré-condição

○ Em que o elemento ocorre na sequência○ Em que o elemento não ocorre na sequência

2009/2010

Page 47: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 47

Linhas de orientação para testes (sequências) Usar sequências vazias

Usar sequências com um único elemento

Usar sequências com diferentes comprimentos em diferentes testes

Forçar acesso a primeiro elemento, último elemento e elemento central

2009/2010

Page 48: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 48

Partição das entradasSequência Elemento

Nenhum elemento Qualquer

Elemento único Existente

Elemento único Não existente

Mais de um valor Existente na primeira posição

Mais de um valor Existente na posição central

Mais de um valor Existente na última posição

Mais de um valor Não existente

2009/2010

Page 49: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 49

Casos de testesequence element elementFound index

() - Falha!

(17) 17 Verdadeiro 1

(17) 0 Falso -

(17, 29, 21, 23) 17 Verdadeiro 1

(17, 18, 21, 23, 29, 41, 38) 23 Verdadeiro 4

(41, 18, 9, 31, 30, 16, 45) 45 Verdadeiro 7

(21, 23, 29, 33, 38) 25 Falso -

2009/2010

Page 50: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 50

Testes estruturais Também conhecidos por testes de caixa branca

Derivação de casos de teste de acordo com estrutura do programa

Conhecimento do programa usado para identificar casos de teste adicionais

Objectivo é exercitar todas instruções do programa e não todos possíveis caminhos

2009/2010

Page 51: Eng.ª do Software - 10. Testes de software

51Engenharia do Software I

Testes estruturais

2009/2010

Dados de teste

Código do componente

Resultados do teste

derivartestar

Page 52: Eng.ª do Software - 10. Testes de software

52

Especificação de rotina de pesquisa bináriaprocedure SearchIncreasing(element : in Element_T; sequence : in array (Integer range <>) of Element_T; elementFound : in out Boolean; index : in out Integer) is

with Pre => -- the sequence is increasing

(forall i, sequence'FIRST <= i < sequence'LAST, sequence(i) <= sequence(i + 1)),

Post => -- the element is found and is referenced by index (elementFound and sequence(index) = element) or -- the element is not in the sequence

(not elementFound and not (exists i, sequence'FIRST <= i <= sequence'LAST, sequence(i) = element));

2009/2010 Engenharia do Software I

Page 53: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 53

Partição das entradas

EntradasQue não cumprem a pré-condiçãoQue cumprem a pré-condição

○ Em que o elemento ocorre na sequência○ Em que o elemento não ocorre na sequência○ Sequência vazia○ Sequência com um único elemento○ Sequência com um número par de elementos○ Sequência com um número ímpar de

elementos

2009/2010

Page 54: Eng.ª do Software - 10. Testes de software

54Engenharia do Software I

Partições de equivalência

2009/2010

Inferiores Superiores

Primeiro ÚltimoCentro + 1

Centro

Centro - 1

Classes de equivalência

Page 55: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 55

Casos de testesequence element elementFound index

(5, 3) - Falha!

() 30 Falso -

(17) 17 Verdadeiro 1

(17) 0 Falso -

(17, 21, 23, 29) 17 Verdadeiro 1

(9, 16, 18, 30, 31, 41, 45) 45 Verdadeiro 7

(17, 18, 21, 23, 29, 38, 41) 23 Verdadeiro 4

(17, 18, 21, 23, 29, 33, 38) 21 Verdadeiro 3

(12, 18, 21, 23, 32) 23 Verdadeiro 4

(21, 23, 29, 33, 38) 25 Falso -

2009/2010

Page 56: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 56

Teste de caminhos Objectivo: assegurar que conjunto de casos de

teste garante que cada caminho é executado pelo menos uma vez

Começar por obter grafo de fluxo do programa mostrando nós representando decisões do programa e arcos representando o fluxo de controlo

Instruções com condições são por isso nós do grafo de fluxo de controlo

2009/2010

Page 57: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 57

Implementação da pesquisa binária public <T extends Comparable<T>> void search(final T element, final List<T> sequence) { 1 indexOfFoundElement = -1; 2 found = false; 3 int left = 0; 4 int right = sequence.size() - 1; 5 while(left <= right) { 6 final int middle = (left + right) / 2; 7 int comparison = sequence.get(middle).compareTo(element); 8 if(comparison == 0) { 9 found = true;10 indexOfFoundElement = middle;11 return;12 } else if(comparison < 0)13 left = middle + 1; else14 right = middle - 1; }15 }

2009/2010

Page 58: Eng.ª do Software - 10. Testes de software

58Engenharia do Software I

Grafo de fluxo da pesquisa binária

2009/2010

1

2

3

4

5

6

7

89

10

11

12

13

14

15

left > right

left <= right

comparison == 0 comparison != 0

comparison < 0

comparison > 0

Page 59: Eng.ª do Software - 10. Testes de software

59Engenharia do Software I

Caminhos independentes

2009/2010

1

2

3

4

5

6

7

89

10

11

12

13

14

15

left > right

left <= right

comparison == 0 comparison != 0

comparison < 0

comparison > 0

1, 2, 3, 4, 5, 151, 2, 3, 4, 5, 6, 7, 8, 9, 10, 111, 2, 3, 4, 5, 6, 7, 8, 12, 13, 5, …1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 5, …

1

2

3

4

5

6

7

89

10

11

12

13

14

15

Page 60: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 60

Caminhos independentes Desenvolver casos de teste que levem a

execução de cada um dos caminhos

Um analisador dinâmico de programas pode ser usado para verificar que todos os caminhos foram executados

2009/2010

Page 61: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 61

Automatização de testes Testar é caro

Bancadas de trabalho para testes ajudam a automatizar o processo

Bancadas de trabalho para testesFerramentas para poupar tempo e custo dos testesSistemas como JUnit suportam execução automática de

testesMaioria são sistemas abertos, assim suportando

especificidades das organizaçõesPor vezes difíceis de integrar com bancadas de trabalho

fechadas para desenho e análise

2009/2010

Page 62: Eng.ª do Software - 10. Testes de software

62Engenharia do Software I

Uma bancada de trabalho para testes

2009/2010

Gerador de dados de teste

Especificação

OráculoDados

de testeGestor

de testes

Programa em teste

Resultados dos testes

Previsões dos testes

Analisador dinâmico

Código fonte

Relatório de execução

SimuladorComparador de ficheiros

Gerador de relatórios

Relatório dos resultados dos testes

Page 63: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 63

Adaptação da bancada de trabalho para testes Scripts para simuladores de interfaces

com o utilizador e padrões para geradores de dados

Preparação manual de saídas dos testes para posterior comparação

Desenvolvimento de comparadores de ficheiros especializados

2009/2010

Page 64: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 64

A reter

TestesRevelam erros em sistemaNão demonstram ausência de errosDe componentes: desenvolvedoresDe sistema: outra equipaDe integração: incrementos a sistemaDe lançamento: sistema a fornecerDesenhados recorrendo a experiência e

linhas de orientação

2009/2010

Page 65: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 65

A reter Testes de interface revelam defeitos em interfaces

de componentes compósitos

Partições de equivalência para descobrir casos de teste – casos em partição têm comportamento equivalente

Análise estrutural analisa programa e deriva casos de teste

Automatização de testes reduz custos através de múltiplas ferramentas software

2009/2010

Page 66: Eng.ª do Software - 10. Testes de software

Engenharia do Software I 66

A ler

Ian Sommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006

Capítulo 23

2009/2010