A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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ções semelhantes


Apresentação em tema: "Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007."— Transcrição da apresentação:

1

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

3 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

4 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

5 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

6 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

7 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

8 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)

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

10 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

11 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

12 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?

13 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,...).

14 Algumas Métricas de Cobertura de Código

15 Como a cobertura de código trabalha Statement Coverage

16 Como a cobertura de código trabalha Branch Coverage

17 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

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

19 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).

20 Relatório de Cobertura de Código - EMMA

21 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

22 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

23 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

24 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

25 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.

26 Perguntas?

27 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.

28 Qualiti: CIn-UFPE:


Carregar ppt "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ções semelhantes


Anúncios Google