Return to search

An Exploratory Study on Exception Handling Bugs in Java Programs

Several studies argue that exception handling code is usually of poor quality and that it
is commonly neglected by developers. Moreover, it is said to be the least understood,
documented, and tested part of the implementation of a system. In spite of this scenario,
there are very few studies that analyze the actual exception handling bugs that occur in
real software systems and no study that attempts to understand developers’ perceptions
about these bugs.
In this work we present an exploratory study on exception handling bugs that employs
two complementary approaches: a survey of 154 developers and an analysis of
220 bugs from the repositories of Eclipse and Tomcat. Respondents of our survey believe
that exception handling bugs are more easily fixed than other kinds of bugs. There
is also a significant difference in the opinion of the respondents pertaining to the quality
of the exception handling code: more experienced developers tend to believe that it is
worse.
Analysis of the repositories of Eclipse and Tomcat revealed conflicting results. The
fix time for exception handling bugs in Eclipse is significantly shorter than for other
bugs. However, exception handling bugs have a significantly greater number of discussion
messages than non-exception handling bugs. On the other hand, for Tomcat, we
could not find a significant difference for fix time and exception handling bugs have
significantly less discussion messages than other bugs.
Moreover, we discovered that bug reports describing bugs stemming from overly
general catch blocks, a well-known bad smell in programs that use exceptions, are
rare, even though there are many opportunities for them to occur. In addition, empty
catch blocks are not only prevalent, as previously reported in literature, but they are
also commonly used as part of bug fixes, which includes fixes for exception handling
bugs. Furthermore, we found very few bug reports whose causes are empty catch
blocks, although developers often mention them as causes of bugs they have fixed in the
past. And lastly, we present a proposal of the classification of exception handling bugs
based on the data we collected. / Submitted by João Arthur Martins (joao.arthur@ufpe.br) on 2015-03-10T18:18:46Z
No. of bitstreams: 2
Dissertaçao Felipe Ebert.pdf: 1326280 bytes, checksum: b28c0a4b3a4f5a5d84483b41a94a7a48 (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Made available in DSpace on 2015-03-11T17:40:09Z (GMT). No. of bitstreams: 2
Dissertaçao Felipe Ebert.pdf: 1326280 bytes, checksum: b28c0a4b3a4f5a5d84483b41a94a7a48 (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Previous issue date: 2013-08-02 / FACEPE e CNPq / Vários estudos afirmam que o código de tratamento de exceções em geral tem baixa qualidade
e que é geralmente negligenciado por desenvolvedores. Além disso, acredita-se
que essa parte da implementação de um sistema é a menos compreendida, documentada
e testada. Apesar desse cenário, existem poucos estudos que analisam bugs de tratamento
de exceções que ocorrem em sistemas de software reais e nenhum estudo que
tente entender a percepção dos desenvolvedores sobre esses bugs.
Neste trabalho, apresentamos um estudo exploratório sobre bugs de tratamento de
exceções baseado em duas abordagens complementares: uma pesquisa com 154 desenvolvedores
e uma análise de 220 bugs dos repositórios do Eclipse e Tomcat. Os
desenvolvedores de nossa pesquisa acreditam que bugs de tratamento de exceções são
mais facilmente corrigidos do que outros tipos de bugs. Há também uma diferença significativa
na opinião dos desenvolvedores sobre a qualidade do código de tratamento de
exceções: os desenvolvedores mais experientes tendem a acreditar que é pior.
A análise dos repositórios do Eclipse e Tomcat revelou resultados conflitantes. O
tempo de correção dos bugs de tratamento de exceções do Eclipse é significativamente
menor do que o de outros tipos de bugs. Entretanto, os bugs de tratamento de exceções
têm um número significativamente maior de comentários do que os bugs que não são
de tratamento de exceções. Por outro lado, para o Tomcat, não conseguimos achar uma
diferença significativa para o tempo de correção dos bugs e os bugs de tratamento de
exceções tem um número significativamente menor de comentários do que os outros
tipos de bugs.
Além disso, descobrimos que os bugs decorrentes de blocos catch genéricos, um
defeito bem conhecido em programas que usam exceções, são raros, embora existam
várias oportunidades para que eles ocorram. Descobrimos também que blocos catch
vazios não são só prevalentes, como previamente relatado na literatura, mas também
geralmente usados como correções dos bugs, inclusive para bugs de tratamento de exceções.
Também achamos poucos bugs reportados em que as causas deles são blocos
catch vazios, embora desenvolvedores frequentemente mencionem eles como causas
de bugs que já corrigiram no passado. E por fim, apresentamos uma proposta de classificação
dos bugs de tratamento de exceções.

Identiferoai:union.ndltd.org:IBICT/oai:repositorio.ufpe.br:123456789/11984
Date02 August 2013
CreatorsEbert, Felipe
ContributorsCastor, Fernando
PublisherUniversidade Federal de Pernambuco
Source SetsIBICT Brazilian ETDs
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UFPE, instname:Universidade Federal de Pernambuco, instacron:UFPE
RightsAttribution-NonCommercial-NoDerivs 3.0 Brazil, http://creativecommons.org/licenses/by-nc-nd/3.0/br/, info:eu-repo/semantics/openAccess

Page generated in 0.0185 seconds