Engenharia de Software

Documentos relacionados
Introdução aos Testes de Software

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

Verificação e Validação (V & V)

Organização para Realização de Teste de Software Quando o teste se inicia há um conflito de interesses:

Organização para Realização de Teste de Software

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Engenharia de Software

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

ENGENHARIA DE SOFTWARE

1. A principal razão de dividir o processo de teste em tarefas distintas é:

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Introdução a Teste de Software

Teste de Software. Karen Frigo Busolin Novembro / 2010

Engenharia de Software. Teste de Software. Introdução. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Unidade 4 Teste na Implantação do Sistema

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

2. Quais dos seguintes testes não é um teste do tipo funcional?

Verificação e Validação

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

Introdução a Testes de Software. Ricardo Argenton Ramos

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Engenharia de Software II

Testes de Software. Prof: Sérgio Portari

Teste de Validação. ações visíveis ao usuário e entradas e saídas do sistema reconhecíveis pelo usuário

ISO/IEC 12207: Manutenção

Análise e Projeto de Sistemas

Verificação e Validação

Teste de Software Parte 2. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

SSC 0721 Teste e Validação de Software

Guia do Processo de Teste Metodologia Celepar

Testes de Software. Prof. Edjandir C. Costa

VERIFICAÇÃO & VALIDAÇÃO

Qualidade de software. Prof. Emiliano Monteiro

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

Capítulo 8 Teste de Software 1

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Análise e Projeto de Sistemas

Teste de Software Intermediário

Técnicas de teste de software

Métodos Ágeis e Programação Extrema (XP)

Teste de Software. Introdução. Teste de SW -Introdução. Verificação e Validação

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

- 8ª Lista de Exercícios -

Teste de Software Básico

ISO/IEC Processo de ciclo de vida

Verificação e Validação. Ewelton Yoshio Fabrício Araújo

Apêndice 1. Recomendações para testes de módulos

Falta Erro Falha. Motivação. Teste de Software. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro 6/6/11

TS02. Teste de Software INTRODUÇÃO AO PROCESSO DE TESTE DE SOFTWARE. COTI Informática Escola de Nerds

Engenharia de Software II

Estratégias de Testes Parte I

Plano de Testes VideoSystem

Teste de Software: conceitos, técnicas e benefícios

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes)

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

Introdução ao Teste de Software

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Engenharia de Software

4 Caso de Uso no Ambiente Oracle

Processos de Validação e Verificação do MPS-Br

Fundamentos de Teste de Software

3. Engenharia dos requisitos de software

Processos de software

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

Capítulo 8. Testes de Software Pearson. Todos os direitos reservados. slide 1

Engenharia de Software

Normas ISO:

Transcrição:

Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011

Verificação e Validação (V&V) S.L.Pfleeger (Cap.8 & 9) R.Pressman (Cap.13 & 14) I.Sommerville (Cap.22 & 23)

Introdução Verificação e Validação Atividade da Eng.Software na qual procura-se detectar a correção do software (que está sendo) produzido. Correção em que sentido? Ronaldo C. Oliveira 3

Introdução Tipos de Correção O produto atende sua especificação? Verificação Nos fizemos as coisas corretamente? O produto atende as necessidades do usuário? Validação Nos fizemos as coisas de acordo com o esperado? Ronaldo C. Oliveira 4

Teste Trata-se da verificação de um programa. O programa atende sua especificação? Quem deve testar um programa? Alguém que não seja programador ou autor do mesmo. Ronaldo C. Oliveira 5

Teste O que esperar de um teste? Erro! Qual é o produto de um teste? Um relatório com os resultados do teste. Vejamos o processo. Ronaldo C. Oliveira 6

Teste: o processo ref.:i.sommerville Ronaldo C. Oliveira 7

Um Teste É um conjunto de casos de teste. O que é um Caso de Teste (CT)? É uma escolha específica de um dado que irá servir para testar um programa. Estabeleça objetivos para o CT. Ronaldo C. Oliveira 8

Tipos de Teste Dois tipos: Falha Uso Visa determinar o comportamento do programa em condições normais de uso Desempenho Confiabilidade Os testes são realizados em diferentes etapas. Ronaldo C. Oliveira 9

Etapas de Teste Ronaldo C. Oliveira ref.: S.L.Pfleeger 10

Etapas de Teste Ronaldo C. Oliveira 11

Teste de Unidade Teste de Unidade é aquele que realizamos em programas. Há diferentes abordagens: inspeção caixa preta caixa branca caminho... Ronaldo C. Oliveira 12

Teste de Unidade: Inspeção Trata-se do exame do código-fonte antes do mesmo ser executado. O exame se dá por meio da leitura do código por parte de algumas pessoas envolvidas com o sistema. Ronaldo C. Oliveira 13

Teste de Unidade: Inspeção Inspecionar um código, em geral, envolve diversas reuniões. Os participantes de uma inspeção: moderador, autor, programadores experientes. Ronaldo C. Oliveira 14

Teste de Unidade: Inspeção ref.:i.sommerville Ronaldo C. Oliveira 15

Teste de Unidade: Inspeção A inspeção é conduzida por um moderador. Uma inspeção pode demandar até duas horas. Pode-se detectar: erros potenciais / lógica, eficiência de algoritmo e de uso de estrutura de dados, obediência a padrões. Ronaldo C. Oliveira 16

Teste de Unidade: Inspeção Que erros são encontrados? Erros de dados Iniciação de variáveis; min/max de arrays Erros de Controle condição correta? laço termina? Entrada/saída formato; estrutura de dados/registro Gerência de Memória uso de ponteiros: lista encadeada Ronaldo C. Oliveira 17

Teste de Unidade: Inspeção É um processo coletivo de detecção de erro. À medida em que é utilizado, a organização pode detectar padrões de erros. Processo efetivo para detecção de erros. Dificuldade de adoção. Ronaldo C. Oliveira 18

Teste de Unidade: Caixa Preta Procura verificar se o programa atinge seu(s) objetivo(s). Os Casos de Testes são construídos com base: RF(s); entrada saída; partições. Ronaldo C. Oliveira 19

Teste de Unidade: Caixa Preta Teste partições Trata-se do teste com determinados valores de dados que representam partições de equivalência quanto ao teste. Exemplo: Fila primeiro, meio, último Pesquisa binária menor, maior, menor < u <maior Ronaldo C. Oliveira 20

Teste de Unidade: Caixa Preta Procura detectar: funções incorretas ou omissas; erros de interface; erros de estrutura de dados ou de acesso a base de dados externa; erros de comportamento ou desempenho; erros de iniciação ou término. Ronaldo C. Oliveira 21

Teste de Unidade: Caixa Preta O teste de Caixa Preta foca no comportamento da unidade. Não é baseado no conhecimento de como a unidade foi implementada. Não tem como objetivo analisar o desempenho do programa. Ronaldo C. Oliveira 22

Teste de Unidade: Cx. Branca O Caso e Teste é construído com base no conhecimento do código da unidade. O testador lê o código e prepara um Caso de Teste que visa forçar a execução de um trecho do programa. Complementa o Teste de Caixa Preta. Ronaldo C. Oliveira 23

Teste de Unidade: Caminho É um tipo de Teste de Caixa Branca. Um grafo de caminhos do programa é derivado da lógica do mesmo. Estruturas que compõem o grafo: Sequência Condição Laço Ronaldo C. Oliveira 24

Teste de Unidade: Caminho Com base no grafo de caminhos, é possível determinar os caminhos independentes do programa. Qual é o grafo do programa a seguir? Ronaldo C. Oliveira 25

Teste de Unidade: Caminho 0 f() { 1 while (conda) { 2 atriba; 3 if (condb){ 4 atribb; 5 atribc; else 6 if (condc) 7 atribd; else 8 atribe; 9 } 10 } 11 } 6 7 8 9 1 2,3 10 11 4,5 Ronaldo C. Oliveira 26

Teste de Unidade: Caminho 6 7 8 9 1 2,3 10 11 4,5 Quais são os caminhos independentes? 1-11 1-2-3-4-5-10-1-11 1-2-3-6-8-9-10-1-11 1-2-3-6-7-9-10-1-11 Complementa o teste de caixa preta. Considerar a intensidade de V&V. Ronaldo C. Oliveira 27

Teste de Integração Trata-se do teste de várias Unidades trabalhando em conjunto. Qual é o principal erro que procura se detectar? Erro de interface. Há diferentes estratégias. Ronaldo C. Oliveira 28

Teste de Integração: Estratégias Botton-UP As unidades necessitam estar finalizadas. As unidades são integradas (uma a uma ou em pequenos grupos). Ronaldo C. Oliveira 29

Teste de Integração: Estratégias Top-Down As unidades não precisam estar finalizadas. Necessidade de códigos que substituam o que será ainda desenvolvido (stubs). Ronaldo C. Oliveira 30

Teste de Integração: Estratégias Big-Bang Junta tudo ao mesmo tempo. Ronaldo C. Oliveira 31

Teste de Integração: Considerações Botton-UP Retarda os testes de componentes importantes. Top-Down Necessidade de stubs. Big-Bang Utilizado quando o sistema tiver baixa complexidade. Ronaldo C. Oliveira 32

Teste de Integração: Abordagem Incremental Ampliar os testes a cada componente integrado. Considere os Teste de Regressão. Ronaldo C. Oliveira 33

Teste de Integração: Regressão Teste de Regressão Aplicar os testes realizados anteriormente à integração de um novo componente. Por quê? O novo componente pode apontar erro nos componentes testados anteriormente. O novo componente pode provocar um novo erro. Ronaldo C. Oliveira 34

Teste de Sistema Os elementos de software são integrados com o ambiente operacional (hardware, pessoas, etc.) e testados como um todo. Tem o objetivo de verificar o funcionamento da aplicação em um ambiente operacional similar ao de produção. O QUE É TESTADO: As funcionalidades definidas na especificação. Ronaldo C. Oliveira 35

Teste de Sistema Tipos de Teste de Sistema: Teste funcional: Testa a funcionalidade geral (regras de negócio) bem como as condições válidas e inválidas. Teste de recuperação de falhas: O software é forçado a falhar de diversas maneiras verificando a eficiência dos procedimentos de recuperação. Ronaldo C. Oliveira 36

Teste de Sistema Tipos de Teste de Sistema: Teste de desempenho: Verifica o tempo de resposta e processamento para diferentes configurações: número de usuários ou tamanho do BD. Geralmente ocorre paralelamente ao teste de estresse. Teste de segurança e controle de acesso: Verifica se todos os mecanismos de proteção de acesso e de dados estão funcionando. Ronaldo C. Oliveira 37

Teste de Sistema Tipos de Teste de Sistema: Teste de interfaces com o usuário: Verifica navegação, consistência e aderência a padrões Teste de volume (ou carga): Verifica se o sistema suporta altos volumes de dados. Ronaldo C. Oliveira 38

Teste de Aceitação O software é testado pelo usuário final Tem como objetivo demonstrar a conformidade com os requisitos definidos pelo usuário O QUE É TESTADO: Funcionalidades testadas seguindo a abordagem caixa preta. Ronaldo C. Oliveira 39

Teste de Aceitação Teste de Aceitação podem ser de dois tipos: Testes alfa: teste feito pelo usuário, geralmente nas instalações do desenvolvedor em ambiente controlado; desenvolvedor observa e registra falhas ou inconsistências. Testes beta: teste feito pelo usuário, geralmente em suas próprias instalações, em ambiente não controlado sem a supervisão do desenvolvedor Os erros detectados pelos usuários são reportados ao desenvolvedor para correção. Ronaldo C. Oliveira 40

Depuração É o processo de encontrar e corrigir os erros encontrados nos testes. Como realizar a depuração de um programa? Ronaldo C. Oliveira ref.:i.sommerville 41

Critério de Cobertura (ou critério de completude) Quando parar de testar? Como saber se o meu conjunto de testes é suficiente? O critério de cobertura nos permite avaliar uma bateria de testes. Ex: Cobertura de linha: Este critério requer que todas as linhas do programa sejam executadas ao menos uma vez durante os testes; Cobertura de aresta: Este critério requer que todos os caminhos lógicos do programa sejam percorridos durante os testes; Ronaldo C. Oliveira 42

Processo de Testes Testes são escritos e gerados ao longo do desenvolvimento. Precisamos definir: Quais atividades devem ser seguidas a fim de que o software seja testado? Quando essas atividades serão executadas? Quem são os responsáveis por cada atividade de teste? Isto é o que é define um processo de testes. Ronaldo C. Oliveira 43

Processo de Testes: Exemplo Ronaldo C. Oliveira 44

Processo de Testes: Exemplo Ronaldo C. Oliveira 45

Processo de Testes: Exemplo Ronaldo C. Oliveira 46

Processo de Testes: Exemplo Ronaldo C. Oliveira 47

Processo de Testes: Exemplo Ronaldo C. Oliveira 48

Processo de Testes: Exemplo 1 - Planejamento de testes: São definidos os requisitos a serem testados, e ocorre uma priorização dos requisitos selecionados. São estimados o cronograma das atividades de teste, o esforço e os recursos exigidos. 2 - Projeto dos testes: Os casos e os procedimentos de teste são escritos. 3 - Implementação dos testes: São desenvolvidos os componentes de teste. 4 - Execução dos testes: Pode ser realizada de forma manual e/ou automática. 5 - Avaliação dos testes: São verificados a cobertura dos testes, a tendência dos defeitos e se os critérios de sucesso foram atingidos. Ronaldo C. Oliveira 49