Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação de Software Prof. Ulisses Sperle Graça Conteúdo Programático Qualidade e Garantia de Qualidade de Software Testes de Verificação e de Validação Gerenciamento do Testeware Gestão das Ferramentas de apoio a Testes Documentação do Planejamento Relatório das Verificações e Validações O que iremos aprender? Bibliografia Utilizada Bibliografia Básica Garantia de Qualidade de Software; Alexandre BARTIÉ; Editora Campus; 2002 - 1a. edição. Engenharia de Software; Roger S. Pressman;6a edição Makron Books. Engenharia de Software - 8ª Edição Ian Sommerville; ed. Pearson. O que iremos aprender? Bibliografia Utilizada Bibliografia Complementar Engenharia de Software - 2ª Edição Pfleeger, Shari Lawrence; Ed. Pearson; O que iremos aprender? I – A Busca pela Qualidade Unidade I mar/2013 Avaliação de Software Prof. Ulisses Sperle Graça 6 O software tornou-se uma força motora. É o motor que dirige a tomada de decisão nos negócios. Serve de base à moderna investigação científica e às soluções de problemas de engenharia. É um fator chave que diferencia produtos e serviços modernos. Está embutido em sistemas de todas as naturezas: de transportes, médicos, de telecomunicações, militares, industriais, de escritório, etc. É inevitável na vida moderna. (Pressman) Introdução 7 Justificativa O desenvolvimento de sistemas envolve uma série de atividades em que as oportunidades de injeção de falhas são muito grandes. Estes erros podem começar a aparecer logo no início do processo, onde os objetivos podem estar erroneamente especificados, além de erros que venham a ocorrer em fases de projeto e desenvolvimento posteriores. Como a tolerância a software com erros /problemas é praticamente inexistente, o desenvolvimento de software é acompanhado por uma atividade de garantia de qualidade. A atividade de teste de software é um elemento crítico da garantia de qualidade de software e representa a última revisão de especificação, projeto e codificação. 8 Custo do Reparo 9 Curva de falhas para o software índice de falhas mudança curva real curva idealizada tempo 10 Em tempo de necessidade de tomada de decisão rápida e acertada, diminuição dos erros, necessidade de correção de rota dos negócios, devido à mudança do perfil do consumidor, novos produtos com novas tecnologias etc., os sistemas de informação assumem papel estratégico nas organizações. Eles passam a se constituir como recursos indispensáveis no registro dos dados das organizações, no tratamento desses dados, transformando-os em informação para apoio à gestão e na consolidação de tais informações, gerando conhecimento para a inovação e para antecipação frente à concorrência. Cenário Atual 11 Apesar do enorme avanço do desenvolvimento de software nos últimos anos, muitas empresas ainda estão presas a antigos paradigmas, o que impede seu amadurecimento no processo de desenvolvimento. Elas não percebem que seus ambientes estão cada vez mais complexos, o que exige posturas cada vez mais difíceis. Elas não percebem que implantar um processo de garantia da qualidade de software não é uma opção a ser estudada, mas parte de uma estratégia de sobrevivência em um mercado cada vez mais exigente e competitivo. Cenário Atual 12 Apesar de todas as organizações concordarem em apontar a TIC como um dos aspectos mais estratégicos para viabilizar o aprimoramento e inovação de seus produtos, o que se vê no processo de desenvolvimento de software é a ineficiência. O que se percebe é que, de uma forma geral, a indústria de software não está preparada para atender às rápidas necessidades do mercado porque não investiram no aperfeiçoamento de seus processos internos, ou seja, desconhecem um processo de engenharia de software. A Realidade dos Projetos de Software 13 Não existe qualquer garantia que a solução tecnológica será entregue dentro do prazo e a custos negociados. Estudos americanos apontam para a seguinte realidade: Mais de 30% dos projetos são cancelados antes de serem finalizados. Mais de 70% dos projetos falham nas entregas das funcionalidades esperadas. Os custos extrapolam em mais de 180% os valores originais. Os prazos excedem em mais de 200% os cronogramas originais. A Realidade dos Projetos de Software 14 Regras e Responsabilidades reduzem em 15% o número de defeitos; Procedimentos Formalizados reduzem em 25% o número de defeitos; Processos Repetitivos reduzem em 35% o número de defeitos; Controles e Medições reduzem em 30% o número de defeitos; A Realidade dos Projetos de Software 15 Para aprender a gerir, conceber, desenvolver, testar, avaliar a qualidade, avaliar a segurança, enfim, para atuar com Sistemas de Informação, o profissional de TIC deve conhecer melhor o que é Qualidade de Software. Qualidade de Software 16 Nossa Meta Produzir software de alta qualidade. A garantia de qualidade de software não é algo com a qual começamos a nos preocupar depois que o código foi gerado, e sim, ao longo de todo o processo de engenharia de software. Qualidade de Software é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos. Qualquer decisão tomada durante o processo de desenvolvimento pode comprometer sua qualidade final, sendo que seu produto final é exatamente o somatório de todas as decisões e realizações geradas durante o ciclo de desenvolvimento. Se desejamos produzir software de alta qualidade, é necessário investir em qualidade em todos os pontos do processo. Qualidade de Software 17 Dimensão de Qualidade de Software Garantia da Qualidade de Software + Qualidade do Processo Qualidade do Produto Testes que garantem a Qualidade do Processo Testes que garantem a Qualidade do Produto 18 Quando estamos diante do desafio de garantir a qualidade de um software, estamos estabelecendo uma cultura de não tolerância a erros, ou seja, estamos estruturando processos que possuam mecanismos de inibição e impedimento de falhas, possibilitando que os diversos artefatos gerados durante o ciclo de desenvolvimento tenham procedimentos que avaliam sua qualidade, possibilitando a identificação precoce de erros nesses artefatos. Artefatos qualquer saída produzida por uma atividade do ciclo de desenvolvimento. Uma das primeiras providências a serem tomadas é a de estabelecer um processo mínimo de desenvolvimento, pois não se pode garantir a qualidade de algo que não existe. Dimensão da Qualidade do Processo 19 Tem como objetivo principal garantir a qualidade do produto tecnológico gerado durante o ciclo de desenvolvimento. Todas as atividades que tenham por objetivo “estressar”! Telas e funcionalidades de um SI podem ser categorizadas na dimensão de garantia de qualidade do produto. Apesar de bastante empregadas, o grau de eficiência é assustadoramente baixo, o que incentiva as empresas a substituirem tais atividades pela correção de problemas. Principais motivos para a constatação deste fato: Falta de planejamento das atividades de testes, ausência de testes que validem funcionalidades antigas e ausência de um processo de automação dos testes e conferência. Dimensão da Qualidade do Produto 20 O processo de qualidade de software utiliza-se dos testes em todo o ciclo de desenvolvimento, de forma a garantir tanto o processode engenharia quanto o produto de software desenvolvido. Temos então o seguinte: Testes que garantem a qualidade do processo; Testes que garantem a qualidade do produto. Medindo a Qualidade através do Teste 21 A qualidade do processo pode ser medida através de testes aplicados em documentos (ou artefatos) gerados em cada fase do desenvolvimento. Desta forma é possível reconstruir o documento ou até mesmo reexecutar a fase inteira. São também conhecidos como testes estáticos, pois seus principais alvos são os documentos gerados durante todo o ciclo de desenvolvimento. Para avaliar a qualidade do processo é necessário garantir a qualidade dos documentos produzidos. Testes que garantem a qualidade do processo 22 A qualidade dos produtos pode ser garantida através de sistemáticas aplicação de testes nos vários estágios do desenvolvimento da aplicação. Também são conhecidos como testes de validação porque, quando construímos uma unidade d software, validamos a sua estrutura interna e sua aderência aos requisitos estabelecidos, como também avaliamos a sua integração com as demais unidades existentes e mais adiante validamos a solução tecnológica como um todo. São também conhecidos como testes de software ou testes dinâmicos. Testes que garantem a qualidade do produto 23 Teste é o processo de demonstrar que os defeitos não estão presentes. Teste é o processo de demonstrar que algo funciona corretamente. Teste é o processo de provar que determinadas coisas fazem o que deveriam fazer. Todos aqui enxergam os testes como uma forma de provar que tudo está funcionando conforme estabelecido, pois é mais fácil provar que algo funciona do que provar que algo não funciona, significando que teremos um esforço menor do que o contrário. E ainda temos o aspecto psicológico. Definição comum dos testes 24 Se o nosso objetivo é apenas provar que as coisas estão funcionando, significa que idealizaremos um conjunto de cenários favoráveis à utilização do software, mas se o nosso objetivo passa a ser o de provar a não adequação de algo, temos que ir além dos cenários positivos comuns e estender a nossa abstração identificando um maior volume de cenários positivos e ainda incluir um esforço adicional em identificar os cenários negativos. Perspectivas diferentes Visão do Analista de Sistemas Cenários Positivos Comuns Testes para provar que algo esta correto Testes para provar que algo não esta correto Visão do Analista de Testes Cenários Positivos Estendidos Cenários Negativos Estendidos 25 Objetivos da atividade de Testes A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro. Provar que algo não funciona. Um teste bem-sucedido é aquele que revela um erro ainda não descoberto. 26 Testes de software é o processo de executar o software de uma maneira controlada com o objetivo de descobrir diferenças entre o comportamento previsto e o comportamento observado. Pressman Teste é um processo sistemático e planejado que tem por finalidade única a identificação de erros. Bartié Definição correta de Testes 27 Testes podem ser usados para descobrir a presença de erros, mas não para mostrar a sua ausência. Um processo de qualidade, por melhor que seja , não conseguirá cobrir todas as infinitas combinações existentes em um ambiente de execução em tempo real. Defeito zero é praticamente inatingível. Quanto maior a extensão dos testes, maior será a qualidade do software e menor será o risco de erros, uma vez que mais cenários foram testados e validados. Os esforços de testes devem ser orientados pelo risco existente e pelo impacto que a falta de qualidade causará ao ambiente. (Custo, criticidade e complexidade). Limitações dos Testes 28 Os Pilares da Qualidade de Software Planejamento da Qualidade – processo destinado a identificar quais padrões de qualidade são relevantes para o projeto e determinar como satisfazê-los. Garantia da Qualidade – processo que engloba a estruturação, sistematização e execução de atividades que terão como objetivo garantir o adequado desempenho de cada etapa do desenvolvimento, satisfazendo os padrões de qualidade definidos no processo (testes de verificação e de validação). Controle de Qualidade – processo que se concentra no monitoramento e desempenho dos resultados do projeto para determinar se ele está atendendo aos padrões de qualidade no processo de desenvolvimento. 29 Onde devemos aplicar Qualidade? É comum cometermos o equívoco de acreditar que somente obteremos qualidade após a codificação de partes do produto a ser desenvolvido. Modelo Negócios Requisitos Análise e Modelagem Implemen tação Testes de Software Disponibili zação Tempo Esforço para obter Qualidade Qualidade não é uma fase do ciclo de desenvolvimento, é parte de todas as fases. 30 Onde estão os defeitos? Se nosso objetivo é reduzir ao máximo o nível de erros dentro do processo de desenvolvimento, devemos nos concentrar nas atividades iniciais. Desta forma, estaríamos identificando prematuramente os erros e impedindo que estes migrassem para outras fases. Outros 10% Implementação 7% Análise e Modelagem 27% Requisitos 56% Produzem retrabalho Aumentam os custos do projeto Dilatam os prazos de entrega Diminuem a produtividade Aumentam a insatisfação do cliente 31 Qualidade em todo o ciclo Se os erros estão concentrados nas fases iniciais do ciclo de desenvolvimento, devemos investir mais tempo nas atividades de especificação e modelagem. Isso faria com que muitos erros fossem eliminados em função de um levantamento mais criteriosos e bem estruturado, porém a redução de erros somente ocorrerá se em todas as etapas existir procedimentos que avaliem a qualidade do que foi produzido. 32 O custo da Qualidade de Software Todo o investimento realizado com a finalidade de um produto ou serviço atingir a qualidade desejada. Alocam todos os esforços relacionados aos custos das não conformidades (defeitos e suas correções) e todos os custos relacionados à manutenção da conformidade dos produtos e serviços a serem produzidos (esforço de garantir a qualidade). Custos da Conformidade Custos da não Conformidade Planejamento dos trabalhos Refugos Treinamentos (processos, técnicas e ferramentas) Retrabalhos Controles do processo de desenvolvimento Perdas financeiras e operacionais Testes (estáticos e dinâmicos) Atrasos nos cronogramas Revisões de documentos Ações corretivas Auditoria de processos Perdas de oportunidades 33 O custo da Qualidade de Software Custos da Conformidade : objetivo é a detecção e prevenção de erros. Tudo que é realizado com a intenção de melhorar e garantir o processo de desenvolvimento . Custos da não Conformidade: esforço para reparar falhas originadas no decorrer do processo de desenvolvimento. 34 O custo da propagação dos defeitos Segundo estudos de Myers, quanto maistarde descobrimos os erros, mais caros estes se tornam. Ele aplica a chamada “regra de 10” aos custos da correção dos erros. Isto significa que, quando um erro não é identificado, os custos de sua correção multiplicam- se por 10 para cada fase em que o erro migra. Requisitos Análise e Modelagem Teste de Software Código Produção Ciclo de Desenvolvimento de Software 1 100 10 1.000 10.000 35 O custo qualidade 35 Custo do Projeto Custo do Desenvolvimento Custo da Qualidade Custo da Não-Conformidade Custo da Conformidade Custo da Prevenção de Defeitos -Metodologias; -Treinamento; -Ferramentas; -Políticas; -Procedimentos; -Planejamento; -Análises; -Métricas; -Rel.de Qualidade; -Projetos de Inovação; Custo da Detecção de Defeitos -Revisões o Problema; o Requisitos; o Modelagem; o Planos de Testes; o Scripts de Testes; -Inspeção de Código; -Testes (1a. execução); -Auditorias; -Re-Revisões; -Re-Testes; -Correção oCódigo; oDocumentação; -Re-Estruturação; -Re-Distribuição versão; -Atrasos Cronogramas; -Falhas da Produção; ... Existe uma co-relação entre os custos da não-conformidade com os investimentos em prevenção de defeitos. Quanto maior estes investimentos, menor a incidência das não-conformidades.
Compartilhar