SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Engenharia do Software I Manuel Menezes de Sequeira DCTI, ISCTE-IUL Manuel.Sequeira@iscte.pt, D6.02 As apresentações desta série baseiam-se nas apresentações disponibilizadas por IanSommerville, tendo sido alteradas e adaptadas primeiro por  Anders Lyhne Christensen e finalmente por Manuel Menezes de Sequeira.
Na aula anterior Verificação e validação Planeamento da verificação e validação Inspecções de software Análise estática automática Desenvolvimento de software em sala limpa 2009/2010 2 Engenharia do Software I
Testes de software 2009/2010 3 Engenharia do Software I
Sumário Testes de software Teste de sistemas Teste de componentes Desenho de casos de teste Automatização de testes 2009/2010 4 Engenharia do Software I
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 5 Engenharia do Software I
Processo de testes Testes de componentes Teste de componentes individuais do programa Usualmente responsabilidade de desenvolvedor do componente (excepto por vezes em sistemas críticos) Testes derivados da experiência do desenvolvedor Testes de sistema Teste sistemas ou um subsistemas (compostos de componentes) Responsabilidade de equipa de testes independente Testes baseados em especificação do sistema 2009/2010 Engenharia do Software I 6
Fases de teste 2009/2010 7 Engenharia do Software I Testes de componentes Testes de sistemas Desenvolvedor do software Equipa de testes independente
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 Engenharia do Software I 8
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 defeitos Descobre 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 Engenharia do Software I 9 Um teste que não descubra erros ou defeitos é inconclusivo.
Processo de testes de software 2009/2010 10 Engenharia do Software I 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
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 sistema Testar todas funcionalidades acessíveis em menus Testar combinações de funcionalidades acedidas no mesmo menu Quando for necessário introduzir dados do utilizador, testar todas funcionalidades com entradas correctas e incorrectas 2009/2010 Engenharia do Software I 11
Testes de sistemas Envolvem integrar componentes de modo a formarem sistema ou subsistema Podem envolver testar incremento a fornecer a cliente 2009/2010 Engenharia do Software I 12
Fases dos testes de sistemas 2009/2010 Engenharia do Software I 13
Testes de integração Envolve Construir sistema a partir de componentes Ir testando para revelar problemas gerados por interacção entre componentes Integração deve ser incremental para simplificar localização de erros 2009/2010 Engenharia do Software I 14
Tipos de integração 2009/2010 Engenharia do Software I 15
Testes de integração incrementais 2009/2010 16 Engenharia do Software I T1 T1 T1 A A A T2 T2 T2 B B B T3 T3 T3 C C T4 T4 D T5 Sequência de testes 3 Sequência de testes 2 Sequência de testes 1
Abordagens aos testes 2009/2010 Engenharia do Software I 17 Descendente Facilita validação arquitectónica, i.e., descoberta de erros na arquitectura do sistema Permite demonstração limitada do sistema mesmo em fases iniciais do desenvolvimento Observação dos testes pode exigir código extra Ascendente Facilita muitas vezes implementação dos testes Observação dos testes pode exigir código extra
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 Engenharia do Software I 18
Testes de caixa preta 2009/2010 19 Engenharia do Software I Dados de entrada do teste Entradas causadoras de anomalias Sistema Resultados de saída do teste Resultados reveladores de defeitos
Linhas de orientação para testes Escolher entradas Gerando todas as mensagens de erro Levando 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 Engenharia do Software I 20 Dicas para equipa escolher testes que revelem defeitos no sistema.
Cenário de teste Na 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 Engenharia do Software I 21
Testes de sistema 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. Testar mecanismo de pesquisa usando diferentes interrogações a diferentes fontes de informação para verificar se mecanismo de facto encontra documentos. Testar mecanismo de apresentação para verificar se informação é apresentada correctamente. Testar mecanismo de pedido de autorização para descarregamento. Testar resposta via correio electrónico que indica que documento descarregado está disponível. 2009/2010 Engenharia do Software I 22
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 Engenharia do Software I 23
Diagrama de sequência da recolha de dados meteorológicos 2009/2010 24 Engenharia do Software I sd data collection : CommunicationsController : WeatherStation : WeatherData getReport() acknowledge() getReport() getSummary() acknowledge()
Testes de desempenho Testes de lançamento podem envolver teste a propriedades emergentes Testes de desempenho Testes de fiabilidade Planear série de testes com carga crescente até desempenho ficar inaceitável 2009/2010 Engenharia do Software I 25
Testes de estresse Sujeitam sistema a cargas superiores a máximo previsto tentando revelar defeitos Aferem comportamento em caso de falha Sistema não pode falhar catastroficamente Falhas 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 Engenharia do Software I 26
Testes de componentes ou testes unitários Processo de testar isoladamente componentes individuais É processo de teste de defeitos 2009/2010 Engenharia do Software I 27
Componentes ou unidades (de modularização) Rotinas Funções e procedimentos isolados Operaçõ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 Engenharia do Software I 28
Testes de classes (de objectos) Cobertura completa de classe por testes implica Testar todas as operações Alterar e inspeccionar todas as propriedades Fazer objectos passar por todos os estados representativos Fazer 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 Engenharia do Software I 29
Interface de estação meteorológica 2009/2010 30 Engenharia do Software I WeatherStation + reportWeather() + calibrate(instruments) + test() + startup(instruments) + shutdown(instruments)
Teste da estação meteorológica Necessário definir casos de teste para reportWeather() calibrate() test() startup() shutdown() 2009/2010 Engenharia do Software I 31
Teste da estação meteorológica Usando modelo de transição de estados Identificar sequências de transição a testar Identificar sequências de eventos que as causem Exemplo Esperando Calibrando Testando Transmitindo Esperando 2009/2010 Engenharia do Software I 32
Testes de interfaces Detectar anomalias devidas a Erros de interface Suposições inválidas acerca das interfaces Especialmente importantes em desenvolvimento orientado para objectos (classes de objectos definidas pela interface) 2009/2010 Engenharia do Software I 33
Testes de interfaces 2009/2010 34 Engenharia do Software I Casos de teste B A C
Tipos de interfaces 2009/2010 Engenharia do Software I 35
Erros de interface 2009/2010 Engenharia do Software I 36
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 Engenharia do Software I 37
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 Abordagens Testes baseados em requisitos Testes de partição Testes estruturais 2009/2010 Engenharia do Software I 38
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 Engenharia do Software I 39 Princípio geral da engenharia de requisitos
Requisitos do LIBSYS 2009/2010 Engenharia do Software I 40
Testes do LIBSYS 2009/2010 Engenharia do Software I 41
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 Engenharia do Software I 42
Partições de equivalência 2009/2010 43 Engenharia do Software I entradas válidas entradas inválidas Sistema saídas
Partições de equivalência 2009/2010 44 Engenharia do Software I 3 11 4 10 7 Número de entradas Menos de 4 Entre 4 e 10 Mais de 10 9 999 100 000 10 000 99 999 50 000 Valores da entrada Menos de 10 000 Entre 10 000 e 99 999 Mais de 99 999
Especificação de rotina de pesquisa procedure Search(element : inElement_T;     sequence : inarray (Integer range <>) ofElement_T; elementFound : inout Boolean;     index : inout 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             (elementFoundand sequence(index) = element) or             -- the element is not in the sequence             (notelementFoundand not (exists i, sequence'FIRST <= i <= sequence'LAST,                   sequence(i) = element)); 2009/2010 Engenharia do Software I 45 Artificial…
Partição das entradas Entradas Que não cumprem a pré-condição Que 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 Engenharia do Software I 46
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 Engenharia do Software I 47
Partição das entradas 2009/2010 Engenharia do Software I 48
Casos de teste 2009/2010 Engenharia do Software I 49
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 Engenharia do Software I 50
Testes estruturais 2009/2010 51 Engenharia do Software I Dados de teste derivar testar Código do componente Resultados do teste
Especificação de rotina de pesquisa binária procedureSearchIncreasing(element : inElement_T;     sequence : inarray (Integer range <>) ofElement_T; elementFound : inout Boolean;     index : inout Integer) is with         Pre => -- the sequence is increasing             (foralli, sequence'FIRST <= i < sequence'LAST,                   sequence(i) <= sequence(i + 1)),         Post =>             -- the element is found and is referenced by index             (elementFoundand sequence(index) = element)  or             -- the element is not in the sequence             (notelementFoundand not (exists i, sequence'FIRST <= i <= sequence'LAST,                   sequence(i) = element)); 2009/2010 Engenharia do Software I 52
Partição das entradas Entradas Que não cumprem a pré-condição Que 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 Engenharia do Software I 53
Partições de equivalência 2009/2010 54 Engenharia do Software I Centro Primeiro Último Centro + 1 Centro - 1 Inferiores Superiores Classes de equivalência
Casos de teste 2009/2010 Engenharia do Software I 55
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 Engenharia do Software I 56
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;         else 14             right = middle - 1;     } 15 } 2009/2010 Engenharia do Software I 57
Grafo de fluxo da pesquisa binária 2009/2010 58 Engenharia do Software I 1 2 3 4 left > right 5 left <= right 6 comparison < 0 7 13 comparison == 0 comparison != 0 8 9 12 14 10 comparison > 0 11 15
Caminhos independentes 2009/2010 59 Engenharia do Software I 1 1 1, 2, 3, 4, 5, 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 5, … 1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 5, … 2 2 3 3 4 4 left > right 5 5 left <= right 6 6 comparison < 0 7 7 13 13 comparison == 0 comparison != 0 8 9 12 8 9 12 14 14 10 comparison > 0 10 11 15 11 15
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 Engenharia do Software I 60
Automatização de testes Testar é caro Bancadas de trabalho para testes ajudam a automatizar o processo Bancadas de trabalho para testes Ferramentas para poupar tempo e custo dos testes Sistemas como JUnit suportam execução automática de testes Maioria são sistemas abertos, assim suportando especificidades das organizações Por vezes difíceis de integrar com bancadas de trabalho fechadas para desenho e análise 2009/2010 Engenharia do Software I 61
Uma bancada de trabalho para testes 2009/2010 62 Engenharia do Software I Gerador de dados de teste Especificação Oráculo Dados de teste Gestor de testes Código fonte Programa em teste Resultados dos testes Previsões dos testes Analisador dinâmico Relatório de execução Simulador Comparador de ficheiros Relatório dos resultados dos testes Gerador de relatórios
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 Engenharia do Software I 63
A reter Testes Revelam erros em sistema Não demonstram ausência de erros De componentes: desenvolvedores De sistema: outra equipa De integração: incrementos a sistema De lançamento: sistema a fornecer Desenhados recorrendo a experiência e linhas de orientação 2009/2010 Engenharia do Software I 64
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 Engenharia do Software I 65
A ler IanSommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006 Capítulo 23 2009/2010 Engenharia do Software I 66

Weitere ähnliche Inhalte

Was ist angesagt?

Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de TesteElias Nogueira
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geralpaulo peres
 
Exemplo de documento de requisitos
Exemplo de documento de requisitosExemplo de documento de requisitos
Exemplo de documento de requisitosLeandro Rodrigues
 
[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes CamadasJúlio de Lima
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageCloves da Rocha
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Aula 3 técnicas de teste de software1
Aula 3   técnicas de teste de software1Aula 3   técnicas de teste de software1
Aula 3 técnicas de teste de software1Tiago Vizoto
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01gtiprotec
 

Was ist angesagt? (20)

Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de Teste
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Exemplo de documento de requisitos
Exemplo de documento de requisitosExemplo de documento de requisitos
Exemplo de documento de requisitos
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Complexidade Ciclomática
Complexidade CiclomáticaComplexidade Ciclomática
Complexidade Ciclomática
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Aula 3 técnicas de teste de software1
Aula 3   técnicas de teste de software1Aula 3   técnicas de teste de software1
Aula 3 técnicas de teste de software1
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01
 

Andere mochten auch

Mídias Sociais e Inteligência de Marketing
Mídias Sociais e Inteligência de MarketingMídias Sociais e Inteligência de Marketing
Mídias Sociais e Inteligência de MarketingTarcízio Silva
 
Doenças má alimentação
Doenças má alimentaçãoDoenças má alimentação
Doenças má alimentaçãoMaria Sequeira
 
Apostila
ApostilaApostila
ApostilaNecy
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Aula de violão para iniciantes
Aula de violão para iniciantesAula de violão para iniciantes
Aula de violão para iniciantesjosedivino
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1Norivan Oliveira
 
Windows xp
Windows xpWindows xp
Windows xpvinivs
 
Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetApostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetSaymon Cristian Alves Oliveira
 
Apostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaApostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaFabio Souza
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectosDaniel Chavier
 
Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Alax Ricard
 
Apostila emi musica
Apostila emi musicaApostila emi musica
Apostila emi musicaElvis Live
 
Guia otimizacao para Mecanismos de Pesquisa
Guia otimizacao para Mecanismos de PesquisaGuia otimizacao para Mecanismos de Pesquisa
Guia otimizacao para Mecanismos de PesquisaJoão Paulo M. Cândido
 
Apostila para hackers iniciantes
Apostila para hackers iniciantesApostila para hackers iniciantes
Apostila para hackers inicianteshackersetruques
 
Bactérias utilizadas na produção de alimentos
Bactérias utilizadas na produção de alimentosBactérias utilizadas na produção de alimentos
Bactérias utilizadas na produção de alimentosLuan Queiroz
 
Notas de violão para iniciantes
Notas de violão para iniciantesNotas de violão para iniciantes
Notas de violão para iniciantesjosedivino
 

Andere mochten auch (20)

Parte Especial Verb To Be
Parte Especial Verb To BeParte Especial Verb To Be
Parte Especial Verb To Be
 
Plano de estudo para Guitarristas
Plano de estudo para GuitarristasPlano de estudo para Guitarristas
Plano de estudo para Guitarristas
 
Mídias Sociais e Inteligência de Marketing
Mídias Sociais e Inteligência de MarketingMídias Sociais e Inteligência de Marketing
Mídias Sociais e Inteligência de Marketing
 
Doenças má alimentação
Doenças má alimentaçãoDoenças má alimentação
Doenças má alimentação
 
Apostila
ApostilaApostila
Apostila
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Dicas para programador web
Dicas para programador webDicas para programador web
Dicas para programador web
 
Aula de violão para iniciantes
Aula de violão para iniciantesAula de violão para iniciantes
Aula de violão para iniciantes
 
CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1CURSO DE PHP PARA INICIANTES - AULA 1
CURSO DE PHP PARA INICIANTES - AULA 1
 
Windows xp
Windows xpWindows xp
Windows xp
 
Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetApostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
 
Apostila Arduino - FBS Eletrônica
Apostila Arduino - FBS EletrônicaApostila Arduino - FBS Eletrônica
Apostila Arduino - FBS Eletrônica
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectos
 
Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1
 
Apostila emi musica
Apostila emi musicaApostila emi musica
Apostila emi musica
 
Guia otimizacao para Mecanismos de Pesquisa
Guia otimizacao para Mecanismos de PesquisaGuia otimizacao para Mecanismos de Pesquisa
Guia otimizacao para Mecanismos de Pesquisa
 
Apostila para hackers iniciantes
Apostila para hackers iniciantesApostila para hackers iniciantes
Apostila para hackers iniciantes
 
Bactérias utilizadas na produção de alimentos
Bactérias utilizadas na produção de alimentosBactérias utilizadas na produção de alimentos
Bactérias utilizadas na produção de alimentos
 
Notas de violão para iniciantes
Notas de violão para iniciantesNotas de violão para iniciantes
Notas de violão para iniciantes
 
Hotelaria plan e gestão cap 3
Hotelaria plan e gestão cap 3Hotelaria plan e gestão cap 3
Hotelaria plan e gestão cap 3
 

Ähnlich wie Engenharia Software I Testes

Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SWguest8ae21d
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
ybr789try
ybr789tryybr789try
ybr789tryteste
 
Testes de software
Testes de softwareTestes de software
Testes de softwareteste
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninDevInPF
 
Casos teste integração efetiva de algumas unidades
Casos teste integração efetiva de algumas unidades Casos teste integração efetiva de algumas unidades
Casos teste integração efetiva de algumas unidades Adriana Telles
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 

Ähnlich wie Engenharia Software I Testes (20)

Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SW
 
Aula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SWAula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SW
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
ybr789try
ybr789tryybr789try
ybr789try
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Casos teste integração efetiva de algumas unidades
Casos teste integração efetiva de algumas unidades Casos teste integração efetiva de algumas unidades
Casos teste integração efetiva de algumas unidades
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 

Mehr von Manuel Menezes de Sequeira

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...Manuel Menezes de Sequeira
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...Manuel Menezes de Sequeira
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 

Mehr von Manuel Menezes de Sequeira (20)

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 

Kürzlich hochgeladen

COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 

Kürzlich hochgeladen (20)

COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 

Engenharia Software I Testes

  • 1. Engenharia do Software I Manuel Menezes de Sequeira DCTI, ISCTE-IUL Manuel.Sequeira@iscte.pt, D6.02 As apresentações desta série baseiam-se nas apresentações disponibilizadas por IanSommerville, tendo sido alteradas e adaptadas primeiro por  Anders Lyhne Christensen e finalmente por Manuel Menezes de Sequeira.
  • 2. Na aula anterior Verificação e validação Planeamento da verificação e validação Inspecções de software Análise estática automática Desenvolvimento de software em sala limpa 2009/2010 2 Engenharia do Software I
  • 3. Testes de software 2009/2010 3 Engenharia do Software I
  • 4. Sumário Testes de software Teste de sistemas Teste de componentes Desenho de casos de teste Automatização de testes 2009/2010 4 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 5 Engenharia do Software I
  • 6. Processo de testes Testes de componentes Teste de componentes individuais do programa Usualmente responsabilidade de desenvolvedor do componente (excepto por vezes em sistemas críticos) Testes derivados da experiência do desenvolvedor Testes de sistema Teste sistemas ou um subsistemas (compostos de componentes) Responsabilidade de equipa de testes independente Testes baseados em especificação do sistema 2009/2010 Engenharia do Software I 6
  • 7. Fases de teste 2009/2010 7 Engenharia do Software I Testes de componentes Testes de sistemas Desenvolvedor do software Equipa de testes independente
  • 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 Engenharia do Software I 8
  • 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 defeitos Descobre 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 Engenharia do Software I 9 Um teste que não descubra erros ou defeitos é inconclusivo.
  • 10. Processo de testes de software 2009/2010 10 Engenharia do Software I 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
  • 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 sistema Testar todas funcionalidades acessíveis em menus Testar combinações de funcionalidades acedidas no mesmo menu Quando for necessário introduzir dados do utilizador, testar todas funcionalidades com entradas correctas e incorrectas 2009/2010 Engenharia do Software I 11
  • 12. Testes de sistemas Envolvem integrar componentes de modo a formarem sistema ou subsistema Podem envolver testar incremento a fornecer a cliente 2009/2010 Engenharia do Software I 12
  • 13. Fases dos testes de sistemas 2009/2010 Engenharia do Software I 13
  • 14. Testes de integração Envolve Construir sistema a partir de componentes Ir testando para revelar problemas gerados por interacção entre componentes Integração deve ser incremental para simplificar localização de erros 2009/2010 Engenharia do Software I 14
  • 15. Tipos de integração 2009/2010 Engenharia do Software I 15
  • 16. Testes de integração incrementais 2009/2010 16 Engenharia do Software I T1 T1 T1 A A A T2 T2 T2 B B B T3 T3 T3 C C T4 T4 D T5 Sequência de testes 3 Sequência de testes 2 Sequência de testes 1
  • 17. Abordagens aos testes 2009/2010 Engenharia do Software I 17 Descendente Facilita validação arquitectónica, i.e., descoberta de erros na arquitectura do sistema Permite demonstração limitada do sistema mesmo em fases iniciais do desenvolvimento Observação dos testes pode exigir código extra Ascendente Facilita muitas vezes implementação dos testes Observação dos testes pode exigir código extra
  • 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 Engenharia do Software I 18
  • 19. Testes de caixa preta 2009/2010 19 Engenharia do Software I Dados de entrada do teste Entradas causadoras de anomalias Sistema Resultados de saída do teste Resultados reveladores de defeitos
  • 20. Linhas de orientação para testes Escolher entradas Gerando todas as mensagens de erro Levando 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 Engenharia do Software I 20 Dicas para equipa escolher testes que revelem defeitos no sistema.
  • 21. Cenário de teste Na 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 Engenharia do Software I 21
  • 22. Testes de sistema 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. Testar mecanismo de pesquisa usando diferentes interrogações a diferentes fontes de informação para verificar se mecanismo de facto encontra documentos. Testar mecanismo de apresentação para verificar se informação é apresentada correctamente. Testar mecanismo de pedido de autorização para descarregamento. Testar resposta via correio electrónico que indica que documento descarregado está disponível. 2009/2010 Engenharia do Software I 22
  • 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 Engenharia do Software I 23
  • 24. Diagrama de sequência da recolha de dados meteorológicos 2009/2010 24 Engenharia do Software I sd data collection : CommunicationsController : WeatherStation : WeatherData getReport() acknowledge() getReport() getSummary() acknowledge()
  • 25. Testes de desempenho Testes de lançamento podem envolver teste a propriedades emergentes Testes de desempenho Testes de fiabilidade Planear série de testes com carga crescente até desempenho ficar inaceitável 2009/2010 Engenharia do Software I 25
  • 26. Testes de estresse Sujeitam sistema a cargas superiores a máximo previsto tentando revelar defeitos Aferem comportamento em caso de falha Sistema não pode falhar catastroficamente Falhas 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 Engenharia do Software I 26
  • 27. Testes de componentes ou testes unitários Processo de testar isoladamente componentes individuais É processo de teste de defeitos 2009/2010 Engenharia do Software I 27
  • 28. Componentes ou unidades (de modularização) Rotinas Funções e procedimentos isolados Operaçõ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 Engenharia do Software I 28
  • 29. Testes de classes (de objectos) Cobertura completa de classe por testes implica Testar todas as operações Alterar e inspeccionar todas as propriedades Fazer objectos passar por todos os estados representativos Fazer 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 Engenharia do Software I 29
  • 30. Interface de estação meteorológica 2009/2010 30 Engenharia do Software I WeatherStation + reportWeather() + calibrate(instruments) + test() + startup(instruments) + shutdown(instruments)
  • 31. Teste da estação meteorológica Necessário definir casos de teste para reportWeather() calibrate() test() startup() shutdown() 2009/2010 Engenharia do Software I 31
  • 32. Teste da estação meteorológica Usando modelo de transição de estados Identificar sequências de transição a testar Identificar sequências de eventos que as causem Exemplo Esperando Calibrando Testando Transmitindo Esperando 2009/2010 Engenharia do Software I 32
  • 33. Testes de interfaces Detectar anomalias devidas a Erros de interface Suposições inválidas acerca das interfaces Especialmente importantes em desenvolvimento orientado para objectos (classes de objectos definidas pela interface) 2009/2010 Engenharia do Software I 33
  • 34. Testes de interfaces 2009/2010 34 Engenharia do Software I Casos de teste B A C
  • 35. Tipos de interfaces 2009/2010 Engenharia do Software I 35
  • 36. Erros de interface 2009/2010 Engenharia do Software I 36
  • 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 Engenharia do Software I 37
  • 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 Abordagens Testes baseados em requisitos Testes de partição Testes estruturais 2009/2010 Engenharia do Software I 38
  • 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 Engenharia do Software I 39 Princípio geral da engenharia de requisitos
  • 40. Requisitos do LIBSYS 2009/2010 Engenharia do Software I 40
  • 41. Testes do LIBSYS 2009/2010 Engenharia do Software I 41
  • 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 Engenharia do Software I 42
  • 43. Partições de equivalência 2009/2010 43 Engenharia do Software I entradas válidas entradas inválidas Sistema saídas
  • 44. Partições de equivalência 2009/2010 44 Engenharia do Software I 3 11 4 10 7 Número de entradas Menos de 4 Entre 4 e 10 Mais de 10 9 999 100 000 10 000 99 999 50 000 Valores da entrada Menos de 10 000 Entre 10 000 e 99 999 Mais de 99 999
  • 45. Especificação de rotina de pesquisa procedure Search(element : inElement_T; sequence : inarray (Integer range <>) ofElement_T; elementFound : inout Boolean; index : inout 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 (elementFoundand sequence(index) = element) or -- the element is not in the sequence (notelementFoundand not (exists i, sequence'FIRST <= i <= sequence'LAST, sequence(i) = element)); 2009/2010 Engenharia do Software I 45 Artificial…
  • 46. Partição das entradas Entradas Que não cumprem a pré-condição Que 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 Engenharia do Software I 46
  • 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 Engenharia do Software I 47
  • 48. Partição das entradas 2009/2010 Engenharia do Software I 48
  • 49. Casos de teste 2009/2010 Engenharia do Software I 49
  • 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 Engenharia do Software I 50
  • 51. Testes estruturais 2009/2010 51 Engenharia do Software I Dados de teste derivar testar Código do componente Resultados do teste
  • 52. Especificação de rotina de pesquisa binária procedureSearchIncreasing(element : inElement_T; sequence : inarray (Integer range <>) ofElement_T; elementFound : inout Boolean; index : inout Integer) is with Pre => -- the sequence is increasing (foralli, sequence'FIRST <= i < sequence'LAST, sequence(i) <= sequence(i + 1)), Post => -- the element is found and is referenced by index (elementFoundand sequence(index) = element) or -- the element is not in the sequence (notelementFoundand not (exists i, sequence'FIRST <= i <= sequence'LAST, sequence(i) = element)); 2009/2010 Engenharia do Software I 52
  • 53. Partição das entradas Entradas Que não cumprem a pré-condição Que 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 Engenharia do Software I 53
  • 54. Partições de equivalência 2009/2010 54 Engenharia do Software I Centro Primeiro Último Centro + 1 Centro - 1 Inferiores Superiores Classes de equivalência
  • 55. Casos de teste 2009/2010 Engenharia do Software I 55
  • 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 Engenharia do Software I 56
  • 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; else 14 right = middle - 1; } 15 } 2009/2010 Engenharia do Software I 57
  • 58. Grafo de fluxo da pesquisa binária 2009/2010 58 Engenharia do Software I 1 2 3 4 left > right 5 left <= right 6 comparison < 0 7 13 comparison == 0 comparison != 0 8 9 12 14 10 comparison > 0 11 15
  • 59. Caminhos independentes 2009/2010 59 Engenharia do Software I 1 1 1, 2, 3, 4, 5, 15 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 5, … 1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 5, … 2 2 3 3 4 4 left > right 5 5 left <= right 6 6 comparison < 0 7 7 13 13 comparison == 0 comparison != 0 8 9 12 8 9 12 14 14 10 comparison > 0 10 11 15 11 15
  • 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 Engenharia do Software I 60
  • 61. Automatização de testes Testar é caro Bancadas de trabalho para testes ajudam a automatizar o processo Bancadas de trabalho para testes Ferramentas para poupar tempo e custo dos testes Sistemas como JUnit suportam execução automática de testes Maioria são sistemas abertos, assim suportando especificidades das organizações Por vezes difíceis de integrar com bancadas de trabalho fechadas para desenho e análise 2009/2010 Engenharia do Software I 61
  • 62. Uma bancada de trabalho para testes 2009/2010 62 Engenharia do Software I Gerador de dados de teste Especificação Oráculo Dados de teste Gestor de testes Código fonte Programa em teste Resultados dos testes Previsões dos testes Analisador dinâmico Relatório de execução Simulador Comparador de ficheiros Relatório dos resultados dos testes Gerador de relatórios
  • 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 Engenharia do Software I 63
  • 64. A reter Testes Revelam erros em sistema Não demonstram ausência de erros De componentes: desenvolvedores De sistema: outra equipa De integração: incrementos a sistema De lançamento: sistema a fornecer Desenhados recorrendo a experiência e linhas de orientação 2009/2010 Engenharia do Software I 64
  • 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 Engenharia do Software I 65
  • 66. A ler IanSommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006 Capítulo 23 2009/2010 Engenharia do Software I 66