2_IntroducaoQualidade.pptx
Document Details
Uploaded by Deleted User
Full Transcript
TESTES E QUALIDADE DE SOFTWARE Prof: Flávio Dusse INTRODUÇÃO 1 CONTEÚDO DO DIA O que é Teste? O que é Software? O que é Teste de Software? Qualidade de Software. Dilema da Qualidade. Custos da Qualidade. 2 O QUE É...
TESTES E QUALIDADE DE SOFTWARE Prof: Flávio Dusse INTRODUÇÃO 1 CONTEÚDO DO DIA O que é Teste? O que é Software? O que é Teste de Software? Qualidade de Software. Dilema da Qualidade. Custos da Qualidade. 2 O QUE É TESTE? Etimologia da palavra: Do Inglês: Test Do Francês Antigo: Test que significa “pequeno recipiente usado na análise de metais preciosos” Do Latim: Testum “vaso de barro” 3 O QUE É TESTE? Dicionário Priberam: 4 O QUE É TESTE? Dicionário Michaelis: 5 O QUE É SOFTWARE? Etimologia da palavra: Do inglês: neologismo construído a partir de soft + ware (veio após o neologismo hardware): soft, do inglês antigo: sefte, sobre o germânico: *samfti, baseado no protogermânico: *samftijaz, associado ao prefixo *som-, mantendo o sentido de mole, macio, suavidade, amigável ou cordial; e ware, do inglês antigo: waru, mantendo o sentido de produtos manufaturados (mercadorias), conectado ao protogermânico: *waro, em alusão a objetos de natureza comercial, determinados pela raiz indo-europeia *wer- 6 O QUE É SOFTWARE? Dicionário Priberam: 7 O QUE É SOFTWARE? Dicionário Michaelis: 8 O QUE É SOFTWARE? Termo técnico traduzido para a língua portuguesa como suporte lógico e trata-se de uma sequência de instruções a serem executadas, na manipulação de um dado (informação) 9 O QUE É SOFTWARE? Nome dado ao comportamento exibido por uma sequência de instruções quando executada em um computador Produto desenvolvido pela Engenharia de Software e inclui não só o programa de computador, propriamente dito, mas, também, especificações e manuais 10 O QUE É SOFTWARE? 11 EXEMPLOS DE SOFTWARE Algoritmo da prova de Lógica de Programação Script com comandos shell Software de pequeno porte para cadastro de uma padaria Aplicativo de Celular Jogo Digital Editor de Texto Sistema Operacional Software de Controle de uma Usina Nuclear Etc.. 12 CLASSIFICAÇÃO DE SOFTWARE Classifica-se software de várias maneiras: Função Software de sistema Software de aplicativo Tamanho (em linhas de código) Pequeno Médio Grande 13 CLASSIFICAÇÃO DE SOFTWARE Propriedade proprietário gratuito livre Desenvolvimento Metodologia tradicional Metodologia moderna (ágil) Uso Geral Específico Etc.. 14 O QUE É TESTE DE SOFTWARE? Processo de execução de um software para determinar sua qualidade, ou seja, se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado 15 MAIS DETALHES Investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar, se relaciona com o conceito de verificação e validação Utiliza o software para encontrar falhas Realizado pelo Testador de Software Permeia outros processos da Engenharia de Software Envolve ações que vão do levantamento de requisitos de teste até a execução do teste propriamente dito e sua análise 16 MOTIVAÇÃO Falhas humanas no processo de desenvolvimento de software Processo de teste => garantia da qualidade de software Custos das falhas justificam processo de teste cuidadoso e bem planejado 17 OBJETIVOS Testar se todos os requisitos do sistemas foram corretamente implementados Assegurar, na medida do possível, a qualidade e corretude do software Reduzir custos de manutenção corretiva e retrabalho Satisfazer o cliente com o produto entregue 18 COMO É FEITO? 1. Rodar o código já escrito; 2. Revelar falhas em um produto; 3. Identificar as causas dessas falhas; 4. Corrigir essas causas pelo time de desenvolvimento antes da entrega final; 5. Aumentar qualidade. Natureza “destrutiva”, e não “construtiva” Aumento da qualidade de um produto por meio da exposição de seus problemas, porém antes de sua entrega ao usuário final 19 QUALIDADE DE SOFTWARE: MOTIVAÇÃO Software cada vez mais integrado a todas as atividades de nossas vidas Pessoas apostam: seu entretenimento, seu conforto, seus empregos, sua segurança, suas decisões e suas próprias vidas em softwares 20 QUALIDADE DE SOFTWARE: HISTÓRICO Década de 90 Governos e Empresas reconheciam que bilhões de dólares por ano eram desperdiçados em software que não apresentava as características e as funcionalidades prometidas preocupação que uma falha grave de software poderia inutilizar importantes infraestruturas, aumentando o custo em dezenas de bilhões 21 QUALIDADE DE SOFTWARE: HISTÓRICO 2001 Revista CIO: “Chega de desperdiçar $ 78 bilhões por ano” Matéria lamenta que “as empresas americanas gastavam bilhões em software que não fazia o que supostamente deveria fazer” https://www.cio.com/article/266381/enterpris e-software-software-development-let-s-stop- wasting-78-billion-a-year.html 22 QUALIDADE DE SOFTWARE: MOTIVAÇÃO Software de baixa qualidade aumenta: riscos tanto para o desenvolvedor quanto para o usuário riscos de insatisfação do usuário riscos de segurança riscos de descumprir alguma lei Código mal-empregado pode matar 23 O QUE É QUALIDADE DE SOFTWARE? Resposta: Difícil definir “isso é melhor que aquilo” ou seja isso tem mais qualidade O que é ser melhor? Resposta: Também, difícil definir Comunidade da Engenharia de Software se esforça ao máximo para desenvolver medidas precisas para a qualidade de software e algumas vezes é frustrada pela natureza subjetiva da atividade 24 O QUE É QUALIDADE? Etimologia da palavra: Do Latim: QUALITAS, “jeito de ser, qualidade”. É ligado a QUALIS, uma interrogação que indagava “qual? de que tipo? de que maneira?” 25 O QUE É QUALIDADE? Dicionário Priberam: 26 VISÕES DE QUALIDADE DAVID GARVIN, 1984 5 pontos de vistas Visão transcendental reconhece imediatamente (excelência), mas não consegue definir explicitamente Visão do usuário metas específicas de um usuário (satisfação das necessidades) Se um produto atende a essas metas, ele apresenta qualidade Visão do produto características inerentes (p. ex., funções e recursos) de um produto Visão do fabricante especificação original do produto Se o produto atende às especificações, ele apresenta qualidade Visão baseada em valor quanto um cliente estaria disposto a pagar (custo x preço) 27 QUALIDADE DE PROJETO PMBOK, 1996 Instituto PMI (1969) Documentar e padronizar práticas aceitas na gerência de projetos Guia Project Management Body of Knowledge (PMBOK), Conjunto de Conhecimentos sobre a Gestão de Projeto 1ª Versão 1996 7ª Versão 2021 28 CONCEITOS PROJETO Projeto: esforço temporário (início e fim definidos) realizado para criar um produto ou serviço ou resultado único. Gestão de Projetos: aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto para atender aos seus requisitos Escritório de Projetos: unidade dentro de uma organização que padroniza os processos de Gestão de Projetos (suporte, monitoramento) PMO (Project Manager Officer): profissional responsável por liderar, coordenar e supervisionar as atividades de um Escritório de Projetos 29 ou QUALIDADE DE DESIGN “ P r oj e t o ” Características que designers (projetistas) especificam para um produto: qualidade dos materiais e recursos, tolerâncias a falhas, e especificações de desempenho Aumentará a qualidade de projeto de um produto à medida que forem: usados materiais e recursos de alta qualidade, toleradas menos falhas, e especificados níveis de desempenho mais elevados 30 QUALIDADE DE DESIGN No desenvolvimento de software, engloba o grau de atendimento às funções e características especificadas no modelo de requisitos Qualidade de conformidade focaliza o grau em que a implementação segue o projeto e que o sistema resultante atende às: Necessidades do cliente (RF) metas de desempenho (RNF) 31 SATISFAÇÃO DO CLIENTE ROBERT GLASS, 1998 Tem que ser útil para os que utilizam (e para os que desenvolvem) Satisfação do usuário: produto compatível (escopo) + entrega dentro do orçamento (custo) + entrega dentro do prazo previsto (tempo) = boa qualidade 32 TRIÂNGULO DAS RESTRIÇÕES ou Trípl Rest i c e r iç ã o 33 BAIXA QUALIDADE DE SOFTWARE Causada pela “pressa” em lançar produtos sem testes adequados continua a ser um problema enorme para a indústria de software Custos desnecessários com manutenções (retrabalho) 34 QUEM É O CULPADO PELA BAIXA QUALIDADE DE SOFTWARE? Clientes culpam os Engenheiros de Software, argumentando que práticas descuidadas levam a um software de baixa qualidade Engenheiros culpam os clientes, argumentando que datas de entrega absurdas e um fluxo contínuo de mudanças os obrigam a entregar o software antes de ele estar completamente validado Quem está com a razão? Ambos – e esse é o problema 35 COMO GARANTINR QUALIDADE DE SOFTWARE, Gestão efetiva ENTÃO? estabelece a infraestrutura que dá suporte a qualquer tentativa de construir um produto de software de alta qualidade Aspectos administrativos (Gestão de Projetos) Atividades de Apoio (Gestão de Mudanças, segurança no trabalho, clima organizacional, etc..) Práticas de Engenharia de Software 36 FATORES DE QUALIDADE DE SOFTWARE McCALL, 1977 d e a li id n ib e ut an M 37 MODELO DE QUALIDADE DE SOFTWARE ISO/IEC 25010 ISO (International Organization for Standardization; em pt, Organização Internacional de Normalização), promove a padronização de produtos e serviços por meio de normas internacionais IEC (International Electrotechnical Commission; em pt, Comissão Eletrotécnica Internacional), trabalha para normatização de tecnologias elétricas e eletrônicas Em conjunto, desenvolvem as normas ISO/IEC e, especificamente a 25010, versa sobre qualidade de software Norma criada em 2011 e revisada em 2017 (substituiu a norma ISO/IEC 9126) https://iso25000.com 38 MODELO DE QUALIDADE DE SOFTWARE ISO/IEC 25010 Define dois modelos de qualidade O modelo da qualidade em uso descreve cinco características apropriadas quando consideramos utilizar o produto em um determinado contexto (p. ex., o uso do produto em uma plataforma específica por um ser humano) O modelo da qualidade de produto descreve oito características que enfocam a natureza dinâmica e a estática dos sistemas de computador 39 MODELO DE QUALIDADE ISO 25010 Modelo da qualidade em uso Eficácia. Precisão e completude com as quais os usuários atingem suas metas. Eficiência. Recursos despendidos para atingir completamente os objetivos dos usuários com a precisão desejada. Satisfação. Utilidade, confiança, prazer, conforto. Ausência de riscos. Mitigação de riscos econômicos, de saúde, de segurança e ambientais. Cobertura do contexto. Completude, flexibilidade. Qualidade de produto Adequação funcional. Completo, correto, apropriado. Eficiência de desempenho. Tempestividade, utilização de recursos, capacidade. Compatibilidade. Coexistência, interoperabilidade. Usabilidade. Adequabilidade, facilidade de aprendizagem, operabilidade, proteção contra erros, estética, acessibilidade. Confiabilidade. Maturidade, disponibilidade, tolerância a falhas, facilidade de recuperação. Segurança. Confidencialidade, integridade, responsabilidade, autenticidade. Facilidade de manutenção. Modularidade, reusabilidade, modificabilidade, testabilidade. Portabilidade. Adaptabilidade, instalabilidade, facilidade de substituição. 40 DILEMA DA QUALIDADE: Bertrand Meyer, 2003 “Se produzimos um sistema de software de péssima qualidade, perdemos porque ninguém vai querer comprá-lo. Se, por outro lado, gastamos um tempo infinito, um esforço extremamente grande e grandes somas de dinheiro para construir um software absolutamente perfeito, então ele levará muito tempo para ser concluído, e o custo de produção será tão alto que iremos à falência. Ou perdemos a oportunidade de mercado ou então simplesmente esgotamos todos os nossos recursos. Assim, os profissionais desta área tentam encontrar aquele meio-termo mágico em que o produto é suficientemente bom para não ser rejeitado logo de cara, como, por exemplo, durante uma avaliação, mas também não é objeto de tamanho perfeccionismo e trabalho que levaria muito tempo ou que seria demasiadamente caro para ser finalizado.” 41 DILEMA DA QUALIDADE Custo da falha para o negócio Custo Qualida de Momento de interromper 42 testes DILEMA DA QUALIDADE Dilema até mesmo para as maiores organizações de Engenharia de Software Alta qualidade tem um preço, mas baixa qualidade também Tentar alcançar o equilíbrio Esforço suficiente para produzir qualidade aceitável sem “enterrar” o projeto Software “bom o suficiente” X tempo de lançamento no mercado “A versão 2.0 será melhor” 43 CUSTO DA QUALIDADE: Boehm e Basili, 2001 44 CUSTOS DA QUALIDADE Custo de prevenção atividades de controle e garantia de qualidade das atividades realizadas durante o desenvolvimento do software Custo de avaliação atividades de testes e depuração Custo de falhas Internas atividades de correção e possíveis efeitos colaterais dessa correção Externas Reclamações, devoluções, substituições, suporte Má reputação, processos judiciais Não é considerado custo da qualidade e sim custo da falta de qualidade 45 AINDA SOBRE QUALIDADE DE SOFTWARE Se preocupar em qualidade após código gerado é um erro comum na Engenharia de Software “Fazer as coisas certas, da maneira certa e no momento certo” Antes a qualidade era responsabilidade do programador Foi surgindo a figura do profissional de SQA (Garantia de Qualidade de Software, em inglês Software Quality Assurance) 46 RESPONSABILIDADES DO SQA 47 PRÁTICA DE ENGENHARIA DE SOFTWARE Diversas práticas de Engenharia de Software podem aumentar a qualidade de um software: entender o problema a ser resolvido com Engenharia de Requisitos, criar um projeto adequado ao problema, codificar de acordo com o projeto e padrões previamente estabelecidos, Contudo, se destacam: Revisões Técnicas Testes de Software 48 PRÓXIMA AULA REVISÃO TÉCNICA 49