Depuração de programas baseada em cobertura de integração

Depuração é a atividade responsável pela localização e correção de defeitos gerados durante o desenvolvimento de programas. A depuração ocorre devido à atividade de teste bem-sucedida, na qual falhas no comportamento do programa são reveladas, indicando a existência de defeitos. Diversas técnic...

Full description

Bibliographic Details
Main Author: Higor Amario de Souza
Other Authors: Marcos Lordello Chaim
Language:Portuguese
Published: Universidade de São Paulo 2012
Subjects:
Online Access:http://www.teses.usp.br/teses/disponiveis/100/100131/tde-08032013-162246/
id ndltd-IBICT-oai-teses.usp.br-tde-08032013-162246
record_format oai_dc
collection NDLTD
language Portuguese
sources NDLTD
topic Cobertura de código
Depuração automatizada
Localização de defeitos
Teste de integração
Automated debugging
Code coverage
Fault localization
Integration testing
spellingShingle Cobertura de código
Depuração automatizada
Localização de defeitos
Teste de integração
Automated debugging
Code coverage
Fault localization
Integration testing
Higor Amario de Souza
Depuração de programas baseada em cobertura de integração
description Depuração é a atividade responsável pela localização e correção de defeitos gerados durante o desenvolvimento de programas. A depuração ocorre devido à atividade de teste bem-sucedida, na qual falhas no comportamento do programa são reveladas, indicando a existência de defeitos. Diversas técnicas têm sido propostas para automatizar a tarefa de depuração de programas. Algumas delas utilizam heurísticas baseadas em informações de cobertura obtidas da execução de testes. O objetivo é indicar trechos de código do programa mais suspeitos de conter defeitos. As informações de cobertura mais usadas em depuração automatizada são baseadas no teste estrutural de unidade. A cobertura de integração, obtida por meio da comunicação entre as unidades de um programa, pode trazer novas informações sobre o código executado, possibilitando a criação de novas estratégias para a tarefa de localização de defeitos. Este trabalho apresenta uma nova técnica de localização de defeitos chamada Depuração de programas baseada em Cobertura de Integração (DCI). São apresentadas duas coberturas de integração baseadas nas chamadas de métodos de um programa. Essas coberturas são usadas para a proposição de roteiros de busca dos defeitos a partir dos métodos considerados mais suspeitos. As informações de cobertura de unidade são então utilizadas para a localização dos defeitos dentro dos métodos. A DCI também utiliza uma nova heurística para atribuição de valores de suspeição a entidades de integração estática dos programas como pacotes, classes e métodos, fornecendo também um roteiro para a procura dos defeitos. Os experimentos realizados em programas reais mostram que a DCI permite realizar a localização de defeitos de forma mais eficaz do que o uso de informações de cobertura de unidade isoladamente. === Debugging is the activity responsible for localizing and fixing faults generated during software development. Debugging occurs due to a successful testing activity, in which failures in the behavior of the program are revealed, indicating the existence of faults. Several techniques have been proposed to automate the debugging tasks, especially the fault localization task. Some techniques use heuristics based on coverage data obtained from the execution of tests. The goal is to indicate program code excerpts more likely to contain faults. The coverage data mostly used in automated debugging is based on white-box unit testing. Integration coverage data, obtained from the communication between the units of a program, can bring about new information with respect to the executed code, which allows new strategies to the fault localization task to be devised. This work presents a new fault localization technique called Debugging based on Integration Coverage (DIC). Two integration coverages based on method invocations are presented. These coverages are used to propose two search strategies that provides a roadmap to locate faults by investigating the more suspicious methods. The unit coverage information are used to search the faulty statement inside the suspicious methods. The DIC technique also proposes a heuristic that assigns suspiciousness values to static integration entities of the programs, namely, packages, classes, and methods. This heuristic also provides a roadmap to search for the faults. Experiments using real programs show that DIC is more effective to locate faults than solely using unit coverage information.
author2 Marcos Lordello Chaim
author_facet Marcos Lordello Chaim
Higor Amario de Souza
author Higor Amario de Souza
author_sort Higor Amario de Souza
title Depuração de programas baseada em cobertura de integração
title_short Depuração de programas baseada em cobertura de integração
title_full Depuração de programas baseada em cobertura de integração
title_fullStr Depuração de programas baseada em cobertura de integração
title_full_unstemmed Depuração de programas baseada em cobertura de integração
title_sort depuração de programas baseada em cobertura de integração
publisher Universidade de São Paulo
publishDate 2012
url http://www.teses.usp.br/teses/disponiveis/100/100131/tde-08032013-162246/
work_keys_str_mv AT higoramariodesouza depuracaodeprogramasbaseadaemcoberturadeintegracao
AT higoramariodesouza programdebuggingbasedonintegrationcoverage
_version_ 1718921633918353408
spelling ndltd-IBICT-oai-teses.usp.br-tde-08032013-1622462019-01-22T00:28:04Z Depuração de programas baseada em cobertura de integração Program debugging based on integration coverage Higor Amario de Souza Marcos Lordello Chaim Márcio Eduardo Delamaro Auri Marcelo Rizzo Vincenzi Cobertura de código Depuração automatizada Localização de defeitos Teste de integração Automated debugging Code coverage Fault localization Integration testing Depuração é a atividade responsável pela localização e correção de defeitos gerados durante o desenvolvimento de programas. A depuração ocorre devido à atividade de teste bem-sucedida, na qual falhas no comportamento do programa são reveladas, indicando a existência de defeitos. Diversas técnicas têm sido propostas para automatizar a tarefa de depuração de programas. Algumas delas utilizam heurísticas baseadas em informações de cobertura obtidas da execução de testes. O objetivo é indicar trechos de código do programa mais suspeitos de conter defeitos. As informações de cobertura mais usadas em depuração automatizada são baseadas no teste estrutural de unidade. A cobertura de integração, obtida por meio da comunicação entre as unidades de um programa, pode trazer novas informações sobre o código executado, possibilitando a criação de novas estratégias para a tarefa de localização de defeitos. Este trabalho apresenta uma nova técnica de localização de defeitos chamada Depuração de programas baseada em Cobertura de Integração (DCI). São apresentadas duas coberturas de integração baseadas nas chamadas de métodos de um programa. Essas coberturas são usadas para a proposição de roteiros de busca dos defeitos a partir dos métodos considerados mais suspeitos. As informações de cobertura de unidade são então utilizadas para a localização dos defeitos dentro dos métodos. A DCI também utiliza uma nova heurística para atribuição de valores de suspeição a entidades de integração estática dos programas como pacotes, classes e métodos, fornecendo também um roteiro para a procura dos defeitos. Os experimentos realizados em programas reais mostram que a DCI permite realizar a localização de defeitos de forma mais eficaz do que o uso de informações de cobertura de unidade isoladamente. Debugging is the activity responsible for localizing and fixing faults generated during software development. Debugging occurs due to a successful testing activity, in which failures in the behavior of the program are revealed, indicating the existence of faults. Several techniques have been proposed to automate the debugging tasks, especially the fault localization task. Some techniques use heuristics based on coverage data obtained from the execution of tests. The goal is to indicate program code excerpts more likely to contain faults. The coverage data mostly used in automated debugging is based on white-box unit testing. Integration coverage data, obtained from the communication between the units of a program, can bring about new information with respect to the executed code, which allows new strategies to the fault localization task to be devised. This work presents a new fault localization technique called Debugging based on Integration Coverage (DIC). Two integration coverages based on method invocations are presented. These coverages are used to propose two search strategies that provides a roadmap to locate faults by investigating the more suspicious methods. The unit coverage information are used to search the faulty statement inside the suspicious methods. The DIC technique also proposes a heuristic that assigns suspiciousness values to static integration entities of the programs, namely, packages, classes, and methods. This heuristic also provides a roadmap to search for the faults. Experiments using real programs show that DIC is more effective to locate faults than solely using unit coverage information. 2012-12-20 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis http://www.teses.usp.br/teses/disponiveis/100/100131/tde-08032013-162246/ por info:eu-repo/semantics/openAccess Universidade de São Paulo Sistemas de Informação USP BR reponame:Biblioteca Digital de Teses e Dissertações da USP instname:Universidade de São Paulo instacron:USP