Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas I
Advertisements

APS I Análise e Projeto de Sistemas I
Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Desenvolvimento de Plug-ins Orientado a Testes
Adélia Barros Testes de Software Adélia Barros
Rational Unified Process
Modelagem de Software Orientado a Objetos
Débora da Silva Orientadora: Maria Inés Castiñeira
Tópicos Motivação para teste Por que algumas empresas não testam
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Arquitetura de Aplicações Web
Teste de Software Geórgenes Zapalaglio
Guia para Implantação de Testes em Pequenas e Médias Empresas de Software
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
Testes – visão geral Vanilson Burégio.
Gestão de Defeitos Vanilson Burégio.
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
dbCheck! uma ferramenta para teste de banco de dados
Márcio Aurélio Ribeiro Moreira
Introdução aos conceitos de Teste de Software
RUPinho Qualidade de Software
testes de regressão e testes baseados em riscos
Avaliação do RUP como processo para desenvolvimento de software
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
Teste de Software Introdução
O Fluxo de Implementação
Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Prof. Guilherme Alexandre Monteiro Reinaldo Recife
Capability Maturity Model (CMM)
Objetivos das Atividades de Implementação • Implementar as classes do modelo de projeto em termos de componentes (código fonte ou executável, etc.) •
Prof. Alexandre Vasconcelos
Métricas de Reuso Jorge Mascena Paulo Maciel Pós-graduação em Ciência da Computação Centro de Informática -UFPE.
Engenharia de Software com o RUP - Workflow de Testes Parte I
Planejamento e Gerenciamento
How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface.
Gerência de Configuração - GC
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
Consultoria Automação de Testes Neli Duarte
Heron Vieira Aguiar “Seminário da disciplina MDA” Julho de 2006
Software engineering, the software process and their support M.M. Lehman Apresentadora: Tarciana Dias da Silva.
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
MESTRADO EM REDES DE COMPUTADORES
TabNet (tabulador para Internet TabWin (Tabulador para Windows)
Teste de Software Conceitos iniciais.
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
Introdução a Teste de Software
Fabrício Dias
Conceitos Básicos Introdução.
Modelos de Qualidade para indivíduos e grupos: PSP & TSP
Técnicas e Projeto de Sistemas
Projeto Piloto do LabPS Teste do Flip
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
CIn-UFPE Modelos de Maturidade de Testes
Desenvolvimento de Sistemas - Fluxo de Testes
Engenharia de Software
Engenharia de Software com o RUP - Workflow de Testes Parte II Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba © Centro.
Engenharia de Software
André Drummond RA Danilo Benzatti RA
Qualidade de Produtos de Software
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Uma Abordagem para o Estudo de Valor em Processos de Software: Aplicando VBSE ao EUP Gustavo Tibério
1 Identificando Riscos em Projetos de IP-cores Aluno: Tiago Lins Orientador: Hermano Perrelli 29/03/2007.
CIn-UFPE Seleção de Testes de Regressão para Redução de Defeitos Escapados Juliana Mafra – Novembro
Qualidade do Ponto de Vista de Gestão Aplicado na Homologação de software Márcia Falcão 27/03/2007 Qualidade do Ponto de Vista de Gestão, aplicado na Homologação.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Transcrição da apresentação:

Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007

Apresentação do Palestrante Bacharel em Ciência da Computação, UFPE, 1987 Mestre em Informática, UFPE, 1989 PhD em Ciência da Computação (Engenharia de Software), University of York, GB, 1993 Professor Adjunto do CIn-UFPE desde 1995 Sócio-Fundador da Qualiti Consultor nos modelos de qualidade de software CMMI e mps.BR Consultor na Área de Testes de Software Coordenador do Projeto de Testes CIn- EPSON

Agenda Motivação Contexto da Proposta Visão Geral da Proposta Introdução à Análise de Cobertura de Código O Processo de Desenvolvimento Proposto Conclusões Referências

Motivação Os custos associados às falhas de software justificam um processo de testes rigoroso e bem planejado Apesar do rigor, não é possível garantir que os casos de testes cubram uma parte significativa do código a ser testado –Bugs podem não ser encontrados pelo processo de testes de unidade, sendo localizados apenas em estágios posteriores de testes. Os custos com teste podem variar de 25% a 50% do orçamento total em muitos projetos de desenvolvimento de software

Motivação Um problema que pode ser encontrado, no processo de desenvolvimento é a ausência de uma medida quantitativa da qualidade dos casos de teste produzidos Uma aproximação usada para obter essas medidas quantitativas é adotar a análise de cobertura de código no processo de desenvolvimento de código, para os testes de unidade elaborados pela organização

Contexto da Proposta Desperdício de tempo do time de desenvolvimento para analisar o código fonte na identificação de cenários para criação de casos de teste –Não sabem que partes do código são realmente testadas pelos casos de testes existentes –Não sabem o quão forte é o conjunto de casos do teste unitários Como conseqüência, alguns bugs podem ser encontrados em fases de testes posteriores

Visão Geral da Proposta Definição de um processo de desenvolvimento utilizando técnicas de análise de cobertura de código Desenvolvido no contexto do STP (Software Test Program), parceria entre Motorola (BTC – Brazil Test Center) e CIn (Centro de Informática)

Introdução à Análise de Cobertura de Código

Análise de cobertura de Código É um tipo de técnica usada em teste de caixa-branca (teste estrutural), cujo objetivo é verificar como o conjunto de testes exercita partes do código É utilizada para averiguar a qualidade do conjunto de testes e não a qualidade do produto de software Normalmente utilizada nos estágios de teste de unidade e de integração

Análise de cobertura de Código Consiste em determinar o percentual de elementos requeridos, por um dado critério de teste, que foram exercitados pelo conjunto de casos de teste utilizado A partir dessa informação o conjunto de casos de teste pode ser aprimorado, acrescentando-se novos casos de teste para exercitar os elementos ainda não cobertos Permite uma análise sobre a redundância e utilidade dos testes unitários

Com a análise pode-se saber Que partes do software os casos de teste não cobrem? Que novos casos de teste precisam ser criados para se ter uma melhor cobertura? Quais casos de teste são redundantes?

Instrumentação do código Consiste em introduzir pontos de verificação em partes específicas (estratégicas) do código (break points, controle de fluxo, labels do código, início e fim de procedimentos,...).

Algumas Métricas de Cobertura de Código

Como a cobertura de código trabalha Statement Coverage

Como a cobertura de código trabalha Branch Coverage

Funcionamento de uma Ferramenta de Análise de Cobertura de Código Código Fonte Compilação Execução dos Casos de Testes Código Instrumentado Relatório de Cobertura Instrumentação Aplicação Ferramenta de Cobertura

Cantata++ for testing C, C++ and Java Algumas Ferramentas de Análise de Cobertura de Código

Relatórios de Cobertura de Código Dependendo da ferramenta de cobertura, podem ser gerados vários tipos de relatórios, com formato textual e/ou gráfico e com diversas extensões (ex.: html, pdf, xml).

Relatório de Cobertura de Código - EMMA

O Processo de Desenvolvimento Proposto Configuração da ferramenta Guideline da Ferramenta Execução dos testes unitários Compilação do código Instrumentação do código Geração do relatório Relatório de cobertura Build instrumentada Código fonte instrumentado Código fonte original Análise dos resultados de cobertura Desenvolvedor Casos de testes unitários Arquivo de histórico de execução Recuperação dos testes Alteração do código fonte

Avaliação do Processo: Estudo de caso 1 - Utilização do código instrumentado em Simuladores Resultados Subsídios para elaboração do processo proposto A proposta de métricas de cobertura foi adotada pelo time de desenvolvimento Aquisição da ferramenta de cobertura de código pelo time de desenvolvimento Criação de guideline de cobertura

Avaliação do Processo: Estudo de caso 2 - Utilização do código instrumentado no sistema embarcado Resultados Sucesso na inserção da análise de cobertura de código no fluxo de testes Build instrumentada rodando no aparelho Detecção dos motivos do baixo nível de cobertura

Avaliação do Processo: Estudo de caso 3 - Impacto na Execução dos Casos de Testes Tempo médio do ciclo completo da execução dos casos de testes Tempo médio completo da execução dos casos de testes realizado por um testador Resultados

Conclusões Processo de Desenvolvimento de Software com cobertura de código –Melhoria significativa na qualidade dos testes unitários; Utilização da ferramenta de cobertura –Possibilita alcançar um código bem testado; –Agrega mais qualidade, em menos tempo; –Baixo impacto na utilização do processo –Elimina erros, criando cenários de falha ou de sucesso; –Dá mais produtividade aos processos de codificação e de teste.

Perguntas?

Referências MYERS, G., The Art of Software Testing, Wiley, DUSTIN, E. Effective Software Testing: 50 Specific Ways to Improve Your Testing. Addison Wesley. : December 18, 2002 CRAIG, R. D., JASKIEL, S. P. Systematic Software Testing. Artech House KRUCHTEN, P. Rational Unified Process, The: An Introduction, Third Edition. Addison Wesley TELES, V. M. Cobertura de Testes na Prática. BullseyeCoverage. Bullseye Testing Technology. Disponível em: Acesso em: 11 Nov. Cantata C++. IPL software Products Group. Disponível em: Acesso em: 11 Nov. LDRA. Testbed Manual. C/C++ 7.x (Windows (95\98\2K\NT\XP)) Manual Revision 23 - October Liverpool: Liverpool Data Research Associates Ltd. Clover Code Coverage. Cenqua Pty Ltd. Disponível em: Acesso em: 11 Nov. Testwell CTC++. Testwell. Disponível em: Acesso em: 11 Nov.

Qualiti: CIn-UFPE: