Teste de Software Introdução

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas III
Advertisements

Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Qualidade de Software Aula 4
ENGENHARIA DE SOFTWARE Garantia de Qualidade de Software
Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Integridade do Software
Adélia Barros Testes de Software Adélia Barros
Qualidade de Produto de Software
Fundamentos de Engenharia de SW
Débora da Silva Orientadora: Maria Inés Castiñeira
Engenharia de Software
Re-engenharia de Software
Confiança.
Engenharia de Software
Garantia de Qualidade do software
Tópicos Motivação para teste Por que algumas empresas não testam
Aula 8 Engenharia de Manutenção FMEA
A falta de Teste Aumento de falhas devido a podre qualidade;
Professor Sílder Lamas Vecchi
Adélia Barros Requisitos Adélia Barros
Aline Vasconcelos CEFET Campos
Qualidade de Software Aula 2
Processo Desenvolvimento de Software Tradicional
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
TSDD Teste de segurança durante o desenvolvimento.
Performance em aplicações web – Parte I
Testes – visão geral Vanilson Burégio.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Qualidade de Software Aula /1
MANUTENÇÃO DE SOFTWARE
Introdução aos conceitos de Teste de Software
Rational Unified Process
RUPinho Qualidade de Software
REDUNDÂNCIA POR SOFTWARE
Estudo de Caso: Técnicas de Teste como parte do Ciclo de Desenvolvimento de Software Aline Pacheco Patric Ribeiro Diego Kreutz.
Engenharia de Software
Fundamentos de Engenharia de SW
Prof. Esp. Fernando Barreto
Melhoria de Processos de Software
Fase de Elaboração: Fluxo de Requisitos
Qualidade de Software Aula 2 / 2014/1
Introdução à Qualidade
Engenharia de Software
Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção.
Otimizando sua TI, maximizando seus negócios
Engenharia de Software
PSBD II Projeto de Sistemas de Banco de Dados II
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
Marcio de Carvalho Victorino Processo Unificado. Unidade VI: Teste.
The Avengers Testers Team. Diraci Junior Trindade da Silva Analista de Qualidade CWI Software Coordenador do GUTS-rs
Teste de Software Conceitos iniciais.
Bruno Silva Desenvolvido a partir de
Qualidade de Software Aula 4
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Gestão de defeitos.
Introdução a Teste de Software
Engenharia de Software Teste de Software Parte 2 Prof. Luís Fernando Garcia
Qualidade no Desenvolvimento de Software Wolley W. Silva Baseado nas notas de aula dos professores Tatuo e Daisy.
Automação de Testes de Software
Modelagem de Processos de Negócio
Capítulo 10 – Qualidade de Produtos de Software Escrito por: Renata Araújo Vírginia Chalegre Apresentado por: Cleice.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Engenharia de Software
Qualidade de Produtos de Software
Sobre a Prime Control A Prime Control é um Centro de Excelência em Qualidade de Software. Nossa missão é desenvolver, aperfeiçoar e realizar serviços.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
TÉCNICAS DE ESTIMATIVAS
Estimativa, Teste e Inspeção de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Transcrição da apresentação:

Teste de Software Introdução Prof. Vanilson Burégio vanilson@gmail.com

Introdução Motivação Objetivos Definição Por que investir em testes? Agenda Introdução Objetivos Definição Motivação Por que investir em testes? Visão de negócio Visão técnica Quando parar de testar? Custo/benefício

Introdução

Evolução da profissão de Engenharia de Software Introdução Evolução da profissão de Engenharia de Software Software desempenha um importante papel em nossas vidas (social e econômica) Sistemas cada vez mais complexos Aumenta a pressão para foco em questões de qualidade SW de baixa qualidade devem ser rejeitados Falhas podem causar catástrofes (dependendo do SW) “O desenvolvimento de sistemas de software envolve uma série de atividades de produção onde oportunidades para injeção de falhas humanas são enormes” [Pressman, 2007]

Visão de teste como um processo O que pode ser considerado um defeito? Objetivo dos testes Visão de teste como um processo O principal objetivo de testar um software é encontrar, de forma sistemática, o maior número possível de defeitos embutidos durante a construção do software Visão de teste como um processo embutido no processo de desenvolvimento de software. Nesse processo temos: validação e verificação (vamos tratar sobre isso em uma próxima aula). O que pode ser considerado um defeito?

Exemplo Calculadora do Windows 5.000 – 5 = 0 O resultado não deveria ser 4095? Pode parecer confuso para alguns usuários... É um defeito? Por que? Por que não? O “.” (ponto) torna-se uma “,” (vírgula) que é automaticamente assumida como ponto decimal Para determinar se é um defeito é preciso verificar a especificação de requisitos do software

O que é teste de software? Teste de software é o processo de validação e verificação de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado. Corretude Completude É possível termos produto errado funcionando corretamente Ou ainda produto correto funcionando inadequadamente

Então... Se eu testei um software e não encontrei erros significa que meu software está correto, ou seja, livre erros! Verdadeiro ou Falso?

Por que investir em testes? Motivação Por que investir em testes?

Por que investir em testes? Visão de negócio: Custo

Por que investir em testes? Muitas empresas gastam de 30% a 40% do esforço do projeto em atividades de teste de software Razão: O custo de um Software com falha é muito alto! Mercado começa a ver teste de software como investimento e não mais como custo Crescente demanda por analistas de teste de software A Microsoft tem mais de 8.000 testadores de software em centros tecnológicos espalhados pelo mundo

Great Deal? Casos reais Hotel em Orlando Sistema 1 hora no ar com preço de diária a U$ 1,99 ao invés de U$ 19,90

Casos reais Prius Sedan – 2005 Carro híbrido construído pela Toyota; Erro no software do sistema de controle eletrônico Poderia fazer o carro entrar em modo de segurança; Neste modo, o carro poderia paralisar o sistema de controle de combustível; 75.000 proprietários notificados; Estima-se um prejuízo de U$ 2 bi a U$ 3 bi para correção do problema Fonte: http://www.spinsp.org.br/

Casos reais First National Bank of Chicago – Maio de 1996 Atualização do software dos caixas eletrônicos Nova codificação das mensagens não foi testada em todos os protocolos utilizados nos caixas Resultado: Crédito de aproximadamente U$ 925mi na conta de cada um dos 823 clientes; Aproximadamente U$ 800bi representou o maior erro bancário da história dos EUA Fonte: http://www.spinsp.org.br/

Quanto mais cedo menor o custo... Regra 10 de Myers Quanto mais cedo menor o custo... 1979: Glenford Myers ‘The Art of Software Testing’ Custo em correção de bugs cresce 10 vezes para cada estágio em que o projeto do software avança

Outras afirmações de Myers... Os testes unitários podem remover entre 30% e 50% dos defeitos dos programas Os testes de sistemas podem remover entre 30% e 50% dos defeitos remanescentes Dessa forma os sistemas podem ir para produção ainda com ~ 49% de defeitos Revisões de código podem reduzir entre 20% a 30% desses defeitos Defeitos encontrados no início do projeto custam menos para serem corrigidos

Retorno de Investimento... Quanto devo investir em teste de software? Quanto eu economizo ao investir em teste de software?

Retorno de Investimento... Rex Black O retorno do investimento será maior à medida que formos investindo em teste

Por que investir em testes? Visão técnica: ajudar a garantir qualidade dos produtos gerados

Qualidade de Software Qualidade relata o grau para o qual um sistema, componente ou processo atende à necessidade ou à expectativa do usuário/cliente.

Dimensões mínimas de qualidade para o teste de software Funcionalidade O sistema se comporta conforme esperado e definido nos seus requisitos Performance O sistema tem um tempo de resposta adequado e aceitável mesmo quando submetido a um volume alto de processamento Confiança O sistema é resistente a falhas durante a execução, isto é, não entra em “loop”, não interrompe a execução por falta de recursos, etc. Fonte: The Rational Unified Process, An Introduction

Então, no mínimo... Sistemas bem testados Devem atender Discussão Funcionalidade O sistema se comporta conforme esperado e definido nos seus requisitos Performance O sistema tem um tempo de resposta adequado e aceitável mesmo quando submetido a um volume alto de processamento Confiança O sistema é resistente a falhas durante a execução, isto é, não entra em “loop”, não interrompe a execução por falta de recursos, etc. Sistemas bem testados Devem atender Discussão Essas dimensões de qualidade são suficientes? Elas representam o mínimo necessário? Fonte: The Rational Unified Process, An Introduction

Categorias da qualidade no modelo FURPS+ (desenvolvido pela HP) Functionality (Funcionalidade): representa todo aspecto funcional do software Usability (Usabilidade): é o atributo que avalia a interface com o usuário [prevenção de erros; estética e design; ajudas (Help) e documentação; consistência e padrões] Reliability (Confiabilidade): refere-se a integridade, conformidade e interoperabilidade do software. Performance (Desempenho): avalia os requisitos de desempenho do software Supportability (Suportabilidade):testabilidade, adaptabilidade, manutenibilidade, compatibilidade, configurabilidade, instalabilidade, escalabilidade, localizabilidade entre outros FURPS+:O “+” do acrônimo engloba outros requisitos não-funcionais como requisitos de design, de implementação, físico, etc...

ISO 9126

Devemos testar indefinidamente até não encontrarmos nenhum erro? Quando parar de testar? Devemos testar indefinidamente até não encontrarmos nenhum erro?

Qual o momento certo de interromper o teste? Devido a pressões de prazo os testes são interrompidos muito antes do tempo necessário para a sua completa cobertura Devido a uma falta de controle ou a um excesso de preciosismo exagerou-se nos testes

Qual o momento certo de interromper o teste? Testes acima do necessário Testes abaixo do necessário

Custo do Teste Vs Custo da Falha

64% são erros de análise e projeto Custo dos defeitos Quality Assurance Institute 36% dos erros econtrados são provenientes da codificação 64% são erros de análise e projeto Maior parte dos erros estão nas fases onde corrigí-los custa muito menos

Por que os testes mudaram? CONCEITOS HISTÓRICOS Demonstração Detecção Prevenção Década de 60 de 70 de 90 Demonstração - Liberar sistema mesmo correndo riscos - Garantir que o produto funciona - Testes feitos pelos desenvolvedores Prevenção Trabalho nas especificações do software Gerar informações que previnem ou reduzem os defeitos Detectar defeitos nas fases iniciais Identificar riscos e problemas de forma a evitá-los no futuro Metodologias, processos, etc. Detecção Descobrir defeitos, erros e deficiências do software Definir capacidades e limitações Fornecer informações sobre a qualidade dos componentes, Sistemas e outros produtos

Perguntas