Gerência e Qualidade de Software - Aula 06 - Técnica de revisão

Gerência e Qualidade de Software - Aula 06 - Técnica de revisão

Técnicas de Revisão em Gerência de Qualidade de Software

O que é Revisão?

  • A revisão é uma técnica utilizada para avaliar produtos e artefatos de software, buscando identificar defeitos.
  • Pode ser aplicada tanto para garantir a qualidade quanto para verificação e validação dos padrões definidos.
  • As revisões são tradicionalmente estáticas, onde o produto é analisado sem execução, mas também podem ser dinâmicas.

Tipos de Revisão

  • Exemplos de revisões dinâmicas incluem inspeções de usabilidade, onde a execução do produto é necessária para avaliação.
  • A revisão pode ser aplicada a diversos artefatos além do software, como modelos e manuais criados durante o desenvolvimento.

Processo Normal de Desenvolvimento Sem Revisão

  • Durante cada atividade no desenvolvimento, defeitos podem surgir. Por exemplo, falhas na definição dos requisitos podem gerar novos defeitos.
  • Defeitos amplificados ocorrem quando um erro em um requisito afeta várias partes do software durante as fases subsequentes.

Amplificação de Defeitos

  • Um fator amplificador pode aumentar o número total de defeitos identificados; por exemplo, se 50% dos defeitos são amplificados, isso resulta em mais problemas ao longo do processo.
  • Mesmo sem revisão, alguns defeitos podem ser descobertos naturalmente ao trabalhar com documentos.

Impacto da Revisão no Desenvolvimento

  • Com a implementação da revisão, a taxa de correção dos defeitos aumenta significativamente antes das próximas atividades.

Inspeção e Revisão no Desenvolvimento de Software

O Conceito de Inspeção

  • A inspeção é um processo de revisão proposto em 1986, que visa melhorar o desenvolvimento de software. Inicialmente, há um custo maior devido à necessidade de revisões adicionais nas atividades iniciais.

Vantagens da Revisão

  • Apesar do custo inicial elevado, a revisão permite entregar o produto final mais rapidamente. A ideia é que os esforços na fase inicial se pagam ao longo do processo.
  • Durante uma revisão, múltiplos defeitos podem ser identificados simultaneamente. Isso contrasta com compiladores que geralmente detectam apenas o primeiro erro encontrado.
  • A revisão pode revelar problemas ocultos em testes, onde um defeito pode mascarar outro. Esse efeito compensatório não ocorre durante a execução normal dos testes.

Características da Revisão

  • A revisão é aplicável mesmo para artefatos incompletos; não é necessário ter todo o código funcionando para realizar uma inspeção eficaz.
  • Além disso, a revisão permite avaliar características subjetivas de qualidade que são difíceis de medir por outros meios.

Treinamento e Aprendizado

  • As revisões também servem como uma oportunidade de treinamento para a equipe. Membros menos experientes podem aprender ao revisar códigos ou modelos desenvolvidos por colegas.

Limitações e Desvantagens da Revisão

  • Embora as revisões sejam eficazes na detecção de defeitos (60% dos erros), elas não substituem os testes unitários (30% dos erros). Problemas específicos como temporização são mais difíceis de identificar apenas através da revisão.
  • O custo adicional das atividades de revisão deve ser considerado, pois envolve tempo e recursos para treinar a equipe adequadamente.

Dificuldades na Avaliação da Eficácia

  • Medir as vantagens das revisões pode ser desafiador sem um histórico claro sobre os problemas existentes antes do processo.

Dinâmica das Reuniões de Revisão

  • As reuniões de revisão devem ser conduzidas com cuidado para evitar defensividade entre os participantes. O foco deve estar no produto e não nas pessoas envolvidas no desenvolvimento.

Tipos de Revisão

  • Existem diferentes tipos de revisões: informais (como conversas casuais ou programação em duplas) e formais (com estrutura definida envolvendo grupos maiores).

Revisões Informais

  • Exemplos incluem discussões informais ou reuniões diárias onde o progresso é avaliado coletivamente.

Revisões Formais

  • As revisões formais têm etapas bem definidas: preparação prévia, condução da reunião e atividades pós-revisão.

Revisão Técnica e Inspeção em Desenvolvimento de Software

Processo de Revisão

  • O processo de revisão envolve a leitura e análise de artefatos, com a necessidade de marcar uma data e preparar o ambiente para a reunião.
  • Após a revisão, é importante acompanhar se os defeitos identificados foram corrigidos. A gravidade dos defeitos pode determinar a necessidade de novas reuniões.

Tipos de Revisões Formais

  • Existem diferentes tipos de revisões formais definidas por normas, como revisão gerencial, técnica e auditoria.
  • O foco principal da discussão é na revisão técnica e inspeção.

Inspeção: Definição e Características

  • A inspeção é um tipo específico de revisão formal, proposta por Fagan em 1986, que visa encontrar defeitos através da análise detalhada.
  • Originalmente aplicada à análise de código, a inspeção pode ser utilizada em outros artefatos também.

Elementos da Inspeção

  • Uma característica fundamental da inspeção é o uso de uma checklist para identificar defeitos comuns durante a análise.
  • Outra característica importante é a classificação dos defeitos encontrados, permitindo um histórico das falhas identificadas.

Preparação para Inspeções

  • Durante as inspeções, os participantes devem se preparar previamente lendo os artefatos com atenção usando a checklist.
  • Na reunião, não é o autor do artefato que lê; isso garante uma visão imparcial sobre o material inspecionado.

Outros Tipos de Revisão Técnica

Execução Passo-a-Passo

  • Outro método discutido envolve executar passo-a-passo o produto do software durante as revisões técnicas.
  • Esse método pode ser realizado coletivamente (teste em mesa), onde várias pessoas analisam o código enquanto anotam observações.

Sugestões e Treinamento

  • Ao contrário da inspeção que não sugere soluções, esse método permite discutir melhorias no código encontrado durante as análises.
  • Além disso, essa abordagem serve como treinamento para equipes sobre funcionamento interno dos algoritmos.

Conclusão sobre Revisões em Software

Video description

Engenharia de Computação - 16º Bimestre Disciplina: Gerência e Qualidade de Software – EES - 201 Univesp - Universidade Virtual do Estado de São Paulo Professor responsável pela disciplina: Fábio Levy Siqueira Playlist da disciplina: https://www.youtube.com/playlist?playnext=1&list=PLxI8Can9yAHcmjsfjFdo_xJ3xhLiczzLC