A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio

Apresentações semelhantes


Apresentação em tema: "Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio"— Transcrição da apresentação:

1 Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio

2 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 Agenda

3 Introdução

4 Introdução 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] 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)

5 Objetivo dos testes 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 O que pode ser considerado um defeito? Visão de teste como um processo

6 Exemplo Calculadora do Windows – 5 = 0 O resultado não deveria ser 4095? Pode parecer confuso para alguns usuários... 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 É um defeito? Por que? Por que não?

7 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. CorretudeCompletude É possível termos produto errado funcionando corretamente Ou ainda produto correto funcionando inadequadamente

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

9 Motivação Por que investir em testes?

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

11 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 testadores de software em centros tecnológicos espalhados pelo mundo Muitas empresas gastam de 30% a 40% do esforço do projeto em atividades de teste de software

12 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 Great Deal? Great Deal?

13 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; proprietários notificados; Estima-se um prejuízo de U$ 2 bi a U$ 3 bi para correção do problema Fonte:

14 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:

15 Regra 10 de Myers 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 Quanto mais cedo menor o custo...

16 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

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

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

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

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

21 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

22 Então, no mínimo... 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 Sistemas bem testados Devem atender Discussão Essas dimensões de qualidade são suficientes? Elas representam o mínimo necessário?

23 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...

24 ISO 9126

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

26 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

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

28 Custo do Teste Vs Custo da Falha

29 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

30 Por que os testes mudaram? Década de 60 Década de 70 Década de 90 Demonstração - Liberar sistema mesmo correndo riscos - Garantir que o produto funciona - Testes feitos pelos desenvolvedores 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 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. CONCEITOS HISTÓRICOS

31 Perguntas


Carregar ppt "Teste de Software Introdução Prof. Vanilson Burégio Prof. Vanilson Burégio"

Apresentações semelhantes


Anúncios Google