首页 > 最新文献

2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)最新文献

英文 中文
Guided, Automated Testing of Blockchain-Based Decentralized Applications 基于区块链的去中心化应用程序的引导、自动化测试
Jianbo Gao
As blockchain-based decentralized applications (DApp) become increasingly popular recently, there is an urgent demand for effective testing schemes and tools. Due to the complexity introduced by application-blockchain interaction, existing testing methods become non-applicable. In this paper, we present a guided and automated framework called Sungari to test DApps. The insights behind Sungari are two-fold. First, we employ random events to infer an abstract relation between frontend and blockchain. Second, we use the relation to generate event sequnces in a guided manner that can cover blockchain smart contracts as quick as possible. In a real-world DApp case study, Sungari outperformed random approach by covering 33% more application use cases.
随着基于区块链的去中心化应用(DApp)越来越流行,迫切需要有效的测试方案和工具。由于应用-区块链交互带来的复杂性,现有的测试方法变得不适用。在本文中,我们提出了一个名为Sungari的指导和自动化框架来测试dapp。桑加里背后的见解有两个方面。首先,我们使用随机事件来推断前端和区块链之间的抽象关系。其次,我们使用该关系以引导的方式生成事件序列,可以尽快覆盖区块链智能合约。在真实的DApp案例研究中,Sungari通过覆盖33%以上的应用程序用例,优于随机方法。
{"title":"Guided, Automated Testing of Blockchain-Based Decentralized Applications","authors":"Jianbo Gao","doi":"10.1109/ICSE-Companion.2019.00059","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00059","url":null,"abstract":"As blockchain-based decentralized applications (DApp) become increasingly popular recently, there is an urgent demand for effective testing schemes and tools. Due to the complexity introduced by application-blockchain interaction, existing testing methods become non-applicable. In this paper, we present a guided and automated framework called Sungari to test DApps. The insights behind Sungari are two-fold. First, we employ random events to infer an abstract relation between frontend and blockchain. Second, we use the relation to generate event sequnces in a guided manner that can cover blockchain smart contracts as quick as possible. In a real-world DApp case study, Sungari outperformed random approach by covering 33% more application use cases.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117059029","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
xLineMapper: A Product Line Feature-Architecture-Implementation Mapping Toolset xLineMapper:产品线功能-架构-实现映射工具集
Cuong Cu, Xin Ye, Yongjie Zheng
This paper presents an Eclipse-based toolset named xLineMapper to automatically manage the relationships (e.g., traceability, conformance) among product line features, architecture, and source code. The xLineMapper toolset can (1) trace a product line feature to its related architectural elements and code fragments, (2) automatically update both product line architecture and code when a feature is changed, and (3) automatically customize product line architecture and code for a particular product based on its feature configuration. This is an improvement from existing product line approaches which only support either feature-architecture or feature-code mapping. We conducted a case study of xLineMapper with a large open-source software system, Apache Solr. A video demo of xLineMapper is available at https://youtu.be/pdO-vnE8U6w.
本文介绍了一个名为xLineMapper的基于eclipse的工具集,用于自动管理产品线特性、体系结构和源代码之间的关系(例如,可追溯性、一致性)。xLineMapper工具集可以(1)跟踪产品线特性到它相关的架构元素和代码片段,(2)当一个特性发生变化时自动更新产品线架构和代码,以及(3)根据其特性配置自动定制产品线架构和特定产品的代码。这是对现有产品线方法的改进,现有产品线方法只支持功能架构或功能代码映射。我们使用大型开源软件系统Apache Solr对xLineMapper进行了一个案例研究。xLineMapper的视频演示可以在https://youtu.be/pdO-vnE8U6w上获得。
{"title":"xLineMapper: A Product Line Feature-Architecture-Implementation Mapping Toolset","authors":"Cuong Cu, Xin Ye, Yongjie Zheng","doi":"10.1109/ICSE-Companion.2019.00045","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00045","url":null,"abstract":"This paper presents an Eclipse-based toolset named xLineMapper to automatically manage the relationships (e.g., traceability, conformance) among product line features, architecture, and source code. The xLineMapper toolset can (1) trace a product line feature to its related architectural elements and code fragments, (2) automatically update both product line architecture and code when a feature is changed, and (3) automatically customize product line architecture and code for a particular product based on its feature configuration. This is an improvement from existing product line approaches which only support either feature-architecture or feature-code mapping. We conducted a case study of xLineMapper with a large open-source software system, Apache Solr. A video demo of xLineMapper is available at https://youtu.be/pdO-vnE8U6w.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121711540","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
Feedback in Scrum: Data-Informed Retrospectives Scrum中的反馈:基于数据的回顾
Christoph Matthies
Improving the way that teams work together by reflecting and improving the executed process is at the heart of agile processes. The idea of iterative process improvement takes various forms in different agile development methodologies, e.g. Scrum Retrospectives. However, these methods do not prescribe how improvement steps should be conducted in detail. In this research we investigate how agile software teams can use their development data, such as commits or tickets, created during regular development activities, to drive and track process improvement steps. Our previous research focused on data-informed process improvement in the context of student teams, where controlled circumstances and deep domain knowledge allowed creation and usage of specific process measures. Encouraged by positive results in this area, we investigate the process improvement approaches employed in industry teams. Researching how the vital mechanism of process improvement is implemented and how development data is already being used in practice in modern software development leads to a more complete picture of agile process improvement. It is the first step in enabling a data-informed feedback and improvement process, tailored to a team's context and based on the development data of individual teams.
通过反映和改进已执行的过程来改进团队协同工作的方式是敏捷过程的核心。迭代过程改进的思想在不同的敏捷开发方法中有不同的形式,例如Scrum回顾。然而,这些方法并没有详细规定如何进行改进步骤。在这项研究中,我们调查了敏捷软件团队如何使用他们的开发数据,例如在常规开发活动中创建的提交或票据,来驱动和跟踪过程改进步骤。我们之前的研究集中在学生团队背景下的数据通知过程改进,其中受控的环境和深入的领域知识允许创建和使用特定的过程度量。受到这方面积极成果的鼓舞,我们调查了行业团队中采用的过程改进方法。研究过程改进的重要机制是如何实现的,以及开发数据是如何在现代软件开发的实践中被使用的,可以更全面地了解敏捷过程改进。这是实现基于数据的反馈和改进过程的第一步,根据团队的背景和单个团队的开发数据进行定制。
{"title":"Feedback in Scrum: Data-Informed Retrospectives","authors":"Christoph Matthies","doi":"10.1109/ICSE-Companion.2019.00081","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00081","url":null,"abstract":"Improving the way that teams work together by reflecting and improving the executed process is at the heart of agile processes. The idea of iterative process improvement takes various forms in different agile development methodologies, e.g. Scrum Retrospectives. However, these methods do not prescribe how improvement steps should be conducted in detail. In this research we investigate how agile software teams can use their development data, such as commits or tickets, created during regular development activities, to drive and track process improvement steps. Our previous research focused on data-informed process improvement in the context of student teams, where controlled circumstances and deep domain knowledge allowed creation and usage of specific process measures. Encouraged by positive results in this area, we investigate the process improvement approaches employed in industry teams. Researching how the vital mechanism of process improvement is implemented and how development data is already being used in practice in modern software development leads to a more complete picture of agile process improvement. It is the first step in enabling a data-informed feedback and improvement process, tailored to a team's context and based on the development data of individual teams.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122391427","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}
引用次数: 2
Vetting API Usages in C Programs with IMChecker 用IMChecker检查C程序中的API用法
Zuxing Gu, Jiecheng Wu, Chi Li, Min Zhou, Yu Jiang, M. Gu, Jiaguang Sun
Libraries offer reusable functionality through application programming interfaces (APIs) with usage constraints such as call conditions and orders. Constraint violations, i.e., API misuses, commonly lead to bugs and even security issues. In this paper, we introduce IMChecker, a constraint-directed static analysis toolkit to vet API usages in C programs powered by a domain-specific language (DSL) to specify the API usages. First, we propose a DSL, which covers most API usage constraint types and enables straightforward but precise specification by studying real-world API-misuse bug patches. Then, we design and implement a static analysis engine to automatically parse specifications into checking targets, identify potential API misuses and prune the false positives with rich semantics. We have instantiated IMChecker for C programs with user-friendly graphic interfaces and evaluated the widely used benchmarks and real-world projects. The results show that IMChecker outperforms 4.78-36.25% in precision and 40.25-55.21% w.r.t. state-of-the-arts toolkits. We also found 75 previously unknown bugs in Linux kernel, OpenSSL and applications of Ubuntu, 61 of which have been confirmed by the corresponding development communities. Video: https://youtu.be/YGDxeyOEVIM
库通过带有调用条件和顺序等使用约束的应用程序编程接口(api)提供可重用的功能。违反约束,即API误用,通常会导致bug甚至安全问题。在本文中,我们介绍了IMChecker,这是一个约束导向的静态分析工具包,用于审查由领域特定语言(DSL)支持的C程序中的API使用情况,以指定API使用情况。首先,我们提出了一个DSL,它涵盖了大多数API使用约束类型,并通过研究实际的API误用错误补丁来实现简单而精确的规范。然后,我们设计并实现了一个静态分析引擎,将规范自动解析为检查目标,识别潜在的API误用,并通过丰富的语义修剪误报。我们已经实例化了IMChecker的C程序与用户友好的图形界面,并评估了广泛使用的基准和现实世界的项目。结果表明,IMChecker的精度比目前最先进的工具高出4.78-36.25%,w.r.t.高出40.25-55.21%。我们还在Linux内核、OpenSSL和Ubuntu应用程序中发现了75个之前未知的bug,其中61个已经得到相应开发社区的确认。的视频:https://youtu.be/YGDxeyOEVIM
{"title":"Vetting API Usages in C Programs with IMChecker","authors":"Zuxing Gu, Jiecheng Wu, Chi Li, Min Zhou, Yu Jiang, M. Gu, Jiaguang Sun","doi":"10.1109/ICSE-Companion.2019.00046","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00046","url":null,"abstract":"Libraries offer reusable functionality through application programming interfaces (APIs) with usage constraints such as call conditions and orders. Constraint violations, i.e., API misuses, commonly lead to bugs and even security issues. In this paper, we introduce IMChecker, a constraint-directed static analysis toolkit to vet API usages in C programs powered by a domain-specific language (DSL) to specify the API usages. First, we propose a DSL, which covers most API usage constraint types and enables straightforward but precise specification by studying real-world API-misuse bug patches. Then, we design and implement a static analysis engine to automatically parse specifications into checking targets, identify potential API misuses and prune the false positives with rich semantics. We have instantiated IMChecker for C programs with user-friendly graphic interfaces and evaluated the widely used benchmarks and real-world projects. The results show that IMChecker outperforms 4.78-36.25% in precision and 40.25-55.21% w.r.t. state-of-the-arts toolkits. We also found 75 previously unknown bugs in Linux kernel, OpenSSL and applications of Ubuntu, 61 of which have been confirmed by the corresponding development communities. Video: https://youtu.be/YGDxeyOEVIM","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116242793","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}
引用次数: 5
Directives of Communicability: Teaching Students How to Improve Communication Through Software Modeling 沟通能力的指导:教学生如何通过软件建模提高沟通能力
Adriana Lopes, E. Oliveira, T. Conte, C. D. Souza
In the development process, software models are used to support communication among development team members. Failures of communication that is mediated by software models may generate inconsistencies in software behavior, generating rework to correct them. This may occur because producers usually focus only on model content, although they should also reflect on how other members of the development team will interpret their models. We should therefore teach software engineering students how to communicate better through software models. In an attempt to improve communication through software models, we have developed the Directives of Communicability (DCs), based on theories that investigate different kinds of communication. In this poster, we present the highlights of a study to find out whether DCs improve software engineering students' communication through software models. Our results confirm that DCs have improved the students' reflections on how their models' content will be interpreted during the software development process.
在开发过程中,软件模型用于支持开发团队成员之间的通信。由软件模型调解的通信失败可能会在软件行为中产生不一致,从而产生返工来纠正它们。这可能是因为制作人通常只关注模型内容,尽管他们也应该考虑开发团队的其他成员将如何解释他们的模型。因此,我们应该教软件工程专业的学生如何通过软件模型更好地进行交流。为了通过软件模型改进通信,我们基于研究不同类型通信的理论,开发了可通信性指令(DCs)。在这张海报中,我们展示了一项研究的亮点,该研究旨在了解DCs是否通过软件模型提高了软件工程专业学生的沟通能力。我们的研究结果证实,DCs提高了学生对软件开发过程中如何解释模型内容的思考。
{"title":"Directives of Communicability: Teaching Students How to Improve Communication Through Software Modeling","authors":"Adriana Lopes, E. Oliveira, T. Conte, C. D. Souza","doi":"10.1109/ICSE-Companion.2019.00127","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00127","url":null,"abstract":"In the development process, software models are used to support communication among development team members. Failures of communication that is mediated by software models may generate inconsistencies in software behavior, generating rework to correct them. This may occur because producers usually focus only on model content, although they should also reflect on how other members of the development team will interpret their models. We should therefore teach software engineering students how to communicate better through software models. In an attempt to improve communication through software models, we have developed the Directives of Communicability (DCs), based on theories that investigate different kinds of communication. In this poster, we present the highlights of a study to find out whether DCs improve software engineering students' communication through software models. Our results confirm that DCs have improved the students' reflections on how their models' content will be interpreted during the software development process.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128669454","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}
引用次数: 2
Towards Crowd-Sourced API Documentation 面向众包API文档
Gias Uddin, Foutse Khomh, C. Roy
The learnability of an API suffers when the official documentation of the API is incomplete. Developers discuss usage scenarios of APIs in the online developer forums. As such, by automatically mining such crowd-sourced documentation of APIs, we can address the shortcomings of API official documentation. We present a framework to automatically mine usage scenarios about APIs from online developer forums. Each usage scenario of an API consists of a code example, a summary description, and the reactions (i.e., positive and negative opinions) of other developers towards the code example. We evaluate our API usage mining framework by producing a benchmark dataset. We observed a precision of 0.947 and a recall of 1.0 with the linking of a code example to an API mention in the forum.
当API的官方文档不完整时,API的可学习性就会受到影响。开发人员在在线开发人员论坛中讨论api的使用场景。因此,通过自动挖掘这些API的众包文档,我们可以解决API官方文档的缺点。我们提出了一个框架,从在线开发者论坛中自动挖掘api的使用场景。API的每个使用场景都由代码示例、摘要描述和其他开发人员对代码示例的反应(即积极和消极的意见)组成。我们通过生成基准数据集来评估我们的API使用挖掘框架。通过将代码示例链接到论坛中提到的API,我们观察到精度为0.947,召回率为1.0。
{"title":"Towards Crowd-Sourced API Documentation","authors":"Gias Uddin, Foutse Khomh, C. Roy","doi":"10.1109/ICSE-Companion.2019.00129","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00129","url":null,"abstract":"The learnability of an API suffers when the official documentation of the API is incomplete. Developers discuss usage scenarios of APIs in the online developer forums. As such, by automatically mining such crowd-sourced documentation of APIs, we can address the shortcomings of API official documentation. We present a framework to automatically mine usage scenarios about APIs from online developer forums. Each usage scenario of an API consists of a code example, a summary description, and the reactions (i.e., positive and negative opinions) of other developers towards the code example. We evaluate our API usage mining framework by producing a benchmark dataset. We observed a precision of 0.947 and a recall of 1.0 with the linking of a code example to an API mention in the forum.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"26 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114913725","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}
引用次数: 5
Energy Distribution Matters in Greybox Fuzzing 灰盒模糊测试中的能量分配问题
Lingyun Situ, Linzhang Wang, Xuandong Li, Le Guan, Wenhui Zhang, Peng Liu
Existing energy distribution strategies of AFL and its variants have two limitations. (1) They focus on increasing coverage but ignore the fact that some code regions are more likely to be vulnerable. (2) They randomly select mutators and deterministically specify the number to mutator, therefore lack insights regarding which granularity of mutators are more helpful at that particular stage. We improve the two limitations of AFL's fuzzing energy distribution in a principled way. We direct the fuzzer to strengthen fuzzing toward regions that have a higher probability to contain vulnerabilities based on static semantic metrics of the target program. Furthermore, granularity-aware scheduling of mutators is proposed, which dynamically assigns ratios to different mutation operators. We implemented these improvements as an extension to AFL. Large-scale experimental evaluations showed the effectiveness of each improvement and performance of integration. The proposed tool has helped us find 12 new bugs and expose three new CVEs.
现有的AFL及其变体的能量分配策略存在两个局限性。(1)他们专注于增加覆盖率,但忽略了一些代码区域更容易受到攻击的事实。(2)他们随机选择突变子并确定指定要突变的数量,因此缺乏对特定阶段哪种粒度的突变子更有帮助的见解。我们从原则性上改进了AFL模糊能量分布的两个局限性。我们根据目标程序的静态语义度量,指导模糊器对包含漏洞的概率更高的区域加强模糊。在此基础上,提出了基于粒度感知的变异算子调度方法,对不同的变异算子动态分配比例。我们将这些改进作为AFL的扩展来实现。大规模的实验评估表明了每次改进的有效性和集成的性能。这个被提议的工具已经帮助我们发现了12个新的bug,并暴露了3个新的cve。
{"title":"Energy Distribution Matters in Greybox Fuzzing","authors":"Lingyun Situ, Linzhang Wang, Xuandong Li, Le Guan, Wenhui Zhang, Peng Liu","doi":"10.1109/ICSE-Companion.2019.00109","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00109","url":null,"abstract":"Existing energy distribution strategies of AFL and its variants have two limitations. (1) They focus on increasing coverage but ignore the fact that some code regions are more likely to be vulnerable. (2) They randomly select mutators and deterministically specify the number to mutator, therefore lack insights regarding which granularity of mutators are more helpful at that particular stage. We improve the two limitations of AFL's fuzzing energy distribution in a principled way. We direct the fuzzer to strengthen fuzzing toward regions that have a higher probability to contain vulnerabilities based on static semantic metrics of the target program. Furthermore, granularity-aware scheduling of mutators is proposed, which dynamically assigns ratios to different mutation operators. We implemented these improvements as an extension to AFL. Large-scale experimental evaluations showed the effectiveness of each improvement and performance of integration. The proposed tool has helped us find 12 new bugs and expose three new CVEs.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"20 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114399630","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}
引用次数: 7
Toward Detection and Characterization of Variability Bugs in Configurable C Software: An Empirical Study 可配置C软件中可变性缺陷的检测与表征:一项实证研究
Austin Mordahl
Variability in C software is a useful tool, but critical bugs that only exist in certain configurations are easily missed by conventional debugging techniques. Even with a small number of features, the configuration space of configurable software is too large to analyze exhaustively. Variability-aware static analysis for bug detection is being developed, but remains at too early a stage to be fully usable in real-world C programs. In this work, we present a methodology of finding variability bugs by combining variability-oblivious bug detectors, static analysis of build processes, and dynamic feature interaction inference. We further present an empirical study in which we test our methodology on two highly configurable C programs. We found our methodology to be effective, finding 88 true bugs between the two programs, of which 64 were variability bugs.
C软件中的可变性是一个有用的工具,但是仅存在于某些配置中的关键错误很容易被传统的调试技术遗漏。即使只有少量的特性,可配置软件的配置空间也太大,无法进行详尽的分析。用于错误检测的可变性感知静态分析正在开发中,但仍处于早期阶段,无法在实际的C程序中完全可用。在这项工作中,我们提出了一种通过结合可变性无关错误检测器、构建过程的静态分析和动态特征交互推理来发现可变性错误的方法。我们进一步提出了一项实证研究,其中我们在两个高度可配置的C程序上测试了我们的方法。我们发现我们的方法是有效的,在两个程序之间发现了88个真正的错误,其中64个是可变性错误。
{"title":"Toward Detection and Characterization of Variability Bugs in Configurable C Software: An Empirical Study","authors":"Austin Mordahl","doi":"10.1109/ICSE-Companion.2019.00064","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00064","url":null,"abstract":"Variability in C software is a useful tool, but critical bugs that only exist in certain configurations are easily missed by conventional debugging techniques. Even with a small number of features, the configuration space of configurable software is too large to analyze exhaustively. Variability-aware static analysis for bug detection is being developed, but remains at too early a stage to be fully usable in real-world C programs. In this work, we present a methodology of finding variability bugs by combining variability-oblivious bug detectors, static analysis of build processes, and dynamic feature interaction inference. We further present an empirical study in which we test our methodology on two highly configurable C programs. We found our methodology to be effective, finding 88 true bugs between the two programs, of which 64 were variability bugs.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114311862","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}
引用次数: 2
Analyzing and Repairing Compilation Errors 分析和修复编译错误
A. Mesbah, A. Rice, E. Aftandilian, Emily Johnston, Nick Glorioso
Resolving a build failure consumes developer time both in finding a suitable resolution and in rerunning the build. Our goal is to develop automated repair tools that can automatically resolve build errors and therefore improve developer productivity. We collected data on the resolution of Java build failures to discover how long developers spend resolving different kinds of diagnostics at Google. We found that the diagnostic reporting an unresolved symbol consumes 47% of the total time spent resolving broken builds. We found that choice of tool has a significant impact: 26% of command line builds fail whereas only 3% of IDE builds fail. However, the set of most costly diagnostic kinds remains the same for both. We trained a Neural Machine Translation model on the Abstract Syntax Tree changes made when resolving an unresolved symbol failure. This generates a correct fix with a true positive rate of 50%.
解决构建失败会消耗开发人员寻找合适的解决方案和重新运行构建的时间。我们的目标是开发能够自动解决构建错误的自动修复工具,从而提高开发人员的工作效率。我们收集了关于解决Java构建失败的数据,以发现开发人员在Google上解决不同类型的诊断所花费的时间。我们发现,诊断报告一个未解决的符号消耗了解决损坏构建所花费的总时间的47%。我们发现工具的选择有很大的影响:26%的命令行构建失败,而只有3%的IDE构建失败。然而,对这两种疾病来说,最昂贵的诊断方法仍然是一样的。我们在抽象语法树上训练了一个神经机器翻译模型,该模型是在解决未解决的符号错误时所做的更改。这将生成一个真阳性率为50%的正确修复。
{"title":"Analyzing and Repairing Compilation Errors","authors":"A. Mesbah, A. Rice, E. Aftandilian, Emily Johnston, Nick Glorioso","doi":"10.1109/ICSE-Companion.2019.00121","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00121","url":null,"abstract":"Resolving a build failure consumes developer time both in finding a suitable resolution and in rerunning the build. Our goal is to develop automated repair tools that can automatically resolve build errors and therefore improve developer productivity. We collected data on the resolution of Java build failures to discover how long developers spend resolving different kinds of diagnostics at Google. We found that the diagnostic reporting an unresolved symbol consumes 47% of the total time spent resolving broken builds. We found that choice of tool has a significant impact: 26% of command line builds fail whereas only 3% of IDE builds fail. However, the set of most costly diagnostic kinds remains the same for both. We trained a Neural Machine Translation model on the Abstract Syntax Tree changes made when resolving an unresolved symbol failure. This generates a correct fix with a true positive rate of 50%.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127070518","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
Enhancing Precision of Structured Merge by Proper Tree Matching 通过适当的树匹配提高结构化合并的精度
Fengmin Zhu, Fei He, Q. Yu
Recently, structured merge has shown its advantage in improving the merge precision over conventional line-based, unstructured merge. A typical structured merge algorithm consists of matching and amalgamation on abstract syntax trees. Existing tree matching techniques aim to figure out optimal matches by maximizing the number of matched nodes. From real-world codebases, however, we find that many of the reported conflicts are unnecessary. We propose a new objective function for defining a proper tree matching, with which the overall conflicting rate can be greatly reduced. We conducted experiments on 3,687 merge scenarios extracted from 18 open-source projects. Results show significant merge precision enhancement of our approach.
近年来,与传统的基于线的非结构化合并相比,结构化合并在提高合并精度方面显示出了优势。典型的结构化归并算法是在抽象语法树上进行匹配和合并。现有的树匹配技术的目标是通过最大化匹配节点的数量来找出最优匹配。然而,从现实世界的代码库来看,我们发现许多报告的冲突都是不必要的。我们提出了一个新的目标函数来定义合适的树匹配,它可以大大降低总体冲突率。我们对从18个开源项目中提取的3687个合并场景进行了实验。结果表明,该方法显著提高了合并精度。
{"title":"Enhancing Precision of Structured Merge by Proper Tree Matching","authors":"Fengmin Zhu, Fei He, Q. Yu","doi":"10.1109/ICSE-Companion.2019.00117","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00117","url":null,"abstract":"Recently, structured merge has shown its advantage in improving the merge precision over conventional line-based, unstructured merge. A typical structured merge algorithm consists of matching and amalgamation on abstract syntax trees. Existing tree matching techniques aim to figure out optimal matches by maximizing the number of matched nodes. From real-world codebases, however, we find that many of the reported conflicts are unnecessary. We propose a new objective function for defining a proper tree matching, with which the overall conflicting rate can be greatly reduced. We conducted experiments on 3,687 merge scenarios extracted from 18 open-source projects. Results show significant merge precision enhancement of our approach.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115716686","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}
引用次数: 9
期刊
2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
全部 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