Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof....
Transcript of Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof....
![Page 1: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/1.jpg)
![Page 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.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/2.jpg)
Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código
Prof. Alexandre Marcos Lins de Vasconcelos06/out/2007
![Page 3: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/3.jpg)
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
![Page 4: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/4.jpg)
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
![Page 5: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/5.jpg)
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
![Page 6: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/6.jpg)
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
![Page 7: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/7.jpg)
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
![Page 8: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/8.jpg)
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)
![Page 9: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/9.jpg)
Introdução à Análise de Cobertura de Código
![Page 10: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/10.jpg)
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
![Page 11: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/11.jpg)
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
![Page 12: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/12.jpg)
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?
![Page 13: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/13.jpg)
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, ...).
![Page 14: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/14.jpg)
Algumas Métricas de Cobertura de Código
![Page 15: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/15.jpg)
Como a cobertura de código trabalha
Statement Coverage
![Page 16: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/16.jpg)
Como a cobertura de código trabalha
Branch Coverage
![Page 17: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/17.jpg)
Funcionamento de uma Ferramenta de Análise de Cobertura de Código
Código Fonte
Compilação
Execução dosCasos de Testes
Código Instrumentado
Relatório de Cobertura
Instrumentação
Aplicação
Ferramenta de Cobertura
![Page 18: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/18.jpg)
Cantata++ for testing C, C++ and Java
Algumas Ferramentas de Análise de Cobertura de Código
![Page 19: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/19.jpg)
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).
![Page 20: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/20.jpg)
Relatório de Cobertura de Código - EMMA
![Page 21: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/21.jpg)
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 fonteoriginal
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
![Page 22: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/22.jpg)
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
![Page 23: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/23.jpg)
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
![Page 24: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/24.jpg)
Avaliação do Processo:Estudo de caso 3 - Impacto na Execução dos Casos de Testes
Gráfico de Execução de Caso de Teste - Tempo Total
0:00:000:00:430:01:260:02:100:02:53
1 3 5 7 9 11 13 15 17 19
Casos de Testes
Tem
po
Méd
io
de
Exe
cuçã
o
Build com Instrumentação Build sem Instrumentação
Execução Completa dos Casos de Testes
0:00:00
0:00:17
0:00:35
0:00:52
0:01:09
0:01:26
0:01:44
0:02:01
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Tem
po
s
Build com Instrumentação Build sem Instrumentação
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
![Page 25: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/25.jpg)
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.
![Page 26: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/26.jpg)
Perguntas?
![Page 27: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/27.jpg)
Referências• MYERS, G., The Art of Software Testing, Wiley, 2004.• 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.
2002• KRUCHTEN, P. Rational Unified Process, The: An Introduction, Third Edition.
Addison Wesley. 2003.• TELES, V. M. Cobertura de Testes na Prática.• BullseyeCoverage. Bullseye Testing Technology. Disponível em:
http://www.bullseye.com/productInfo.html. Acesso em: 11 Nov.• Cantata C++. IPL software Products Group. Disponível em:
http://www.ipl.com/products/tools/pt400.uk.php. Acesso em: 11 Nov.• LDRA. Testbed Manual. C/C++ 7.x (Windows (95\98\2K\NT\XP)) Manual
Revision 23 - October 2004. Liverpool: Liverpool Data Research Associates Ltd.
• Clover Code Coverage. Cenqua Pty Ltd. Disponível em: http://www.cenqua.com/clover/. Acesso em: 11 Nov.
• Testwell CTC++. Testwell. Disponível em: http://www.testwell.fi/ctcdesc.html. Acesso em: 11 Nov.
![Page 28: Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.](https://reader035.fdocumentos.tips/reader035/viewer/2022070311/552fc10d497959413d8c46d1/html5/thumbnails/28.jpg)
Qualiti: [email protected]: [email protected]