Você está na página 1de 28

Revisão Técnica

Disciplina: Engenharia de Software

Ricardo Choren

Incluindo material de R. Pressman e B.R. Maxim; I. Sommerville;


2021
Errar é humano...
descobrir o próprio erro é que normalmente é mais difícil.
Roger Pressman
Introdução
• A atividade de revisão começou como uma ferramenta
de controle gerencial para se fazer revisão de progresso

• O progresso não pode ser avaliado simplesmente


contando-se o número de tarefas finalizadas
– É preciso estabelecer um meio de avaliar também a qualidade
do trabalho executado
Introdução
• Surgiram então as revisões que avaliam aspectos
técnicos do produto
– Há tipos de erros introduzidos por membros da equipe que são
mais difíceis de serem vistos pelo próprio membro (ex.
completude de requisitos, padronização)

• Qualquer artefato pode ser submetido a uma revisão


técnica
– Esta atividade pode ser executada desde as primeiras fases do
processo de desenvolvimento de software
Introdução
• O papel da revisão
– Apontar os aperfeiçoamentos necessários no produto
– Confirmar onde aperfeiçoamentos não são necessários
– Uniformizar o trabalho técnico desenvolvido pela equipe

• Em outras palavras, visa


– Aumentar a qualidade (em diversos fatores)
– Revelar erros (antes que virem defeitos)
Revisão técnica
• Cabe ao engenheiro de software planejar
– Os checkpoints dentro do processo de desenvolvimento onde a
revisão deve ser aplicada
– O que deve ser revisado, por meio de checklists sobre o que
deve ser coberto em uma revisão
– Quem participa e quem, efetivamente, deve fazer a revisão
– As informações necessárias antes da revisão
Revisão técnica
• Cabe ao engenheiro de software planejar (cont.)
– As condições de termino ou os critérios que devem ser
satisfeitos para que a revisão termine
– Os resultados esperados de uma revisão
– Os registros e documentos a serem produzidos pela revisão
técnica
Revisão técnica
E por que tudo isso?

• Revisões técnicas (junto com a gerencia de configuração)


são o principal mecanismo para avaliar o progresso do
desenvolvimento de maneira confiável
• Revisões técnicas proporcionam retorno já nas primeiras
fases, prevenindo que erros mais sérios surjam
– São capazes de revelar lotes ou classes de erros de uma só vez
Revisão técnica
E ainda tem o aspecto humano...

• Revisões técnicas trazem à luz as capacidades de cada


indivíduo envolvido no desenvolvimento
• Servem também para treinar e educar os participantes,
visando ter efeito positivo no desenvolvimento de
competências dos desenvolvedores
Revisão técnica
No entanto, a revisão técnica é uma ação custosa...

• Que possui efeitos em cascata que justificam seu


investimento
– Principal objetivo é encontrar erros durante o processo, a fim
de que não se tornem defeitos depois da liberação
– Assim, age na descoberta precoce de erros, evitando sua
propagação para etapas posteriores do processo
Revisão técnica
Estimativa de custo para remoção de erros [Boehm, 2000]
Revisão técnica
• Para entender esse aumento no custo, é preciso enxergar
como os defeitos se propagam em um processo de
desenvolvimento...
Revisão técnica
• Um esquema de propagação sem revisão
Revisão técnica
• Um esquema de propagação com revisão
Revisão técnica
• Exemplificando o ganho...
O processo de revisão
• Tarefas do processo de revisão
– Planejamento e preparação
• Selecionar os artefatos a serem revisados
• Preparar checklist de revisão
– Reunião
• Encontrar os erros (verificar itens do checklist nos artefatos)
– Correção e verificação
• Fazer a correção dos erros encontrados
• Fazer nova revisão para verificar a remoção dos defeitos encontrados
O processo de revisão
• Fatores para geração de itens de checklist – Especificação
– As informações do domínio estão completa, consistente e
corretamente indicados?
– As interfaces internas e externas estão definidas corretamente?
– Os modelos de dados refletem os objetos, seus atributos e
relacionamentos corretamente?
– Todos os requisitos podem ser mapeados para o nível de
sistema?
– Os requisitos não funcionais podem ser alcançados, dadas as
restrições impostas por outros elementos do sistema?
– Os critérios de validação estão completamente especificados?
O processo de revisão
• Fatores para geração de itens de checklist – Projeto
preliminar
– Os requisitos do software estão refletidos na arquitetura?
– As estruturas de dados são consistentes com o domínio da
informação e com os requisitos do software?
– As interfaces dos módulos e dos elementos externos do
sistema foram definidos?
– Fatores relacionados a requisitos não funcionais foram
explicitamente considerados?
– Considerou-se a facilidade de manutenção?
O processo de revisão
• Fatores para geração de itens de checklist – Projeto
detalhado
– A interface está consistente com o projeto da arquitetura?
– As estruturas de dados locais estão propriamente definidas?
– Os detalhes de implementação são adaptáveis para a
linguagem de programação alvo?
– O algoritmo realiza a função desejada e está logicamente
correto?
– A complexidade logica é razoável?
– Considerou-se a facilidade de manutenção?
O processo de revisão
• Fatores para geração de itens de checklist – Codificação
– A tradução do projeto detalhado para código foi feita de
maneira correta?
– Existem erros de digitação?
– As convenções de utilização da linguagem foram seguidas?
– O código está de acordo com padrões de estilo, comentários e
introdução do modulo?
– Tipos e declarações de dados estão corretos?
– Considerou-se a facilidade de manutenção?
O processo de revisão
• Fatores para geração de itens de checklist – Validação e
Verificação
– Foram estabelecidos critérios para validação dos requisitos do
software?
– O plano de teste foi seguido e o cronograma de teste foi
explicitamente determinado?
– Os recursos e ferramentas de teste estão disponíveis?
– O critério de teste foi estabelecido e seguido?
• Casos de teste foram identificados e guardados?
• Valores limites foram testados?
– Foi estabelecido um mecanismo para manter os registros do teste?
– Testes de características emergentes foram definidos e executados?
Revisão técnica
• Revisão formal
– Segue todas as atividades do processo de revisão
– Normalmente conta com uma equipe de engenheiros
dedicados a tarefas de controle de qualidade
– Seu processo é burocrático (mais lento e custoso) e por isto
deve ter sua aplicação bem fundamentada
– Só vale a pena se a gestão do projeto entende claramente que
há vantagens em seu uso
– Isto e: base histórica e medição...
Revisão técnica
• Revisão informal (também chamada de teste de mesa)
– Verificação rápida de um artefato
– Normalmente tem eficácia menor que uma revisão técnica
formal, mas é mais rápida (menos burocrática e custosa) e, se
bem realizada, também é capaz de encontrar erros
– Tarefas de revisão informal são comuns em processos que
seguem metodologias mais ágeis
Métricas de revisão
• Tamanho do artefato
– Medida do tamanho do artefato (T) feita com contagem
preestabelecida, usando-se sempre a mesma ordem de
grandeza para artefatos do mesmo tipo)

• Esforço (pessoa/hora)
– De preparação (EP): esforço relacionado a tarefa de
Planejamento e Preparação
– De avaliação (EA): esforço relacionado a tarefa de Reunião
– De reformulação (ER): esforço relacionado a tarefa de Correção
e Verificação
Métricas de revisão
• Erros encontrados
– Erros secundários (ErrS ): quantidade de erros secundários (que
exigem menos tempo para serem corrigidos que um limite
preestabelecido) encontrados nas revisões
– Erros graves (ErrG ): quantidade de erros graves (que exigem
mais tempo para serem corrigidos que um limite
preestabelecido) encontrados nas revisões
Métricas de revisão
• Erros encontrados em uma revisão
– Errtot = ErrS + ErrG
• Esforço total de uma revisão
– Erev = EP + EA + ER
• Densidade de erros por unidade de artefato
– D = Errtot / T
• Esforço médio de revisão por erro encontrado
– Emed = Erev / Errtot
Revisão técnica
Algumas dicas finais...

• Coloque a atividade de revisão no cronograma


• Inicie a introdução da atividade de revisão com partes
não críticas do software
– Revisores necessitam de tempo para aprender a revisar
– Revisados necessitam de tempo para entender que são
revisados e evitar a introdução de defeitos
• Se possível, participe das revisões iniciais
• Valorize a equipe (por poucos defeitos ou com
treinamentos)

Você também pode gostar