Revisões de Software Parte 2 Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2008/2 Departamento de Informática Universidade Federal do Espírito Santo Agenda Revisões de Software Técnicas de Leitura de Software Técnicas de Leitura de Orientadas a Objetos Tópicos Especiais - Qualidade de Software 2008/2 2 Revisão de Software Visa assegurar que o produto produzido em uma fase possui qualidade suficiente para ser usado em outra fase. Processo de Revisão: Planejamento da Revisão Detecção e Registro de Defeitos Correção de Defeitos Tópicos Especiais - Qualidade de Software 2008/2 3 Abordagens para a Detecção de Erros Ad-hoc: Quando não se define nenhuma orientação de como se proceder para encontrar defeitos. Uso de listas de verificação (checklists) É a abordagem normalmente utilizada. Muito dependente das habilidades e conhecimento dos revisores. Não provê uma abordagem sistemática para a detecção de defeitos, mas indica alguns defeitos recorrentes que devem ser verificados, normalmente identificados pela experiência da organização em revisões. Técnicas de Leitura de Software Inspeções Guiadas:”teste” de modelos de análise e projeto OO (McGregor e Sykes, 2001). Tópicos Especiais - Qualidade de Software 2008/2 4 Técnicas de Leitura de Software Uma técnica de leitura de software é uma série de etapas ou heurísticas preparada para a análise individual de um artefato (ou conjunto de artefatos) que permite alcançar a compreensão necessária para uma determinada tarefa. Técnicas de leitura aumentam a eficiência dos revisores individuais por fornecerem diretrizes a serem utilizadas durante a fase de detecção de defeitos. Agregam melhores práticas para detecção de defeitos em um procedimento que pode ser seguido e repetido. (Travassos in (Rocha et al., 2001)) Tópicos Especiais - Qualidade de Software 2008/2 5 Técnicas de Leitura de Software Leitura Baseada em Perspectiva (PerspectiveBased Reading – PBR): revisão de requisitos (Shull et al., 2000). Técnicas para Leitura de Projetos Orientados a Objetos (Object-Oriented Reading Techniques – OORT): projeto orientado a objetos, incluindo requisitos e diagramas da orientação a objetos (Travassos et al., 1999). Tópicos Especiais - Qualidade de Software 2008/2 6 Leitura Baseada em Perspectiva (PBR) Revisão de Requisitos Explora a observação da importância das informações nos requisitos para diferentes formas de utilização (perspectivas), tais como analistas, projetistas e testadores. Cada um desses “usuários” da especificação de requisitos considera diferentes aspectos dos requisitos como importantes para seu trabalho. Tópicos Especiais - Qualidade de Software 2008/2 7 Leitura Baseada em Perspectiva (PBR) Solicita-se a cada revisor o emprego de uma perspectiva distinta, relacionada a um dos potenciais usuários da especificação. Usos principais de uma especificação de requisitos: Como descrição das necessidades do cliente Como base para o projeto do sistema Como base para o projeto de casos de teste do sistema Além de encontrar defeitos, visa criar representações que possam ser usadas como base para a criação futura de artefatos mais específicos e que possam revelar quão bem os requisitos conseguem apoiar as tarefas subseqüentes. Tópicos Especiais - Qualidade de Software 2008/2 8 Leitura Baseada em Perspectiva (PBR) Para apoiar a detecção de defeitos, a PBR fornece um conjunto de questões para diferentes tipos de erros (omissão, fato incorreto, inconsistência, etc). Ex.: Questões sob ponto de vista do testador: O requisito faz sentido levando em consideração o que você sabe sobre a aplicação ou o que está especificado na descrição geral? Você tem todas as informações necessárias para identificar as entradas para o requisito? Alguma entrada necessária foi omitida? Há alguma entrada especificada que não é necessária para esse requisito? O requisito está na seção apropriada do documento? Tópicos Especiais - Qualidade de Software 2008/2 9 Leitura Baseada em Perspectiva (PBR) Quando a especificação de requisitos não provê informações suficientes para responder às questões, então ela também não é suficiente para apoiar os usuários de requisitos em suas tarefas e essa situação deve levar à criação de uma lista de defeitos. Tópicos Especiais - Qualidade de Software 2008/2 10 Leitura Baseada em Perspectiva (PBR) Problemas com a PBR (Travassos in (Rocha et al., 2001)): Não são oferecidos meios efetivos que facilitem a identificação da informação importante e a detecção de defeitos pelo revisor, propriamente dita. Em um projeto OO, as abstrações das informações importantes já existem, sendo descritas por meio de diagramas e documentos (p. ex., diagramas de classes e dicionário de dados) Tópicos Especiais - Qualidade de Software 2008/2 11 Técnicas para Leitura de Projeto Orientado a Objetos (OORT) OORT: Uma família de técnicas de leitura de projetos OO, destinada à identificação de defeitos. Foco: verificação Sete técnicas, organizadas em duas formas leitura, cada uma delas definidas para um conjunto de diagramas de projeto. Leitura horizontal: verificação da consistência de artefatos produzidos em uma mesma fase. Leitura vertical: verificação da consistência de artefatos produzidos em fases diferentes. Tópicos Especiais - Qualidade de Software 2008/2 12 Técnicas para Leitura de Projeto Orientado a Objetos (OORT) Especificação de requisitos Descrição dos requisitos Projeto de alto nível Diagrama de classes Descrição de classes Casos de uso Diagrama de estados Diagrama de interação Tópicos Especiais - Qualidade de Software 2008/2 13 Inspeções Guiadas Equipe: desenvolvedores autores dos modelos, testadores e um membro do grupo de processo para atuar como moderador. Moderador : responsável pelo planejamento, mediação da reunião e complementação do relatório final. Planejamento: Definição do escopo (conjunto de casos de uso) Planejamento de tempo (cronograma) Distribuição de materiais Tópicos Especiais - Qualidade de Software 2008/2 14 Inspeções Guiadas Testadores: desenvolvem conjuntos de casos de teste a partir dos casos de uso que estão no escopo da inspeção. Revisões são tratadas como uma sessão de testes, incluindo: projeto de casos de teste, estabelecimento de critérios de cobertura de testes, “execução” (análise estática simulando a execução) de casos de teste e avaliação da efetividade em relação à cobertura. Tópicos Especiais - Qualidade de Software 2008/2 15 Inspeções Guiadas Um caso de teste consiste de: Um conjunto de pré-condições Entradas Resposta esperada Casos de teste construídos a partir de cenários de um caso de uso, estabelecendo valores para todos os atributos e objetos. Cenários podem dar origem a múltiplos casos de uso, atribuindo-se diferentes valores para os objetos usados no caso de uso. Considerar cursos normais, alternativos e de exceção. Tópicos Especiais - Qualidade de Software 2008/2 16 Inspeções Guiadas Checklist: antes da sessão de inspeção interativa, os inspetores examinam os modelos para avaliar certas informações sintáticas, usando um checklist definido pela técnica. Esta porção da técnica não tem foco no conteúdo, mas apenas na forma do modelo. Tópicos Especiais - Qualidade de Software 2008/2 17 Inspeções Guiadas Algumas questões do checklist: Todas as classes do modelo de análise que não estão no modelo de projeto estão fora do escopo da aplicação? Todas as associações do modelo de projeto têm informação de navegabilidade? Todo diagrama de seqüência é um subconjunto de um diagrama de atividades? Todas as mensagens enviadas em um diagrama de interação aparecem como um método na interface pública da classe do objeto que recebe a mensagem? Todas as transições de saída de um diagrama de estados são mutuamente exclusivas? Tópicos Especiais - Qualidade de Software 2008/2 18 Inspeções Guiadas Realização de Sessão de Inspeção Interativa, envolvendo testadores e desenvolvedores. Desenvolvedores cooperam para realizar uma execução simbólica que simula o processamento que ocorreria se um código real estivesse disponível. Moderador controla a sessão, mantendo a sessão dentro de seu escopo e sem permitir a depuração. Usualmente, um testador fica responsável por anotar os defeitos. Tópicos Especiais - Qualidade de Software 2008/2 19 Técnicas de Leitura de Artefatos de Análise e Projeto Orientados a Objetos Técnicas para leitura de artefatos de análise e projeto orientados a objetos, tomando por base uma especificação de requisitos usando modelos de casos de uso. Cinco técnicas de Leitura Horizontal Seis técnicas de Leitura Vertical Tópicos Especiais - Qualidade de Software 2008/2 20 Documentação Necessária Levantamento de Requisitos Documento de Especificação de Requisitos, contendo: Diagrama de Pacotes (opcional) Diagramas de Casos de Uso Descrições de Casos de Uso Análise de Requisitos Documento de Especificação de Análise, contendo: Diagramas de Classes Diagramas de Estados (opcional) Diagramas de Seqüência (opcional) Dicionário de Projeto descrevendo classes, atributos e operações Tópicos Especiais - Qualidade de Software 2008/2 21 Documentação Necessária Projeto Documento de Especificação de Análise, contendo: Diagramas de Classes Dicionário de Projeto descrevendo classes, atributos e operações Tópicos Especiais - Qualidade de Software 2008/2 22 Técnicas de Leitura de Artefatos de Análise e Projeto Orientados a Objetos Levantamento de Requisitos Descrições de Casos de Uso H1 Diagrama de Casos de Uso V4 Análise Dicionário de Projeto V1 H2 Diagrama de Classes V2 H3 V3 Diagrama de Estados Diagrama de Seqüência H4 Projeto V6 Dicionário de Projeto V5 H5 Diagrama de Classes do Domínio do Problema Tópicos Especiais - Qualidade de Software 2008/2 23 H1 – Descrições de Casos de Uso x Diagrama de Casos de Usos Para cada caso de uso identificado em um diagrama de casos de uso deve haver uma descrição de caso de uso associada. Os nomes dos casos de uso nos dois artefatos devem ser os mesmos. As descrições dos casos de uso devem fazer menção aos atores envolvidos nos casos de uso e os atores identificados nos dois artefatos devem ser consistentes. Quando um diagrama de casos de uso apontar uma associação entre casos de uso (inclusão, extensão etc), a descrição correspondente deve fazer menção explicitamente à realização do caso de uso associado. Tópicos Especiais - Qualidade de Software 2008/2 24 V1 – Descrições de Casos de Uso x Diagrama de Classes As classes, associações, atributos e operações modelados no diagrama de classes devem ser necessários e suficientes para realizar cada um dos fluxos de eventos apontados em uma descrição de casos de uso. Quando uma descrição de caso de uso fizer menção a dados claramente relacionados a uma classe no diagrama de classes, então a descrição do caso de uso deve ser consistente com os atributos modelados na correspondente classe do diagrama de classes. Tópicos Especiais - Qualidade de Software 2008/2 25 Referências McGregor, J.D., Sykes, D.A., A Practical Guide to Testing Object-Oriented Software, AddisonWesley, 2001. Rocha, A.R.C., Maldonado, J.C., Weber, K.C., Qualidade de Software: Teoria e Prática, Prentice Hall, 2001. Shull, F., Rus, I., Basili, V., How perspective based reading can improve requirements reading, IEEE Computer Society, 2000. Travassos, G.H., Shull, F., Carver, J., Basili, V., Reading techniques for OO design inspections, 24th Annual Software Engineering Workshop, NASA/SEL, USA, 1999. Tópicos Especiais - Qualidade de Software 2008/2 26