首页 > 最新文献

ESEC/FSE '11最新文献

英文 中文
Static deep error checking in large system applications using parfait 使用parfait的大型系统应用程序中的静态深度错误检查
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025183
C. Cifuentes, Nathan Keynes, Lian Li, Nathan Hawes, Manuel Valdiviezo, Andrew Browne, J. Zimmermann, Andrew Craik, Douglas Teoh, Christian Hoermann
In this paper, we introduce Parfait, a static bug-checking tool for C/C++ applications. Parfait achieves precision and scalability at the same time by employing a layered program analysis framework. In Parfait, different analyses varying in precision and runtime expense can be invoked on demand to detect defects of a specific type, effectively achieving higher precision with smaller runtime overheads. Several production organizations within Oracle have started to integrate Parfait into their development process. Feedback from various production teams suggests that it is precise and scalable: the tool is able to analyze the OpenSolarisTM operating system and network consolidation (ON) with more than 6 million lines of code in 1 hour, and report thousands of defects with a false positive rate of close to 10%.
在本文中,我们介绍了Parfait,一个用于C/ c++应用程序的静态错误检查工具。Parfait通过采用分层的程序分析框架,同时实现了精度和可扩展性。在Parfait中,可以根据需要调用精度和运行时开销不同的分析,以检测特定类型的缺陷,从而以较小的运行时开销有效地实现更高的精度。Oracle内部的几个生产组织已经开始将Parfait集成到他们的开发过程中。来自不同生产团队的反馈表明,它是精确的和可扩展的:该工具能够在1小时内分析超过600万行代码的OpenSolarisTM操作系统和网络整合(ON),并以接近10%的误报率报告数千个缺陷。
{"title":"Static deep error checking in large system applications using parfait","authors":"C. Cifuentes, Nathan Keynes, Lian Li, Nathan Hawes, Manuel Valdiviezo, Andrew Browne, J. Zimmermann, Andrew Craik, Douglas Teoh, Christian Hoermann","doi":"10.1145/2025113.2025183","DOIUrl":"https://doi.org/10.1145/2025113.2025183","url":null,"abstract":"In this paper, we introduce Parfait, a static bug-checking tool for C/C++ applications. Parfait achieves precision and scalability at the same time by employing a layered program analysis framework. In Parfait, different analyses varying in precision and runtime expense can be invoked on demand to detect defects of a specific type, effectively achieving higher precision with smaller runtime overheads. Several production organizations within Oracle have started to integrate Parfait into their development process. Feedback from various production teams suggests that it is precise and scalable: the tool is able to analyze the OpenSolarisTM operating system and network consolidation (ON) with more than 6 million lines of code in 1 hour, and report thousands of defects with a false positive rate of close to 10%.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134379097","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
The onion patch: migration in open source ecosystems 洋葱补丁:开源生态系统中的迁移
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025127
C. Jergensen, A. Sarma, Patrick Wagstrom
Past research established that individuals joining an Open Source community typically follow a socialization process called "the onion model": newcomers join a project by first contributing at the periphery through mailing list discussions and bug trackers and as they develop skill and reputation within the community they advance to central roles of contributing code and making design decisions. However, the modern Open Source landscape has fewer projects that operate independently and many projects under the umbrella of software ecosystems that bring together projects with common underlying components, technology, and social norms. Participants in such an ecosystems may be able to utilize a significant amount of transferrable knowledge when moving between projects in the ecosystem and, thereby, skip steps in the onion model. In this paper, we examine whether the onion model of joining and progressing in a standalone Open Source project still holds true in large project ecosystems and how the model might change in such settings.
过去的研究表明,加入开源社区的个人通常遵循一个被称为“洋葱模型”的社会化过程:新人加入一个项目,首先通过邮件列表讨论和bug跟踪在外围做出贡献,随着他们在社区中发展技能和声誉,他们就会晋升为贡献代码和制定设计决策的核心角色。然而,现代开源环境中独立运行的项目越来越少,而许多项目都在软件生态系统的保护伞下,这些生态系统将具有公共底层组件、技术和社会规范的项目结合在一起。当在生态系统中的项目之间移动时,这样的生态系统中的参与者可能能够利用大量可转移的知识,从而跳过洋葱模型中的步骤。在本文中,我们研究了在独立开源项目中加入和发展的洋葱模型是否仍然适用于大型项目生态系统,以及该模型在这种环境下可能发生的变化。
{"title":"The onion patch: migration in open source ecosystems","authors":"C. Jergensen, A. Sarma, Patrick Wagstrom","doi":"10.1145/2025113.2025127","DOIUrl":"https://doi.org/10.1145/2025113.2025127","url":null,"abstract":"Past research established that individuals joining an Open Source community typically follow a socialization process called \"the onion model\": newcomers join a project by first contributing at the periphery through mailing list discussions and bug trackers and as they develop skill and reputation within the community they advance to central roles of contributing code and making design decisions. However, the modern Open Source landscape has fewer projects that operate independently and many projects under the umbrella of software ecosystems that bring together projects with common underlying components, technology, and social norms. Participants in such an ecosystems may be able to utilize a significant amount of transferrable knowledge when moving between projects in the ecosystem and, thereby, skip steps in the onion model. In this paper, we examine whether the onion model of joining and progressing in a standalone Open Source project still holds true in large project ecosystems and how the model might change in such settings.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115360777","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 131
A software lifecycle process for context-aware adaptive systems 上下文感知自适应系统的软件生命周期过程
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025177
Marco Mori
It is increasingly important for computing systems to evolve their behavior at run-time because of resources uncertainty, system failures and emerging user needs. Our approach supports software engineers to analyze and develop context-aware adaptive applications. The software lifecycle process we propose supports static and dynamic decision making mechanisms, run-time consistent evolution and it is amenable to be automated.
由于资源不确定性、系统故障和新出现的用户需求,计算系统在运行时演化其行为变得越来越重要。我们的方法支持软件工程师分析和开发上下文感知的自适应应用程序。我们提出的软件生命周期过程支持静态和动态的决策机制,支持运行时一致的演进,并且易于自动化。
{"title":"A software lifecycle process for context-aware adaptive systems","authors":"Marco Mori","doi":"10.1145/2025113.2025177","DOIUrl":"https://doi.org/10.1145/2025113.2025177","url":null,"abstract":"It is increasingly important for computing systems to evolve their behavior at run-time because of resources uncertainty, system failures and emerging user needs. Our approach supports software engineers to analyze and develop context-aware adaptive applications. The software lifecycle process we propose supports static and dynamic decision making mechanisms, run-time consistent evolution and it is amenable to be automated.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116276098","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Fuzzy set and cache-based approach for bug triaging 基于模糊集和缓存的bug分类方法
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025163
Ahmed Tamrawi, T. Nguyen, Jafar M. Al-Kofahi, T. Nguyen
Bug triaging aims to assign a bug to the most appropriate fixer. That task is crucial in reducing time and efforts in a bug fixing process. In this paper, we propose Bugzie, a novel approach for automatic bug triaging based on fuzzy set and cache-based modeling of the bug-fixing expertise of developers. Bugzie considers a software system to have multiple technical aspects, each of which is associated with technical terms. For each technical term, it uses a fuzzy set to represent the developers who are capable/competent of fixing the bugs relevant to the corresponding aspect. The fixing correlation of a developer toward a technical term is represented by his/her membership score toward the corresponding fuzzy set. The score is calculated based on the bug reports that (s)he has fixed, and is updated as the newly fixed bug reports are available. For a new bug report, Bugzie combines the fuzzy sets corresponding to its terms and ranks the developers based on their membership scores toward that combined fuzzy set to find the most capable fixers. Our empirical results show that Bugzie achieves significantly higher accuracy and time efficiency than existing state-of-the-art approaches.
Bug分类的目的是将Bug分配给最合适的修复者。这项任务对于减少bug修复过程中的时间和精力至关重要。在本文中,我们提出了Bugzie,一种基于模糊集和基于缓存的开发人员错误修复专业知识建模的自动错误分类方法。Bugzie认为软件系统具有多个技术方面,每个技术方面都与技术术语相关联。对于每个技术术语,它使用一个模糊集来表示有能力/有能力修复与相应方面相关的错误的开发人员。开发人员对技术术语的固定相关性表示为他/她对相应模糊集的隶属度得分。分数是根据他修复的错误报告计算的,并在新修复的错误报告可用时更新。对于一个新的bug报告,Bugzie结合了与它的术语相对应的模糊集,并根据开发人员在这个组合模糊集上的成员得分对他们进行排名,以找到最有能力的修复者。我们的实证结果表明,与现有的最先进的方法相比,Bugzie实现了更高的准确性和时间效率。
{"title":"Fuzzy set and cache-based approach for bug triaging","authors":"Ahmed Tamrawi, T. Nguyen, Jafar M. Al-Kofahi, T. Nguyen","doi":"10.1145/2025113.2025163","DOIUrl":"https://doi.org/10.1145/2025113.2025163","url":null,"abstract":"Bug triaging aims to assign a bug to the most appropriate fixer. That task is crucial in reducing time and efforts in a bug fixing process. In this paper, we propose Bugzie, a novel approach for automatic bug triaging based on fuzzy set and cache-based modeling of the bug-fixing expertise of developers. Bugzie considers a software system to have multiple technical aspects, each of which is associated with technical terms. For each technical term, it uses a fuzzy set to represent the developers who are capable/competent of fixing the bugs relevant to the corresponding aspect. The fixing correlation of a developer toward a technical term is represented by his/her membership score toward the corresponding fuzzy set. The score is calculated based on the bug reports that (s)he has fixed, and is updated as the newly fixed bug reports are available. For a new bug report, Bugzie combines the fuzzy sets corresponding to its terms and ranks the developers based on their membership scores toward that combined fuzzy set to find the most capable fixers. Our empirical results show that Bugzie achieves significantly higher accuracy and time efficiency than existing state-of-the-art approaches.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125037617","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 162
Inferring test results for dynamic software product lines 对动态软件产品线的测试结果进行推断
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025203
B. Cafeo, J. Noppen, F. Ferrari, R. Chitchyan, A. Rashid
Due to the very large number of configurations that can typically be derived from a Dynamic Software Product Line (DSPL), efficient and effective testing of such systems have become a major challenge for software developers. In particular, when a configuration needs to be deployed quickly due to rapid contextual changes (e.g., in an unfolding crisis), time constraints hinder the proper testing of such a configuration. In this paper, we propose to reduce the testing required of such DSPLs to a relevant subset of configurations. Whenever a need to adapt to an untested configuration is encountered, our approach determines the most similar tested configuration and reuses its test results to either obtain a coverage measure or infer a confidence degree for the new, untested configuration. We focus on providing these techniques for inference of structural testing results for DSPLs, which is supported by an early prototype implementation.
由于动态软件产品线(Dynamic Software Product Line, DSPL)通常可以衍生出大量的配置,因此对此类系统进行高效和有效的测试已成为软件开发人员面临的主要挑战。特别是,当由于快速的上下文变化(例如,在展开的危机中)而需要快速部署配置时,时间限制阻碍了对这种配置的适当测试。在本文中,我们建议将此类dsl所需的测试减少到相关配置的子集。每当需要适应未测试的配置时,我们的方法决定最相似的已测试配置,并重用其测试结果,以获得覆盖度量或推断新的,未测试的配置的置信度。我们的重点是提供这些技术来推断dsl的结构测试结果,这是由早期的原型实现所支持的。
{"title":"Inferring test results for dynamic software product lines","authors":"B. Cafeo, J. Noppen, F. Ferrari, R. Chitchyan, A. Rashid","doi":"10.1145/2025113.2025203","DOIUrl":"https://doi.org/10.1145/2025113.2025203","url":null,"abstract":"Due to the very large number of configurations that can typically be derived from a Dynamic Software Product Line (DSPL), efficient and effective testing of such systems have become a major challenge for software developers. In particular, when a configuration needs to be deployed quickly due to rapid contextual changes (e.g., in an unfolding crisis), time constraints hinder the proper testing of such a configuration. In this paper, we propose to reduce the testing required of such DSPLs to a relevant subset of configurations. Whenever a need to adapt to an untested configuration is encountered, our approach determines the most similar tested configuration and reuses its test results to either obtain a coverage measure or infer a confidence degree for the new, untested configuration. We focus on providing these techniques for inference of structural testing results for DSPLs, which is supported by an early prototype implementation.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"34 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123479289","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Automatic structural testing with abstraction refinement and coarsening 具有抽象细化和粗化的自动结构测试
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025173
M. Baluda
White box testing, also referred to as structural testing, can be used to assess the validity of test suites with respect to the implementation. The applicability of white box testing and structural coverage is limited by the difficulty and the cost of inspecting the uncovered code elements to either generate test cases that cover elements not yet executed or to prove the infeasibility of the elements not yet covered. My research targets the problem of increasing code coverage by automatically generating test cases that augment the coverage of the code or proving the infeasibility of uncovered elements, and thus eliminating them from the coverage measure to obtain more realistic values. Although the problem is undecidable in general, the results achieved so far during my PhD indicate that it is possible to extend the test suites and identify many infeasible elements by suitably combining static and dynamic analysis techniques, and that it is possible to manage the combinatorial explosion of execution models by identifying and remove elements of the execution models when not needed anymore.
白盒测试,也称为结构测试,可以用来评估测试套件相对于实现的有效性。白盒测试和结构覆盖的适用性受到检查未覆盖代码元素的难度和成本的限制,这些代码元素要么生成覆盖尚未执行的元素的测试用例,要么证明尚未覆盖的元素的不可行性。我的研究目标是通过自动生成测试用例来增加代码的覆盖率,或者证明未覆盖元素的不可行性,从而从覆盖率度量中消除它们以获得更现实的值,从而增加代码覆盖率的问题。虽然这个问题一般来说是无法确定的,但在我的博士学位期间所取得的结果表明,通过适当地结合静态和动态分析技术来扩展测试套件并识别许多不可行的元素是可能的,并且可以通过识别和删除不再需要的执行模型的元素来管理执行模型的组合爆炸。
{"title":"Automatic structural testing with abstraction refinement and coarsening","authors":"M. Baluda","doi":"10.1145/2025113.2025173","DOIUrl":"https://doi.org/10.1145/2025113.2025173","url":null,"abstract":"White box testing, also referred to as structural testing, can be used to assess the validity of test suites with respect to the implementation. The applicability of white box testing and structural coverage is limited by the difficulty and the cost of inspecting the uncovered code elements to either generate test cases that cover elements not yet executed or to prove the infeasibility of the elements not yet covered.\u0000 My research targets the problem of increasing code coverage by automatically generating test cases that augment the coverage of the code or proving the infeasibility of uncovered elements, and thus eliminating them from the coverage measure to obtain more realistic values. Although the problem is undecidable in general, the results achieved so far during my PhD indicate that it is possible to extend the test suites and identify many infeasible elements by suitably combining static and dynamic analysis techniques, and that it is possible to manage the combinatorial explosion of execution models by identifying and remove elements of the execution models when not needed anymore.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125549619","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Boosting the performance of flow-sensitive points-to analysis using value flow 利用价值流提高流敏感点分析的性能
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025160
Lian Li, C. Cifuentes, Nathan Keynes
Points-to analysis is a fundamental static analysis technique which computes the set of memory objects that a pointer may point to. Many different applications, such as security-related program analyses, bug checking, and analyses of multi-threaded programs, require precise points-to information to be effective. Recent work has focused on improving the precision of points-to analysis through flow-sensitivity and great progress has been made. However, even with all recent progress, flow-sensitive points-to analysis can still be much slower than a flow-insensitive analysis. In this paper, we propose a novel method that simplifies flow-sensitive points-to analysis to a general graph reachability problem in a value flow graph. The value flow graph summarizes dependencies between pointer variables, including those memory dependencies via pointer dereferences. The points-to set for each pointer variable can then be computed as the set of memory objects that can reach it in the graph. We develop an algorithm to build the value flow graph efficiently by examining the pointed-to-by set of a memory object, i.e., the set of pointers that point to an object. The pointed-to-by information of memory objects is very useful for applications such as escape analysis, and information flow analysis. Our approach is intuitive, easy to implement and very efficient. The implementation is around 2000 lines of code and it is more efficient than existing flow-sensitive points-to analyses. The runtime is comparable with the state-of-the-art flow-insensitive points-to analysis.
指向分析是一种基本的静态分析技术,它计算指针可能指向的内存对象集。许多不同的应用程序,如与安全相关的程序分析、错误检查和多线程程序分析,都需要精确的指向信息才能有效。近年来的研究工作主要集中在通过流动灵敏度提高点对分析的精度上,并取得了很大进展。然而,即使有了最近的进展,流敏感点分析仍然比流不敏感点分析要慢得多。本文提出了一种简化价值流图中一般图可达性问题的流敏感点分析的新方法。值流图总结了指针变量之间的依赖关系,包括通过指针解引用实现的内存依赖关系。然后可以将每个指针变量的要设置的点计算为可以在图中到达它的内存对象集。我们开发了一种算法,通过检查内存对象的指向集(即指向对象的指针集)来有效地构建值流图。内存对象的指向信息对于诸如转义分析和信息流分析等应用程序非常有用。我们的方法直观,易于实施,效率很高。该实现大约有2000行代码,比现有的流敏感点分析更有效。运行时可与最先进的流不敏感点分析相媲美。
{"title":"Boosting the performance of flow-sensitive points-to analysis using value flow","authors":"Lian Li, C. Cifuentes, Nathan Keynes","doi":"10.1145/2025113.2025160","DOIUrl":"https://doi.org/10.1145/2025113.2025160","url":null,"abstract":"Points-to analysis is a fundamental static analysis technique which computes the set of memory objects that a pointer may point to. Many different applications, such as security-related program analyses, bug checking, and analyses of multi-threaded programs, require precise points-to information to be effective. Recent work has focused on improving the precision of points-to analysis through flow-sensitivity and great progress has been made. However, even with all recent progress, flow-sensitive points-to analysis can still be much slower than a flow-insensitive analysis.\u0000 In this paper, we propose a novel method that simplifies flow-sensitive points-to analysis to a general graph reachability problem in a value flow graph. The value flow graph summarizes dependencies between pointer variables, including those memory dependencies via pointer dereferences. The points-to set for each pointer variable can then be computed as the set of memory objects that can reach it in the graph. We develop an algorithm to build the value flow graph efficiently by examining the pointed-to-by set of a memory object, i.e., the set of pointers that point to an object. The pointed-to-by information of memory objects is very useful for applications such as escape analysis, and information flow analysis.\u0000 Our approach is intuitive, easy to implement and very efficient. The implementation is around 2000 lines of code and it is more efficient than existing flow-sensitive points-to analyses. The runtime is comparable with the state-of-the-art flow-insensitive points-to analysis.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116222132","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 83
High-impact defects: a study of breakage and surprise defects 高冲击缺陷:断裂缺陷和意外缺陷的研究
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025155
Emad Shihab, A. Mockus, Yasutaka Kamei, Bram Adams, A. Hassan
The relationship between various software-related phenomena (e.g., code complexity) and post-release software defects has been thoroughly examined. However, to date these predictions have a limited adoption in practice. The most commonly cited reason is that the prediction identifies too much code to review without distinguishing the impact of these defects. Our aim is to address this drawback by focusing on high-impact defects for customers and practitioners. Customers are highly impacted by defects that break pre-existing functionality (breakage defects), whereas practitioners are caught off-guard by defects in files that had relatively few pre-release changes (surprise defects). The large commercial software system that we study already had an established concept of breakages as the highest-impact defects, however, the concept of surprises is novel and not as well established. We find that surprise defects are related to incomplete requirements and that the common assumption that a fix is caused by a previous change does not hold in this project. We then fit prediction models that are effective at identifying files containing breakages and surprises. The number of pre-release defects and file size are good indicators of breakages, whereas the number of co-changed files and the amount of time between the latest pre-release change and the release date are good indicators of surprises. Although our prediction models are effective at identifying files that have breakages and surprises, we learn that the prediction should also identify the nature or type of defects, with each type being specific enough to be easily identified and repaired.
各种软件相关现象(例如,代码复杂性)和发布后软件缺陷之间的关系已经被彻底地检查过。然而,到目前为止,这些预测在实践中的应用有限。最常见的原因是预测识别了太多的代码,而没有区分这些缺陷的影响。我们的目标是通过关注客户和从业者的高影响缺陷来解决这个缺陷。客户受到破坏预先存在的功能的缺陷的严重影响(破坏缺陷),而从业者则被具有相对较少的发布前更改的文件中的缺陷所措手不及(意外缺陷)。我们所研究的大型商业软件系统已经建立了将破坏作为影响最大的缺陷的概念,然而,意外的概念是新颖的,并没有很好地建立起来。我们发现意外缺陷与不完整的需求有关,并且修复是由以前的更改引起的这种常见假设在这个项目中不成立。然后,我们拟合预测模型,有效地识别包含破损和意外的文件。预发布缺陷的数量和文件大小是中断的良好指示器,而共同更改文件的数量和最近的预发布更改和发布日期之间的时间量是惊喜的良好指示器。尽管我们的预测模型在识别具有破坏和意外的文件方面是有效的,但是我们知道预测还应该识别缺陷的性质或类型,每种类型都足够具体,以便容易地识别和修复。
{"title":"High-impact defects: a study of breakage and surprise defects","authors":"Emad Shihab, A. Mockus, Yasutaka Kamei, Bram Adams, A. Hassan","doi":"10.1145/2025113.2025155","DOIUrl":"https://doi.org/10.1145/2025113.2025155","url":null,"abstract":"The relationship between various software-related phenomena (e.g., code complexity) and post-release software defects has been thoroughly examined. However, to date these predictions have a limited adoption in practice. The most commonly cited reason is that the prediction identifies too much code to review without distinguishing the impact of these defects. Our aim is to address this drawback by focusing on high-impact defects for customers and practitioners. Customers are highly impacted by defects that break pre-existing functionality (breakage defects), whereas practitioners are caught off-guard by defects in files that had relatively few pre-release changes (surprise defects). The large commercial software system that we study already had an established concept of breakages as the highest-impact defects, however, the concept of surprises is novel and not as well established. We find that surprise defects are related to incomplete requirements and that the common assumption that a fix is caused by a previous change does not hold in this project. We then fit prediction models that are effective at identifying files containing breakages and surprises. The number of pre-release defects and file size are good indicators of breakages, whereas the number of co-changed files and the amount of time between the latest pre-release change and the release date are good indicators of surprises. Although our prediction models are effective at identifying files that have breakages and surprises, we learn that the prediction should also identify the nature or type of defects, with each type being specific enough to be easily identified and repaired.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"430 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132452931","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 92
8th international workshop on software quality (WoSQ) 第八届软件质量国际研讨会(WoSQ)
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025212
S. Wagner, S. Chulani, B. Wong
Software becomes ever more feature-rich and thereby harder to distinguish based on its functionality. Instead, quality is starting to differentiate between similar software products. Specifying, constructing, and assuring quality has been under research for several decades and continues to be a long- term research area because of its many facets and its com- plexity. Current national and international initiatives show that there is an active research community in academia and industry. This workshop builds on the rich experiences of a series of previous workshops and aims to bring this community together to discuss current issues and future developments.
软件的功能变得越来越丰富,因此很难根据其功能来区分。相反,质量开始在类似的软件产品之间产生差异。质量的规定、构建和保证已经进行了几十年的研究,并且由于其多方面和复杂性,将继续成为一个长期的研究领域。当前的国家和国际倡议表明,学术界和工业界都有一个活跃的研究社区。本次研讨会以之前一系列研讨会的丰富经验为基础,旨在将这个社区聚集在一起讨论当前的问题和未来的发展。
{"title":"8th international workshop on software quality (WoSQ)","authors":"S. Wagner, S. Chulani, B. Wong","doi":"10.1145/2025113.2025212","DOIUrl":"https://doi.org/10.1145/2025113.2025212","url":null,"abstract":"Software becomes ever more feature-rich and thereby harder to distinguish based on its functionality. Instead, quality is starting to differentiate between similar software products. Specifying, constructing, and assuring quality has been under research for several decades and continues to be a long- term research area because of its many facets and its com- plexity. Current national and international initiatives show that there is an active research community in academia and industry. This workshop builds on the rich experiences of a series of previous workshops and aims to bring this community together to discuss current issues and future developments.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131944804","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
SCORE: a scalable concolic testing tool for reliable embedded software SCORE:可靠的嵌入式软件可扩展的集成测试工具
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025180
Yunho Kim, Moonzoo Kim
Current industrial testing practices often generate test cases in a manual manner, which degrades both the effectiveness and efficiency of testing. To alleviate this problem, concolic testing generates test cases that can achieve high coverage in an automated fashion. One main task of concolic testing is to extract symbolic information from a concrete execution of a target program at runtime. Thus, a design decision on how to extract symbolic information affects efficiency, effectiveness, and applicability of concolic testing. We have developed a Scalable COncolic testing tool for REliable embedded software (SCORE) that targets embedded C programs. SCORE instruments a target C program to extract symbolic information and applies concolic testing to a target program in a scalable manner by utilizing a large number of distributed computing nodes. In this paper, we describe our design decisions that are implemented in SCORE and demonstrate the performance of SCORE through the experiments on the SIR benchmarks.
当前的工业测试实践经常以手工的方式生成测试用例,这降低了测试的有效性和效率。为了缓解这个问题,集合测试生成了能够以自动化方式实现高覆盖率的测试用例。concolic测试的一个主要任务是在运行时从目标程序的具体执行中提取符号信息。因此,如何提取符号信息的设计决策影响着集合测试的效率、有效性和适用性。我们已经开发了一个可伸缩的COncolic测试工具,用于可靠的嵌入式软件(SCORE),目标是嵌入式C程序。SCORE利用目标C程序提取符号信息,并利用大量分布式计算节点,以可扩展的方式对目标程序应用concolic测试。在本文中,我们描述了在SCORE中实现的设计决策,并通过在SIR基准测试上的实验证明了SCORE的性能。
{"title":"SCORE: a scalable concolic testing tool for reliable embedded software","authors":"Yunho Kim, Moonzoo Kim","doi":"10.1145/2025113.2025180","DOIUrl":"https://doi.org/10.1145/2025113.2025180","url":null,"abstract":"Current industrial testing practices often generate test cases in a manual manner, which degrades both the effectiveness and efficiency of testing. To alleviate this problem, concolic testing generates test cases that can achieve high coverage in an automated fashion. One main task of concolic testing is to extract symbolic information from a concrete execution of a target program at runtime. Thus, a design decision on how to extract symbolic information affects efficiency, effectiveness, and applicability of concolic testing. We have developed a Scalable COncolic testing tool for REliable embedded software (SCORE) that targets embedded C programs. SCORE instruments a target C program to extract symbolic information and applies concolic testing to a target program in a scalable manner by utilizing a large number of distributed computing nodes. In this paper, we describe our design decisions that are implemented in SCORE and demonstrate the performance of SCORE through the experiments on the SIR benchmarks.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"85 1-2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114027433","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 28
期刊
ESEC/FSE '11
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
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