Baixe o app para aproveitar ainda mais
Prévia do material em texto
2021 | Déborah Moura Introdução a teste de software – Aula 03 deborahmatematica@gmail.com @deborahmouras Agenda 01 02 03 04 05 Porque é necessário testar? Termologias importantes Porque defeitos ocorrem? Custos da correção de um defeito Quando as falhas ocorrem podem levar a: 2 06 Causa das falhas 07 08 09 10 11 Custo para corrigir falhas Confiabilidade do software Termos de teste Considerações Vamos testar? 12 Exercícios Déborah Moura 2021 3 Exercícios - Gabarito ode concluir que não existem faltas adicionais no sistema. Déborah Moura 2021 4 O que é teste de Software? Normalmente pensamos em teste de software apenas como a execução do software em busca de defeitos. Encontramos na literatura algumas definições sobre o que é a atividade de testar: “Testar é analisar um programa com a intenção de descobrir erros e defeitos.” (Myers) “O teste de programas pode ser usado para mostrar a presença de defeitos, mas nunca para mostrar a sua ausência.” (Dijkstra) O teste é destinado a mostrar que um programa faz o que pretende fazer e para descobrir defeitos de programa antes de ser colocado em uso. (Sommerville) Déborah Moura 2021 5 O que é teste de Software? Encontramos na literatura algumas definições sobre o que é a atividade de testar: Testar é exercitar ou simular a operação de um programa ou sistema. Testar é confiar que um sistema faz o que se espera que ele faça e não faz o que se espera que não faça. Testar é medir a qualidade e funcionalidade de um sistema. Déborah Moura 2021 6 O que é teste de Software? De acordo com o Glossário de Terminologia de Engenharia de Software do IEEE (Instituto de Engenheiros Eletricistas e Eletrônicos): “Teste. É uma atividade no qual um sistema ou componente é executado sob condições especificadas, os resultados são observados ou gravados e uma avaliação é feita sobre algum aspecto do sistema ou componente”. Déborah Moura 2021 7 Objetivos de teste O objetivo principal dos testes é reduzir a probabilidade da ocorrência de um defeito quando o software estiver em produção, minimizando os riscos para o negócio e garantindo que as necessidades do cliente estão sendo atendidas. Demonstrar para o desenvolvedor e o cliente que o software atenda os seus requisitos. Para descobrir situações em que o comportamento do software está incorreto, indesejável, ou não estejam em conformidade com as suas especificações. Déborah Moura 2021 8 Objetivos de teste Resumindo: Encontrar defeitos. Ganhar confiança sobre o nível de qualidade. Prover informações para tomada de decisão. Prevenir defeitos. Déborah Moura 2021 9 Objetivos de teste, lembre-se: Os testes não podem demonstrar que um software é livre de defeitos ou que ele se comportará conforme especificado em todas as circunstancias. É sempre possível que um teste ignorado possa descobrir mais problemas no Sistema. Os testes podem somente mostrar a presença de erros, não sua ausencia. Déborah Moura 2021 Estratégias de teste Segundo Pressman, muitas estratégias de teste já foram propostas na literatura, muitas delas apresentam as seguintes características. Para executar um teste eficaz, proceder a revisões técnicas eficazes. Fazendo isso, muitos erros serão eliminados antes do começo do teste; O teste começa no nível de componente e progride em direção à integração do Sistema computacional como um todo; Déborah Moura 2021 10 Estratégias de teste O teste é feito pelo desenvolvedor de software e (para grandes projetos) por um grupo independente de teste; O teste e a depuração são atividades diferentes, mas a depuraçao deve ser associada a alguma estratégia de teste. Diferentes técnicas de teste são apropriadas para diferentes abordagens de engenharia de software e em diferentes pontos no tempo; Déborah Moura 2021 11 Estratégias de teste O teste é feito pelo desenvolvedor de software e (para grandes projetos) por um grupo independente de teste; O teste e a depuração são atividades diferentes, mas a depuraçao deve ser associada a alguma estratégia de teste. Déborah Moura 2021 12 13 Abordagem tradicionais de teste A abordagem tradicional dos testes consiste em mostrar que o sistema: Faz o que deve fazer Não faz o que não deve fazer Déborah Moura 2021 14 Abordagem tradicionais de teste A melhor abordagem é mostrar que o sistema não funciona: Faz o que não deve fazer Não faz o que deve fazer Déborah Moura 2021 15 Paradoxo* do teste A proposta do teste é encontrar defeitos. Porém, ao encontrar defeitos a confiança do software é destruída. Não se pode ter confiança em algo que não está funcionando. Proposta do teste de software “Destruir a confiança do software”. Estabelecer confiança. Déborah Moura 2021 * Pensamento, proposição ou argumento que contraria os princípios básicos e gerais que costumam orientar o pensamento humano 16 Os sete princípios do teste Déborah Moura 2021 Princípio 01 Teste demonstra a presença de defeitos O Teste pode demonstrar a presença de defeitos, mas não pode provar que eles não existem. O Teste reduz a probabilidade que os defeitos permaneçam em um software, mas mesmo se nenhum defeito for encontrado, não prova que ele esteja perfeito. 17 Os sete princípios do teste Déborah Moura 2021 Princípio 02 Teste exaustivo é impossível Testar tudo (todas as combinações de entradas e pré-condições) não é viável, exceto para casos triviais. Em vez do teste exaustivo, utilizamos os riscos e prioridades para dar foco aos esforços de teste. 18 Os sete princípios do teste Déborah Moura 2021 Princípio 02 EX: Imagine um sistema com 20 telas: Em média 4 menus por tela; Em média 3 opções por menu; Em média 10 campos com tela; 2 tipos de entrada por campo; Aproximadamente 100 valores possíveis 19 Os sete princípios do teste Déborah Moura 2021 Princípio 03 Teste antecipado A atividade de teste deve começar o mais breve possível no ciclo de desenvolvimento do software e deve manter o foco em objetivos definidos. 20 Os sete princípios do teste Déborah Moura 2021 Princípio 04 Agrupamento de defeitos Um número pequeno de módulos contém a maioria dos defeitos descobertos durante o teste antes de sua entrega ou exibe a maioria das falhas operacionais. 21 Os sete princípios do teste Déborah Moura 2021 Princípio 05 Paradoxo do Pesticida Testes que são repetidos várias vezes não encontram novos defeitos após um determinado momento. Para superar este “paradoxo do pesticida”, o caso de teste precisa ser frequentemente revisado e atualizado. 22 Os sete princípios do teste Déborah Moura 2021 Princípio 06 Teste depende do contexto Testes são realizados de forma diferente conforme o contexto. Por exemplo, softwares de segurança crítica são testados diferentemente de um software de comércio eletrônico. 23 Os sete princípios do teste Déborah Moura 2021 Princício 07 A ilusão da ausência de erros Encontrar e consertar defeitos não ajuda se o sistema construído não atende às expectativas e necessidades dos usuários. 24 O papel do teste de Software Déborah Moura 2021 Como o teste de software pode nos ajudar a construir softwares melhores? Testes rigorosos em documentos e no próprio software podem reduzir os riscos de problemas acontecerem em produção. Menos defeitos = menor chance do software falhar Testes propiciam o aumento da qualidade do software à medida que defeitos encontrados são corrigidos. Teste ajudam a garantir a qualidade. Ajuda a aumentar receitas das empresas desenvolvedoras de software (redução de retrabalho). Redução de retrabalho devido a correção de erros (bugs). 25 Teste x Qualidade Teste é igual a qualidade? Se testarmos o software, teremos qualidade? Qualidade: É o grau até o qual um componente, sistema ou processo atende aos requisitos especificados e/ou às necessidades e expectativas do usuário ou consumidor. Déborah Moura 2021 26 Teste x Qualidade Déborah Moura 2021 Se a necessidade é ter um carro para ir ao trabalhodiariamente, qual dos produtos tem a melhor qualidade? X 27 Teste x Qualidade Déborah Moura 2021 Podemos dizer então que: O teste por si só não constrói a qualidade de software. O teste pode fornecer confiança na qualidade do software. Testes bem executados reduzem os riscos de falhas. 28 Teste x Qualidade Déborah Moura 2021 Podemos dizer então que: O teste tem a função de ajudar a medir a qualidade: À medida em que os defeitos encontrados sejam corrigidos; Avaliando os requisitos funcionais do software; Avaliando requisitos não-funcionais (exemplo: confiabilidade, usabilidade, portabilidade, etc.). 29 Teste x Qualidade Déborah Moura 2021 De acordo com a ISO-IEC-Standard 9126-1, os seguintes fatores pertencem a qualidade de software: Funcionalidade. Confiabilidade. Usabilidade. Eficiência. Manutenibilidade. Portabilidade. 30 Teste x Qualidade Déborah Moura 2021 Funcionalidade(Functionality) Contém todas as características que descrevem o sistema. As características são, geralmente, descritas por um comportamento de entrada e saída Ou uma reação a uma dada entrada. O objetivo do teste é provar que toda característica no sistema foi implementada da maneira especificada. 31 Teste x Qualidade Déborah Moura 2021 Confiabilidade Descreve a habilidade de um sistema continuar funcionando sob uso específico num período específico. Usabilidade Muito importante para sistemas interativos. Usuários não aceitarão um sistema que é de difícil manuseio. Eficiência (Efficiency) Testes de eficiência medem o tempo necessário e o consumo de recursos para a completude das tarefas. 32 Teste x Qualidade Déborah Moura 2021 Manutenibilidade (Maintainability) Conjunto de atributos que evidenciam o esforço necessário para fazer modificações especificadas no software. Portabilidade(Portability) Conjunto de atributos que evidenciam a capacidade do software de ser transferido de um ambiente para outro. Sub-características: Adaptabilidade Facilidade de instalação Conformidade 33 Teste x Qualidade Déborah Moura 2021 Avaliando a Qualidade do Teste 34 Custo da não qualidade Estatísticas de mercado apontam que para cada R$ 1,00 investido no desenvolvimento e manutenção de software, entre R$ 2,00 e R$ 3,00 são gastos com re-trabalho. Não se sabe o percentual de re-trabalho e quanto isso custa O software ou parte dele tem de ser refeito Não se sabe, através de métricas claras e precisas, quais são as principais áreas de produção que geram re-trabalho A empresa não toma iniciativas para corrigir os problemas nas áreas de produção ineficientes Déborah Moura 2021 35 Custo da não qualidade Existem alguns tipos de sistemas onde: As falhas causam prejuízos diretos, ou As falhas causam a perda de confiança do público (usuários) Déborah Moura 2021 36 Vale a pena investir em testes ? Reduz em 70% o índice de re-trabalho de correção de falhas em produção; Reduz em 50% do tempo de homologação de uma nova versão; Aumenta em 90% o índice de falhas detectadas antes da produção; Diminui em 95% os Abends* em produção; Aumenta a abrangência dos testes Déborah Moura 2021 37 Por que testar é necessário? ode concluir que não existem faltas adicionais no sistema. Déborah Moura 2021 38 Por que testar é necessário? ode concluir que não existem faltas adicionais no sistema. Déborah Moura 2021 Porque é provável que o software possua defeitos; Para descobrir a confiabilidade do software; Porque falhas podem custar muito caro; Demonstrar as conformidades com os requisitos; Para assegurar que as necessidades dos usuários estejam sendo atendidas; Para reduzir custos; Para avaliar a qualidade do software; 39 Por que testar é necessário? ode concluir que não existem faltas adicionais no sistema. Déborah Moura 2021 Não devemos testar: Para provar que o software não tem defeitos; Apenas porque os testes estão incluídos no plano de projeto; Exercício ode concluir que não existem faltas adicionais no sistema. Déborah Moura 2021 40 https://quizizz.com/join/quiz/5ffc993f9003d1001b7daa36/start?studentShare=true .MsftOfcThm_Accent2_Fill { fill:#7500C0; }
Compartilhar