Engenharia de Software II



Documentos relacionados
Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software

Engenharia de Software II

Engenharia de Software II

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Qualidade de Software. Profa. Cátia dos Reis Machado

Princípios do teste de software

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Fundamentos em Teste de Software. Vinicius V. Pessoni

Técnicas de Teste de Software

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza

Engenharia de Software II

Tipos de teste de software

Teste de Software Estrutural ou Caixa Branca. Disciplina de Engenharia de Software prof. Andrey Ricardo Pimentel

Engenharia de Software II

Construção e Implantação de Software II - Unidade 3- Estratégias Para Testes de Software. Prof. Pasteur Ottoni de Miranda Junior

LEVANTAMENTO DE REQUISITOS. Lílian Simão Oliveira

PROFESSOR: CRISTIANO MARIOTTI

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

Atividade da gerência da qualidade

Projeto de Sistemas I

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Engenharia de Software II

EVOLUÇÃO DE SOFTWARE

Engenharia de Software II

Sistemas Operacionais. Prof. André Y. Kusumoto

Engenharia de Software I

ENGENHARIA DE SOFTWARE I

Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Testes Orientação Visão Conceitual em Testes Versão 0.3

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

IES-300. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Engenharia de Requisitos

Teste de software. Definição

ENGENHARIA DE SOFTWARE

REQUISITOS. Prof. Msc. Hélio Esperidião

IC-UNICAMP IC-UNICAMP

Estratégias de Teste de Software. Fabrício de Sousa

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

Teste de Software. Profa. Cátia dos Reis Machado

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Engenharia de Software

Engenharia de Software II

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Engenharia de Software II

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Engenharia de Software II

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Plano de projeto. Cronograma e Controle

GARANTIA DA QUALIDADE DE SOFTWARE

Tabela de roteamento

Introdução à Computação

Testes de Software Fases. Baseado em notas de aula da profa. Eliane Martins

Gestão da Tecnologia da Informação

3 Qualidade de Software

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

NORMA ISO/IEC Isac Aguiar isacaguiar.com.br

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

ISO/IEC 12207: Gerência de Configuração

Processos de Desenvolvimento de Software

Testar os programas para estabelecer a presença de defeitos no sistema. Teste de Software. Teste de defeitos. Objetivos. Tópicos

QUALIDADE DO SOFTWARE (PRODUTO)

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

Engenharia de Software II

Gerenciamento de Configuração de Software

Engenharia de Software II

Perguntas frequentes do Samsung Drive Manager

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

Exame de Fundamentos da ITIL

Projeto 2.47 QUALIDADE DE SOFTWARE WEB

O que é Gerenciamento de Redes de Computadores? A gerência de redes de computadores consiste no desenvolvimento, integração e coordenação do

ARQUITETURA DE SOFTWARE

Atividades da Engenharia de Software GERENCIAMENTO DA CONFIGURAÇÃO DE SOFTWARE. Atividades da Engenharia de Software. Processo de Desenvolvimento de

EA960 Redundância e Confiabilidade: RAID

NORMAS ISO E SUA IMPORTÂNCIA NA PRODUÇÃO DE SOFTWARE

Transcrição:

Engenharia de Software II Aula 8 http://www.ic.uff.br/~bianca/engsoft2/ Aula 8-17/05/2006 1

Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14 do Pressman) Métricas para software Gestão de projetos de software: conceitos, métricas, estimativas, cronogramação, gestão de risco, gestão de qualidade e gestão de modificações Reengenharia e engenharia reversa Aula 8-17/05/2006 2

Estratégia Global 1. Teste de unidade Focaliza cada componente individualmente, garantido que funciona. Faz uso intensivo de técnicas que exercitam caminhos específicos na estrutura de controle. 2. Teste de integração Focaliza o pacote de software completo e trata da verificação do programa como um todo. Faz uso de técnicas de projeto de casos de teste que enfocam as entradas e saídas, além de exercitar caminhos específicos. 3. Teste de validação Critérios de avaliação estabelecidos durante a análise de requisitos são avaliados. 4. Teste de sistema Testa a combinação do software com outros elementos do sistema (como hardware, pessoal e bancos de dados). Verifica se a função/desempenho global do sistema é alcançada. Aula 8-17/05/2006 3

Teste de Validação Começa no fim do teste de integração. Componentes individuais já foram exercitados. O software está completamente montado como um pacote. Erros de interface já foram descobertos e corrigidos. A validação é bem-sucedida quando o software funciona do modo esperado pelo cliente. As expectativas razoáveis são as definidas no documento de Especificação de Requisitos do Software. O documento deve conter uma seção de Critérios de Validação. Aula 8-17/05/2006 4

Critérios do Teste de Validação A validação é conseguida por intermédio de uma série de testes que demonstram conformidade com os requisitos. Os testes são projetados para garantir que: Os requisitos funcionais sejam satisfeitos. Os requisitos de desempenho sejam alcançados. A documentação esteja completa e correta. Usabilidade e outros requisitos sejam satisfeitos. Exemplo: transportabilidade, compatibilidade, etc. Caso haja desvios, uma lista de deficiências é criada. Raramente erros descobertos nesse estágio podem ser corrigidos antes da entrega. É necessário negociar com o cliente para estabelecer um método de resolução de deficiências. Aula 8-17/05/2006 5

Validação: Revisão da Configuração Também chamada de auditoria. Garante que todos os elementos da configuração de software tenham sido adequadamente desenvolvidos e catalogados. Código-fonte e executável. Documentação. Ferramentas que foram usadas no desenvolvimento. Aula 8-17/05/2006 6

Validação: Testes de Aceitação É impossível para um desenvolvedor prever como o cliente usará o software. Instruções de uso podem ser mal interpretadas. Uma saída que parecia clara para o desenvolvedor pode ser ininteligível para o usuário. Por esse motivo, testes de aceitação devem ser definidos pelo cliente e conduzidos pelo usuário final, a fim de validar todos os requisitos do cliente. Pode ser conduzido ao longo de um período de semanas ou meses. Aula 8-17/05/2006 7

Validação: Testes Alfa e Beta Se o software é desenvolvido como um produto a ser usado por vários clientes, é difícil realizar testes de aceitação com cada um. Nesse caso usa-se os testes alfa e beta. Teste alfa: conduzido na instalação do desenvolvedor com os usuários finais. O desenvolvedor olha sobre o ombro dos usuários para registrar erros e problemas de uso. Teste beta: conduzido nas instalações dos usuários finais. O desenvolvedor não está presente. O cliente registra todos os problemas (reais ou imaginários) e os relata ao desenvolvedor em intervalos regulares. Depois que os problemas são corrigidos, o produto é liberado para toda base de clientes. Aula 8-17/05/2006 8

Teste de Sistema O software é apenas um elemento de um sistema maior. Outros elementos do sistema: hardware, pessoal, dados, sistema operacional. Uma série de testes de integração e validação do sistema devem ser conduzidos. Tipos de teste de sistema: Teste de recuperação. Teste de segurança. Teste de estresse. Teste de desempenho. Aula 8-17/05/2006 9

Teste de Recuperação É um teste de sistema que força o software a falhar de diversos modos e verifica se a recuperação é adequadamente realizada. Se a recuperação é automática: A reinicialização e a recuperação dos dados são avaliados. Se a recuperação requer intervenção humana: O tempo médio para o reparo é avaliado para determinar se está dentro de limites aceitáveis. Aula 8-17/05/2006 10

Teste de Segurança Verifica se os mecanismos de proteção incorporados a um sistema vão de fato protegê-lo de: Hackers que tentam invadí-lo por esporte. Ex-empregados que tentam invadí-lo por vingança. Indivíduos que tentam invadí-lo em busca de ganhos pessoais ilícitos. O testador deve desempenhar o papel do indivíduo que deseja invadir o sistema. Deve tentar obter senhas de funcionários externos. Deve tentar tomar o sistema negando serviço a outros. Deve tentar causar erros no sistema para invadí-lo durante a recuperação. Com tempo e recursos suficientes, o bom teste de segurança vai acabar invadindo o sistema. Aula 8-17/05/2006 11

Teste de Estresse São projetados para submeter programas a situações anormais e verificar se eles ainda funcionam. Executa o programa de tal forma que demande recursos em quantidade ou freqüência anormais: A velocidade de entrada de dados pode ser muito aumentada ou diminuída. A memória do sistema pode ser diminuída. Casos de teste que podem causar busca excessiva de dados residentes em disco são criados. Aula 8-17/05/2006 12

Teste de Desempenho É projetado para testar o desempenho do software durante a execução, no contexto de um sistema integrado. Requerem instrumentação de hardware e software. É necessário medir de modo preciso a utilização de recursos (memória, processamento). Importante para sistemas de tempo real e embutidos. Aula 8-17/05/2006 13

Técnicas de Teste de Software Fornecem diretrizes sistemáticas para projetar casos de testes que: Exercitam a lógica interna e as interfaces de cada componente de software. Exercitam os domínios de entrada e saída do programa para descobrir erros na função, no comportamento e no desempenho do programa. Aula 8-17/05/2006 14

Características de Testabilidade As seguintes características levam a um software testável e devem ser levadas em conta quando ele é construído: Operabilidade: o software deve ser projetado e implementado com qualidade. Observabilidade: variáveis devem ser visíveis ou consultáveis durante a execução. Controlabilidade: variáveis devem poder ser controladas diretamente pelo engenheiro de teste. Decomponibilidade: módulos independentes podem ser testados independentemente. Simplicidade: o conjunto de características deve ser o mínimo necessário para atender os requisitos. Estabilidade: o software se recupera bem de falhas. Compreensibilidade: a documentação técnica é acessível instantaneamente, bem organizada, específica, detalhada e precisa. Aula 8-17/05/2006 15

Características do Teste Um bom teste deve ter os seguintes atributos: 1. Alta probabilidade de encontrar um erro. O testador deve entender o software. As diferentes classes de falha devem ser investigadas. 2. Não deve ser redundante. Tempo e recursos para testes são limitados. Ex.: testar várias senhas inválidas diferentes é redundante. 3. Não deve ser muito simples nem muito complexo. Cada teste deve buscar encontrar um tipo de erro. Aula 8-17/05/2006 16

Testes Caixa-Preta e Caixa-Branca Testes Caixa-Preta São conduzidos na interface do software, sem preocupação com a estrutura lógica interna do software. Testes Caixa-Branca São baseados em um exame rigoroso do detalhe procedimental. Caminhos lógicos e colaborações entre componentes são testadas. Entrada Entrada Software Software Saída Saída Aula 8-17/05/2006 17

Teste Exaustivo (impraticável!) À primeira vista pode parecer que um teste caixa-branca bastante rigoroso levaria a programas 100% corretos. Apenas seria necessário gerar casos de teste para exercitar toda a lógica do programa. Exemplo: programa de 100 linhas de código C com dois loops aninhados (de tamanho variável), com quatro if-then-else dentro do loop interno. 10 14 caminhos de execução possíveis. 3.170 anos para testar todos os caminhos em um computador atual. Aula 8-17/05/2006 18

Técnicas de Teste Caixa-Branca Usando métodos de teste caixa-branca, podemos derivar casos de teste que: 1. Garantam que todos os caminhos independentes de um módulo sejam executados pelo menos uma vez. 2. Exercitem todas as decisões lógicas de seu lado verdadeiro e falso. 3. Executem todos os ciclos (loops) nos seus limites e dentro de seus intervalos operacionais. 4. Exercitem as estruturas de dados internas. Tipos de teste caixa-branca: Teste de Caminho Básico Teste de Estrutura de Controle Aula 8-17/05/2006 19