Fundamentos de Teste de Software



Documentos relacionados
Fundamentos de Teste de Software

Teste de Software. Profa. Cátia dos Reis Machado

GARANTIA DA QUALIDADE DE SOFTWARE

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

PEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0

MELHORIA DE PROCESSOS MULTIMODELOS

A Importância do Controle da Qualidade na Melhoria de Processos de Software. Ana Liddy Cenni de Castro Magalhães

Projeto de Sistemas I

NORMA ISO/IEC Isac Aguiar isacaguiar.com.br

Melhorias de Processos de Engenharia de Software

Qualidade na gestão de projeto de desenvolvimento de software

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Implantação de um Processo de Medições de Software

Análise de Pontos por Função

Gerenciamento de Riscos do Projeto Eventos Adversos

MASTER IN PROJECT MANAGEMENT

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

A Disciplina Gerência de Projetos

A visão do modelo MPS.BR para Gerência de Projeto - Nível G. por Adriana Silveira de Souza

F.1 Gerenciamento da integração do projeto

Project Builder: uma Ferramenta de Apoio a Implementação do Processo Gerência de Projetos do MPS.BR

Políticas de Qualidade em TI

ENGENHARIA DE SOFTWARE I

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Engenharia de Software

Capítulo 4 Gerenciamento da Integração do Projeto. Introdução. Vamos pensar um pouco?

Levantamento, Análise e Gestão Requisitos. Aula 12

Roteiro SENAC. Análise de Riscos. Monitoramento e Controle de Riscos. Monitoramento e Controle de Riscos. Monitoramento e Controle de Riscos

Gerenciamento de Incidentes

Feature-Driven Development

ACOMPANHAMENTO GERENCIAL SANKHYA

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

O evento não fará uso do vídeo (webcam), somente slides e áudio. Se necessário, ajuste o idioma da sala na barra de ferramentas superior

Módulo 3 Procedimento e processo de gerenciamento de riscos, PDCA e MASP

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.

Qualidade de Software. Profa. Cátia dos Reis Machado

ISO/IEC 12207: Gerência de Configuração

MODELO CMM MATURIDADE DE SOFTWARE

Gerenciamento de Problemas

Governança de TI. ITIL v.2&3. parte 1

Engenharia de Software II

C.M.M. Capability Maturity Model Modelo de Maturidade da Capacidade

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

II. FASE DE PLANEJAMENTO define a maturidade do entendimento do escopo e, o desenvolvimento do Plano do Projeto PP.

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Garantia da Qualidade de Software

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler

Extração de Requisitos

1. Qual das seguintes alternativas não é um tipo de revisão? 2. Qual das alternativas é um atributo da qualidade?

SISTEMA DE GESTÃO AMBIENTAL ABNT NBR ISO 14001

Gerenciamento de projetos.

Gestão de projetos. André Jun Nishizawa

Qual a diferença entre certificação e acreditação? O que precisamos fazer para obter e manter a certificação ou acreditação?

EXECUTIVE GESTÃO ESTRATÉGICA

Modulo de Padronização e Qualidade Formação Técnica em Administração

Project Management 2/3/2010. Objetivos. Gerencia de Projetos de SW

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Avaliação de Riscos Aplicada à Qualidade em Desenvolvimento de Software

Processo de Implementação de um Sistema de Gestão da Qualidade

Engenharia de Software II: Criando a Declaração de Escopo. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Metodologia de Gerenciamento de Projetos da Justiça Federal

Sistema de Gestão da Qualidade

Introdução à ISO 9001:2015

CHECK - LIST - ISO 9001:2000

Melhores práticas no planejamento de recursos humanos

PRODUTOS RIOSOFT COM SUBSÍDIO SEBRAEtec

TC 045 Gerenciamento de Projetos

Fundamentos de Teste de Software

Universidade Paulista

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Engenharia de Requisitos

3 Qualidade de Software

Unidade I GERENCIAMENTO DE. Profa. Celia Corigliano

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Sessão 4: Avaliação na perspectiva de diferentes tipos de organizações do setor sem fins lucrativos

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Gerenciamento de Projetos Modulo VIII Riscos

O processo de melhoria de processo

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

PIM VII e VIII Projeto Integrado Multidisciplinar

Service Level Management SLM. Gerenciamento de Níveis de Serviço

DECLARAÇÃO DE POSICIONAMENTO DO IIA: O PAPEL DA AUDITORIA INTERNA

PLANEJAMENTO PLANEJAMENTO ESTRATÉGIA CICLO PDCA CICLO PDCA 09/04/2015 GESTÃO DE ESCOPO GERENCIAMENTO DE PROJETOS ACT

SPEKX Platform DATA SHEET. Visão Resumida da Plataforma. Release 3.3. Versão 1.0

Gerenciamento de Integração do Projeto Planejamento e Execução do Projeto

Gestão de Programas Estruturadores

Gerência de Projetos de Software Modelos de gerência. CMM: Capability Maturity Model ITIL: Information Technology Infrastructure Library MPS BR

Engenharia de Software

Fundamentos em Teste de Software. Vinicius V. Pessoni

Transcrição:

Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 3 Teste Estático

SUMÁRIO INTRODUÇÃO... 3 1. Definição... 3 2. Custo Versus Benefício... 4 3. Tipos... 4 REVISÃO... 5 1. Processo de revisão... 7 2. Tipos de Revisão... 8 Informal... 9 Walkthrough Passo a passo... 9 Revisão técnica...... 11 Inspeção...... 12 ANÁLISE ESTÁTICA... 15 CONCLUSÃO... 17 2

INTRODUÇÃO O segundo módulo do curso apresenta com maior detalhamento os procedimentos que estão relacionados ao Teste Estático e ao Teste Dinâmico. Este capítulo irá focar o Teste Estático, tico, contemplando sua definição, objetivos, benefícios e técnicas associadas. 1. Definição As técnicas de teste estático avaliam o software sem executá-lo, com o intuito de encontrar erros e defeitos o quanto antes no ciclo de vida de um projeto e fornecer informação sobre a qualidade do que está sendo produzido. Teste Estático, ou Revisão, traz o sentido de ter uma segunda pessoa avaliando algo que foi produzido, como um processo para buscar defeitos e eliminá-los antes que os mesmos se tornem um problema, gerando atrasos no cronograma e orçamento do projeto. Nesse caso, a correção se torna mais fácil e mais barata de ser realizada do que se ocorresse durante a execução do teste. O teste estático pode ser executado em qualquer artefato que possa ser lido como, por exemplo, os documentos organizacionais: políticas, estratégias, planos e processos. Além disso, também pode ser feito nos planos de projeto de garantia da qualidade e de gerência de configuração. Especificação de requisitos e documentos relativos ao processo de teste podem, ainda, ser considerados. Figura 1 Características da Revisão Estática 3

As revisões estão presentes nos modelos de maturidade CMMI, ISO 15504 (SPICE), ISO 9000, TMMI e no MPT.Br onde observamos a relevância dessa prática para o desenvolvimento maduro e otimizado do software. 2. Custo Versus Benefício Existe um custo associado às atividades de teste estático, haja vista que se gasta tempo para executá-las. Há uma regra de mercado que sugere dedicação de 15% do orçamento na fase de desenvolvimento, para as atividades de teste estático. Essas atividades incluem definição, execução, coleta de dados, análise das métricas e melhoria do processo. Por outro lado, os benefícios são identificados através do gráfico, visto que o quanto antes os erros são identificados, menos custosa será a correção dos mesmos. 3. Tipos Figura 2 Custo para correção do erro VS. Fase em que o erro foi encontrado Existem diversos tipos de teste estático encontrados na literatura, e variam de acordo com o autor. No entanto, iremos focar a Revisão e a Análise Estática. A Revisão é usada para remover erros e ambigüidades nos documentos, antes de serem utilizados no processo de desenvolvimento. Já a Análise Estática permite que o 4

código seja avaliado em termos de defeitos estruturais ou fraquezas sistemáticas que possam gerar defeitos. Figura 3 Tipos de Teste Estático A escolha de quando se utilizar uma determinada técnica vai depender do nível de formalidade requerido, custo e time disponível para realizá-lo, e deve ser feita para atender os objetivos do negócio diante do retorno sobre investimento esperado. Os dois tipos de teste estático serão explicados em detalhes a seguir. REVISÃO A revisão é um exame sistemático de um documento por uma ou mais pessoas com o objetivo de encontrar e remover erros. Pode ser vista como a primeira forma de teste no ciclo de vida do software, por exemplo: Quando você entrega um documento não finalizado para que um colega possa revisar, estamos falando de uma revisão simples. A revisão de um código, tomando como base padrões, pode prevenir a presença de defeitos durante a execução de teste, e também pode ser considerada como uma revisão. 5

Figura 4 Exemplos de revisão Pode ser usada para testar qualquer coisa que foi escrita ou digitada, incluindo documentos como especificação de requisitos, projetos, código, planos e casos de teste. Além disso, prioriza encontrar defeitos e uniformizar a compreensão do time para um determinado artefato. Como benefícios da revisão, podemos citar: Aumento da produtividade do desenvolvimento porque a correção antecipada de defeitos vai ajudar a garantir que os produtos de trabalho estejam claros e sem ambigüidades, fazendo com que o desenvolvedor gaste o menor tempo possível na escrita do código. Haja vista que alguns defeitos foram removidos antes da execução do código, será encontrada durante a execução do código menor quantidade de defeitos. Redução do tempo e custo do teste através da remoção dos atrasos da execução do teste, que aumentam quando os defeitos são encontrados após se tornarem falhas e o testador tem que esperar pelos ajustes antes de entregar o software. Redução do custo de suporte pelo fato de que menos defeitos no produto final irão garantir menor custo para mantê-lo. Melhoria na comunicação, visto que autores e pares discutem e refinam o produto de trabalho em questão para garantir que todos tenham o mesmo entendimento do projeto, a clareza e a ausência de ambigüidade. 6

1. Processo de revisão Figura 5 Benefícios da Revisão O processo de revisão pode variar de acordo com o nível de formalidade que está relacionado com a maturidade do processo, a necessidade de de auditorias ou regulamentos específicos de um projeto. Todas as revisões, das formais às informais, apresentam os mesmos elementos básicos de um processo de revisão, que compreende: Primeiramente, o fato de que o documento a ser revisado é estudado pelos revisores. Depois, os revisores identificam problemas e questões relacionados, informando ao autor verbalmente ou através de um documento, contemplando o relatório consolidado. Finalmente, o autor decide a ação a ser tomada para cada comentário feito pelo revisor e atualiza o relatório. 7

Figura 6 Elementos básicos do processo de revisão No processo de revisão formal, passos adicionais são incluídos e mais atenção é dada para a documentação e métricas relativas à revisão. 2. Tipos de Revisão O tipo de revisão a ser escolhido pode variar de acordo com os objetivos do projeto, e pode ser informal, passo a passo, revisão técnica ou inspeção. A pirâmide a seguir está estruturada de forma que os níveis de maior formalidade estão na parte mais baixa da pirâmide, apresentando: 8

Figura 7 Tipos de revisão e sua formalidade Cada tipo será descrito detalhadamente, a seguir. Informal Revisão informal é um tipo de revisão estática com menor grau de formalidade e seu objetivo pode variar de acordo com a necessidade do autor. Pode focar a revisão da escrita e gramática de um determinado artefato, revisão da estrutura de um produto ou até mesmo o conteúdo profissional do mesmo. Não há restrições sobre o momento em que a mesma será realizada e o autor define o melhor momento, podendo acontecer quando o artefato ainda está em rascunho, para garantir que sua estrutura está e será desenvolvida de forma correta, ou no artefato já finalizado. Figura 8 Características da revisão informal Não existe um processo formal que determine os passos, e esta revisão pode ser documentada, mas não é obrigatória. O feedback da revisão para o autor pode ser verbal ou através de notas no próprio documento. Os resultados desse tipo de revisão variam de acordo com o revisor, haja vista que a contribuição está diretamente ligada às habilidades da pessoa que realiza a revisão, podendo ou não possuir o conhecimento necessário para analisar o artefato em questão. Uma desvantagem observada é que normalmente não se faz registro sobre a revisão informal, ficando difícil de analisar a efetividade da mesma no projeto. É uma forma de baixo custo e pode ser feita em par. Walkthrough Passo a passo É a apresentação feita pelo autor, passo a passo, ou seja, linha por linha, de um documento durante a reunião. 9

Tem o objetivo primário de encontrar defeitos e, como objetivo secundário, podemos citar a uniformização de um determinado conhecimento refletido no conteúdo do documento revisado. Podem acontecer em fases específicas do projeto como, por exemplo, nas etapas iniciais do processo de desenvolvimento para garantir que o autor está seguindo o caminho esperado pelo projeto. Figura 8 Características da revisão Passo a Passo Qualquer documento pode ser objeto dessa revisão e seu processo de condução, normalmente, não é muito formal, mas geralmente planejado. O processo se inicia com a convocação dos participantes que, por sua vez, podem receber os documentos antes da reunião para que se preparem. No entanto, uma preparação formal não é obrigatória. A reunião faz parte do processo onde, nesse momento, o autor age como o apresentador do documento e o restante do grupo atua como revisor do mesmo. Em caso de conflitos, um facilitador natural pode estar presente. Durante a reunião, o autor passa, linha a linha, pelo documento, e os defeitos, omissões, possibilidades de mudanças, sugestões de melhorias e alternativas são levantadas e discutidas. A reunião não deve ultrapassar 2 horas e, após a mesma, um relatório informal deve ser produzido sumarizando os itens levantados para que as correções no documento sejam realizadas pelo autor. 10

Figura 9 Papéis e duração da revisão informal Revisão técnica Revisão técnica é uma atividade de discussão que tem como foco alcançar consenso para um determinado documento técnico, ou seja, não gerencial, e também é conhecida como revisão por pares. Pares, nesse contexto, são pessoas que possuem o mesmo papel no processo de desenvolvimento de software, com perfis análogos que possam atuar e avaliar o artefato com perspectivas similar a do autor. O objetivo primário da revisão técnica é encontrar defeitos e deve ser planejada para acontecer algumas vezes no ciclo de vida de desenvolvimento do software. Seu processo é razoavelmente formal, assim como a definição dos papéis que a compõe, onde são necessários: moderador, apresentador, revisor, autor e redator. 11

Figura 10 Características da Revisão Técnica O gerente, inicialmente, agenda a preparação e reunião de revisão, informando qual artefato será analisado. A presença de um gerente, para decidir se o documento está apto para ser revisado, é indispensável nesse processo. Os revisores, em seguida, precisam analisar o material em busca de defeitos, antes da reunião iniciar e podem, opcionalmente, fazer o uso de checklists para essa preparação, consolidando uma lista do que foi encontrado. Durante a revisão o moderador apresenta os objetivos da reunião e folheia, página por página, o documento revisado. Nesse momento são levantadas e discutidas as questões e dúvidas do artefato. Ao final, deve haver um consenso sobre o que deve ser ajustado no documento e as decisões ficam registradas em um relatório. A presença do autor nessa reunião deve ser para esclarecimento de dúvidas e não deve atuar como um defensor do documento. A desvantagem do método está relacionada com o fato de que o resultado depende dos revisores e suas habilidades técnicas. Além disso, se nenhum relatório de métricas for definido, não será possível a análise quantitativa dos resultados. Inspeção A inspeção é um tipo formal e bem definido de teste estático e essa técnica foi introduzida em 1972 pela IBM com dois objetivos claros: a melhoria do produto e a do processo. O principal objetivo da inspeção é encontrar defeitos e assim contribuir para a melhoria, e possui algumas características: 12

Figura 11 Histórico e objetivos da Inspeção O processo seguido deve ser formalmente descrito. Deve possuir todos os papéis esperados para uma inspeção. Material de consulta deve ser sempre utilizado. O revisor deve buscar tipos específicos de erros. Métricas devem ser definidas e coletadas. A melhoria do processo é parte integrante do processo. O moderador e os revisores devem ser treinados. O processo de inspeção contempla atividades de: Planejamento, devendo considerar a natureza do documento (tamanho e complexidade), as pessoas envolvidas e seus respectivos papéis, as métricas que serão coletadas e o cronograma para a realização da inspeção. Visão Geral contempla a introdução ao material que será revisado, apresentação do cronograma da inspeção, definição dos papéis e entrega do documento e referência para revisão do mesmo. Preparação é a atividade em que cada revisor realiza a verificação do artefato e deve apontar o tempo gasto e os incidentes encontrados. Reunião da inspeção é conduzida pelo moderador cujo objetivo é registrar os incidentes encontrados durante a preparação e no momento da reunião. Retrabalho foca a resolução dos itens levantados durante a reunião de inspeção. Acompanhamento realizado pelo líder da inspeção garantindo a correção do documento e a consolidação das métricas e análise das mesmas. 13

Figura 12 Processo de Inspeção Os papéis envolvidos na inspeção são: Líder da inspeção Autor Revisor Moderador Redator As inspeções devem ser lideradas por um moderador experiente que não é o autor do documento. É um procedimento formal baseado em regras e checklists utilizando critérios de entrada e saída. Também é necessária a preparação antes da reunião para a leitura do material. Ao final, um relatório é produzido contemplando os pontos observados pelos revisores, além das métricas relacionadas. Após a revisão, também é realizado um acompanhamento para garantir que a revisão esteja finalizada. 14

Figura 13 Características da Inspeção ANÁLISE ESTÁTICA Ao contrário da revisão, a análise estática é realizada a partir da escrita do código e tem o objetivo de encontrar defeitos no código e nos modelos gerados. Figura 14 Análise Estática Entende-se que código fonte é qualquer seqüência de declarações escritas em uma linguagem de programação, e este busca achar defeitos que são difíceis de ser encontrados durante a execução do teste. 15

Como benefícios, podemos citar: Detecção antecipada de defeitos, antes da execução do teste e, conseqüentemente, menor custo para corrigi-los. Aviso prévio sobre aspectos suspeitos do código ou projeto, através do cálculo de métricas como, por exemplo, medida de complexidade do código. Identificação de defeitos que não são facilmente encontrados pelo teste dinâmico, como detecção de dependências e inconsistências nos modelos de software. Melhoria na manutenibilidade do código e projeto. Prevenção de defeitos. Figura 15 Características da Análise Estática Alguns exemplos de erros encontrados durante a análise estática: Referenciamento de uma variável sem valor definido. Interfaces inconsistentes entre módulos e componentes. Variáveis que nunca foram utilizadas. Código morto, que são linhas de código que não podem ser executadas devido à lógica do programa. Violação a padrões de programação. Vulnerabilidades de segurança. Violação de sintaxe do código e dos modelos. A análise estática apresenta maior efetividade durante os testes de integração (componentes) e deve envolver os desenvolvedores para verificar padrões, fazendo uso de ferramentas para consolidar os defeitos encontrados e relatório gerado. 16

CONCLUSÃO Este capítulo apresentou como o teste estático pode auxiliar o desenvolvimento de software, não apenas antecipando os erros, mas também através de técnicas que buscam a uniformização do conhecimento entre os participantes do que está sendo desenvolvido. Existem diversas técnicas de revisão estática e a tabela abaixo apresenta um resumo, considerando questões como: objetivos, formalidade, necessidade de preparação e saídas esperadas pelo processo. Tabela 1 Comparação das Técnicas de Revisão Passo a Revisão Passo Técnica Objetivo Primário Encontrar defeitos Encontrar defeitos Objetivo Secundário Compartilhar conhecimento Tomar decisões Preparação Normalmente nenhuma Familiarização Liderança durante a reunião Processo formal Coleta de métricas Autor Não há Usualmente não há Qualquer papel apropriado Algumas vezes Algumas vezes Saída Algumas Relatório vezes um relatório informal Inspeção Encontrar defeitos Melhoria do processo Preparação formal Moderador treinado Sempre Sempre Lista de defeitos, métricas e relatório formal 17