SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
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
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best PracticesStephen Ritchie
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaElias Nogueira
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoAricelio Souza
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizadoselliando dias
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
 
Palestra ALATS SP - FIAP Teste de Software
Palestra ALATS SP - FIAP  Teste de SoftwarePalestra ALATS SP - FIAP  Teste de Software
Palestra ALATS SP - FIAP Teste de SoftwareElias Nogueira
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Istqb 2-소프트웨어수명주기와테스팅-2015
Istqb 2-소프트웨어수명주기와테스팅-2015Istqb 2-소프트웨어수명주기와테스팅-2015
Istqb 2-소프트웨어수명주기와테스팅-2015Jongwon Lee
 
Product Quality: Metrics, Verification, Validation, Testing
Product Quality: Metrics, Verification, Validation, TestingProduct Quality: Metrics, Verification, Validation, Testing
Product Quality: Metrics, Verification, Validation, TestingReem Alattas
 
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
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testingpingkapil
 
Aula 2 controle da qualidade total
Aula 2  controle da qualidade totalAula 2  controle da qualidade total
Aula 2 controle da qualidade totalinstitutocarvalho
 

What's hot (20)

Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
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
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best Practices
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto Java
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
Palestra ALATS SP - FIAP Teste de Software
Palestra ALATS SP - FIAP  Teste de SoftwarePalestra ALATS SP - FIAP  Teste de Software
Palestra ALATS SP - FIAP Teste de Software
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Istqb 2-소프트웨어수명주기와테스팅-2015
Istqb 2-소프트웨어수명주기와테스팅-2015Istqb 2-소프트웨어수명주기와테스팅-2015
Istqb 2-소프트웨어수명주기와테스팅-2015
 
Product Quality: Metrics, Verification, Validation, Testing
Product Quality: Metrics, Verification, Validation, TestingProduct Quality: Metrics, Verification, Validation, Testing
Product Quality: Metrics, Verification, Validation, Testing
 
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
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testing
 
Testing Center of Excellence - Keytorc Approach
Testing Center of Excellence -  Keytorc ApproachTesting Center of Excellence -  Keytorc Approach
Testing Center of Excellence - Keytorc Approach
 
Aula 2 controle da qualidade total
Aula 2  controle da qualidade totalAula 2  controle da qualidade total
Aula 2 controle da qualidade total
 

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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...
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 

More from 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
 

More from 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
 

Recently uploaded

Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 

Recently uploaded (20)

Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 

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