Towards a Classification of Bugs to Facilitate Software Maintainability Tasks

Mathieu Nayrolles, A. Hamou-Lhadj
{"title":"Towards a Classification of Bugs to Facilitate Software Maintainability Tasks","authors":"Mathieu Nayrolles, A. Hamou-Lhadj","doi":"10.1145/3194095.3194101","DOIUrl":null,"url":null,"abstract":"Software maintainability is an important software quality attribute that defines the degree by which a software system is understood, repaired, or enhanced. In recent years, there has been an increase in attention in techniques and tools that mine large bug repositories to help software developers understand the causes of bugs and speed up the fixing process. These techniques, however, treat all bugs in the same way. Bugs that are fixed by changing a single location in the code are examined the same way as those that require complex changes. After examining more than 100 thousand bug reports of 380 projects, we found that bugs can be classified into four types based on the location of their fixes. Type 1 bugs are the ones that fixed by modifying a single location in the code, while Type 2 refers to bugs that are fixed in more than one location. Type 3 refers to multiple bugs that are fixed in the exact same location. Type 4 is an extension of Type 3, where multiple bugs are resolved by modifying the same set of locations. This classification can help companies put the resources where they are needed the most. It also provides useful insight into the quality of the code. Knowing, for example, that a system contains a large number of bugs of Type 4 suggests that high maintenance efforts. This classification can also be used for other tasks such as predicting the type of incoming bugs for an improved bug handling process. For example, if a bug is found to be of Type 4 then it should be directed to experienced developers","PeriodicalId":103582,"journal":{"name":"2018 IEEE/ACM 1st International Workshop on Software Qualities and their Dependencies (SQUADE)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE/ACM 1st International Workshop on Software Qualities and their Dependencies (SQUADE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3194095.3194101","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10

Abstract

Software maintainability is an important software quality attribute that defines the degree by which a software system is understood, repaired, or enhanced. In recent years, there has been an increase in attention in techniques and tools that mine large bug repositories to help software developers understand the causes of bugs and speed up the fixing process. These techniques, however, treat all bugs in the same way. Bugs that are fixed by changing a single location in the code are examined the same way as those that require complex changes. After examining more than 100 thousand bug reports of 380 projects, we found that bugs can be classified into four types based on the location of their fixes. Type 1 bugs are the ones that fixed by modifying a single location in the code, while Type 2 refers to bugs that are fixed in more than one location. Type 3 refers to multiple bugs that are fixed in the exact same location. Type 4 is an extension of Type 3, where multiple bugs are resolved by modifying the same set of locations. This classification can help companies put the resources where they are needed the most. It also provides useful insight into the quality of the code. Knowing, for example, that a system contains a large number of bugs of Type 4 suggests that high maintenance efforts. This classification can also be used for other tasks such as predicting the type of incoming bugs for an improved bug handling process. For example, if a bug is found to be of Type 4 then it should be directed to experienced developers
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
对bug进行分类以促进软件可维护性任务
软件可维护性是一个重要的软件质量属性,它定义了软件系统被理解、修复或增强的程度。近年来,人们越来越关注挖掘大型错误存储库的技术和工具,以帮助软件开发人员了解错误的原因并加快修复过程。然而,这些技术以同样的方式处理所有的bug。通过更改代码中的单个位置来修复的错误与需要进行复杂更改的错误的检查方式相同。在检查了380个项目的超过10万个bug报告后,我们发现基于它们修复的位置,bug可以分为四种类型。类型1是指通过修改代码中的单个位置来修复的错误,而类型2是指在多个位置修复的错误。类型3指的是在完全相同的位置修复多个错误。类型4是类型3的扩展,其中通过修改同一组位置来解决多个错误。这种分类可以帮助公司把资源放在最需要的地方。它还提供了对代码质量的有用洞察。例如,知道一个系统包含大量的类型4的错误意味着需要付出很高的维护工作。这种分类还可以用于其他任务,例如预测传入错误的类型,以改进错误处理过程。例如,如果发现一个错误属于第4类,那么应该将其提交给有经验的开发人员
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Software Quality through the Eyes of the End-User and Static Analysis Tools: A Study on Android OSS Applications Learning-Based Response Time Analysis in Real-Time Embedded Systems: A Simulation-Based Approach The Quality of Junit Tests: An Empirical Study Report Timing Verification of Component-Based Vehicle Software with Rubus-ICE: End-User's Experience Prioritizing Alerts from Multiple Static Analysis Tools, Using Classification Models
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1