首页 > 最新文献

2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Characterizing the Natural Language Descriptions in Software Logging Statements 软件日志语句中自然语言描述的特征
Pinjia He, Zhuangbin Chen, Shilin He, Michael R. Lyu
Logging is a common programming practice of great importance in modern software development, because software logs have been widely used in various software maintenance tasks. To provide high-quality logs, developers need to design the description text in logging statements carefully. Inappropriate descriptions will slow down or even mislead the maintenance process, such as postmortem analysis. However, there is currently a lack of rigorous guide and specifications on developer logging behaviors, which makes the construction of description text in logging statements a challenging problem. To fill this significant gap, in this paper, we systematically study what developers log, with focus on the usage of natural language descriptions in logging statements. We obtain 6 valuable findings by conducting source code analysis on 10 Java projects and 7 C# projects, which contain 28,532,975 LOC and 115,159 logging statements in total. Furthermore, our study demonstrates the potential of automated description text generation for logging statements by obtaining up to 49.04 BLEU-4 score and 62.1 ROUGE-L score using a simple information retrieval method. To facilitate future research in this field, the datasets have been publicly released.
日志记录是现代软件开发中非常重要的一种常见编程实践,因为软件日志已广泛用于各种软件维护任务。为了提供高质量的日志,开发人员需要仔细设计日志语句中的描述文本。不恰当的描述将减慢甚至误导维护过程,例如事后分析。然而,目前对于开发者日志行为缺乏严格的指导和规范,这使得日志语句中描述文本的构建成为一个具有挑战性的问题。为了填补这一重要的空白,在本文中,我们系统地研究了开发人员记录的内容,重点是在日志记录语句中使用自然语言描述。通过对10个Java项目和7个c#项目进行源代码分析,我们获得了6个有价值的发现,这些项目总共包含28,532,975条LOC和115,159条日志语句。此外,我们的研究通过使用简单的信息检索方法获得高达49.04的BLEU-4分数和62.1的ROUGE-L分数,证明了日志语句自动描述文本生成的潜力。为了促进这一领域未来的研究,这些数据集已经公开发布。
{"title":"Characterizing the Natural Language Descriptions in Software Logging Statements","authors":"Pinjia He, Zhuangbin Chen, Shilin He, Michael R. Lyu","doi":"10.1145/3238147.3238193","DOIUrl":"https://doi.org/10.1145/3238147.3238193","url":null,"abstract":"Logging is a common programming practice of great importance in modern software development, because software logs have been widely used in various software maintenance tasks. To provide high-quality logs, developers need to design the description text in logging statements carefully. Inappropriate descriptions will slow down or even mislead the maintenance process, such as postmortem analysis. However, there is currently a lack of rigorous guide and specifications on developer logging behaviors, which makes the construction of description text in logging statements a challenging problem. To fill this significant gap, in this paper, we systematically study what developers log, with focus on the usage of natural language descriptions in logging statements. We obtain 6 valuable findings by conducting source code analysis on 10 Java projects and 7 C# projects, which contain 28,532,975 LOC and 115,159 logging statements in total. Furthermore, our study demonstrates the potential of automated description text generation for logging statements by obtaining up to 49.04 BLEU-4 score and 62.1 ROUGE-L score using a simple information retrieval method. To facilitate future research in this field, the datasets have been publicly released.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"178-189"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73044014","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}
引用次数: 77
AutoConfig: Automatic Configuration Tuning for Distributed Message Systems AutoConfig:分布式消息系统的自动配置调优
Liang Bao, Xin Liu, Ziheng Xu, Baoyin Fang
Distributed message systems (DMSs) serve as the communication backbone for many real-time streaming data processing applications. To support the vast diversity of such applications, DMSs provide a large number of parameters to configure. However, It overwhelms for most users to configure these parameters well for better performance. Although many automatic configuration approaches have been proposed to address this issue, critical challenges still remain: 1) to train a better and robust performance prediction model using a limited number of samples, and 2) to search for a high-dimensional parameter space efficiently within a time constraint. In this paper, we propose AutoConfig – an automatic configuration system that can optimize producer-side throughput on DMSs. AutoConfig constructs a novel comparison-based model (CBM) that is more robust that the prediction-based model (PBM) used by previous learning-based approaches. Furthermore, AutoConfig uses a weighted Latin hypercube sampling (wLHS) approach to select a set of samples that can provide a better coverage over the high-dimensional parameter space. wLHS allows AutoConfig to search for more promising configurations using the trained CBM. We have implemented AutoConfig on the Kafka platform, and evaluated it using eight different testing scenarios deployed on a public cloud. Experimental results show that our CBM can obtain better results than that of PBM under the same random forests based model. Furthermore, AutoConfig outperforms default configurations by 215.40% on average, and five state-of-the-art configuration algorithms by 7.21%-64.56%.
分布式消息系统(dms)是许多实时流数据处理应用程序的通信骨干。为了支持各种各样的应用程序,dms提供了大量的参数进行配置。然而,对于大多数用户来说,要配置好这些参数以获得更好的性能是很困难的。尽管已经提出了许多自动配置方法来解决这个问题,但仍然存在关键挑战:1)使用有限数量的样本训练更好和鲁棒的性能预测模型;2)在时间限制内有效地搜索高维参数空间。在本文中,我们提出了AutoConfig -一个自动配置系统,可以优化dms上的生产端吞吐量。AutoConfig构建了一种新的基于比较的模型(CBM),它比以前基于学习的方法使用的基于预测的模型(PBM)更健壮。此外,AutoConfig使用加权拉丁超立方体采样(wLHS)方法来选择一组样本,这些样本可以在高维参数空间上提供更好的覆盖。wLHS允许AutoConfig使用训练好的CBM搜索更有希望的配置。我们已经在Kafka平台上实现了AutoConfig,并使用部署在公共云上的八个不同测试场景对其进行了评估。实验结果表明,在相同的基于随机森林的模型下,我们的CBM比PBM获得了更好的结果。此外,AutoConfig的性能比默认配置平均高出215.40%,五种最先进的配置算法的性能高出7.21%-64.56%。
{"title":"AutoConfig: Automatic Configuration Tuning for Distributed Message Systems","authors":"Liang Bao, Xin Liu, Ziheng Xu, Baoyin Fang","doi":"10.1145/3238147.3238175","DOIUrl":"https://doi.org/10.1145/3238147.3238175","url":null,"abstract":"Distributed message systems (DMSs) serve as the communication backbone for many real-time streaming data processing applications. To support the vast diversity of such applications, DMSs provide a large number of parameters to configure. However, It overwhelms for most users to configure these parameters well for better performance. Although many automatic configuration approaches have been proposed to address this issue, critical challenges still remain: 1) to train a better and robust performance prediction model using a limited number of samples, and 2) to search for a high-dimensional parameter space efficiently within a time constraint. In this paper, we propose AutoConfig – an automatic configuration system that can optimize producer-side throughput on DMSs. AutoConfig constructs a novel comparison-based model (CBM) that is more robust that the prediction-based model (PBM) used by previous learning-based approaches. Furthermore, AutoConfig uses a weighted Latin hypercube sampling (wLHS) approach to select a set of samples that can provide a better coverage over the high-dimensional parameter space. wLHS allows AutoConfig to search for more promising configurations using the trained CBM. We have implemented AutoConfig on the Kafka platform, and evaluated it using eight different testing scenarios deployed on a public cloud. Experimental results show that our CBM can obtain better results than that of PBM under the same random forests based model. Furthermore, AutoConfig outperforms default configurations by 215.40% on average, and five state-of-the-art configuration algorithms by 7.21%-64.56%.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"68 1","pages":"29-40"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74878102","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}
引用次数: 32
PARTI: A Multi-interval Theory Solver for Symbolic Execution PARTI:符号执行的多区间理论求解器
Oscar Soria Dustmann, Klaus Wehrle, Cristian Cadar
Symbolic execution is an effective program analysis technique whose scalability largely depends on the ability to quickly solve large numbers of first-order logic queries. We propose an effective general technique for speeding up the solving of queries in the theory of arrays and bit-vectors with a specific structure, while otherwise falling back to a complete solver. The technique has two stages: a learning stage that determines the solution sets of each symbolic variable, and a decision stage that uses this information to quickly determine the satisfiability of certain types of queries. The main challenges involve deciding which operators to support and precisely dealing with integer type casts and arithmetic underflow and overflow. We implemented this technique in an incomplete solver called PARTI (“PARtial Theory solver for Intervals”), directly integrating it into the popular KLEE symbolic execution engine. We applied KLEE with PARTI and a state-of-the-art SMT solver to synthetic and real-world benchmarks. We found that PARTI practically does not hurt performance while many times achieving order-of-magnitude speedups.
符号执行是一种有效的程序分析技术,其可伸缩性很大程度上取决于快速解决大量一阶逻辑查询的能力。我们提出了一种有效的通用技术,用于加速具有特定结构的数组和位向量理论中的查询的求解,而其他情况下则退回到完整求解器。该技术有两个阶段:确定每个符号变量的解决方案集的学习阶段,以及使用此信息快速确定某些类型查询的可满足性的决策阶段。主要的挑战包括决定支持哪些操作符,以及精确地处理整数类型强制转换和算术下溢和溢出。我们在称为PARTI(“区间的部分理论求解器”)的不完全求解器中实现了该技术,并将其直接集成到流行的KLEE符号执行引擎中。我们将KLEE与PARTI和最先进的SMT求解器一起应用于合成基准和实际基准。我们发现,PARTI实际上不会影响性能,而很多时候可以实现数量级的加速。
{"title":"PARTI: A Multi-interval Theory Solver for Symbolic Execution","authors":"Oscar Soria Dustmann, Klaus Wehrle, Cristian Cadar","doi":"10.1145/3238147.3238179","DOIUrl":"https://doi.org/10.1145/3238147.3238179","url":null,"abstract":"Symbolic execution is an effective program analysis technique whose scalability largely depends on the ability to quickly solve large numbers of first-order logic queries. We propose an effective general technique for speeding up the solving of queries in the theory of arrays and bit-vectors with a specific structure, while otherwise falling back to a complete solver. The technique has two stages: a learning stage that determines the solution sets of each symbolic variable, and a decision stage that uses this information to quickly determine the satisfiability of certain types of queries. The main challenges involve deciding which operators to support and precisely dealing with integer type casts and arithmetic underflow and overflow. We implemented this technique in an incomplete solver called PARTI (“PARtial Theory solver for Intervals”), directly integrating it into the popular KLEE symbolic execution engine. We applied KLEE with PARTI and a state-of-the-art SMT solver to synthetic and real-world benchmarks. We found that PARTI practically does not hurt performance while many times achieving order-of-magnitude speedups.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"11 1","pages":"430-440"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81907127","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}
引用次数: 10
Client-Specific Equivalence Checking 客户端特定的等价性检查
Federico Mora, Yi Li, J. Rubin, M. Chechik
Software is often built by integrating components created by different teams or even different organizations. With little understanding of changes in dependent components, it is challenging to maintain correctness and robustness of the entire system. In this paper, we investigate the effect of component changes on the behavior of their clients. We observe that changes in a component are often irrelevant to a particular client and thus can be adopted without any delays or negative effects. Following this observation, we formulate the notion of client-specific equivalence checking (CSE) and develop an automated technique optimized for checking such equivalence. We evaluate our technique on a set of benchmarks, including those from the existing literature on equivalence checking, and show its applicability and effectiveness.
软件通常是通过集成由不同团队甚至不同组织创建的组件来构建的。由于对依赖组件的变化了解甚少,维护整个系统的正确性和健壮性是一项挑战。在本文中,我们研究了组件变化对客户行为的影响。我们观察到,组件中的更改通常与特定客户端无关,因此可以在没有任何延迟或负面影响的情况下采用。根据这一观察,我们制定了特定于客户端的对等性检查(CSE)的概念,并开发了一种自动化技术,对检查这种对等性进行了优化。我们在一组基准上评估了我们的技术,包括那些来自现有等价性检查文献的基准,并展示了它的适用性和有效性。
{"title":"Client-Specific Equivalence Checking","authors":"Federico Mora, Yi Li, J. Rubin, M. Chechik","doi":"10.1145/3238147.3238178","DOIUrl":"https://doi.org/10.1145/3238147.3238178","url":null,"abstract":"Software is often built by integrating components created by different teams or even different organizations. With little understanding of changes in dependent components, it is challenging to maintain correctness and robustness of the entire system. In this paper, we investigate the effect of component changes on the behavior of their clients. We observe that changes in a component are often irrelevant to a particular client and thus can be adopted without any delays or negative effects. Following this observation, we formulate the notion of client-specific equivalence checking (CSE) and develop an automated technique optimized for checking such equivalence. We evaluate our technique on a set of benchmarks, including those from the existing literature on equivalence checking, and show its applicability and effectiveness.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"441-451"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83177627","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}
引用次数: 24
Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travis CI 历史建筑数据中的噪音与异质性:Travis CI的实证研究
Keheliya Gallaba, Christian Macho, M. Pinzger, Shane McIntosh
Automated builds, which may pass or fail, provide feedback to a development team about changes to the codebase. A passing build indicates that the change compiles cleanly and tests (continue to) pass. A failing (a.k.a., broken) build indicates that there are issues that require attention. Without a closer analysis of the nature of build outcome data, practitioners and researchers are likely to make two critical assumptions: (1) build results are not noisy; however, passing builds may contain failing or skipped jobs that are actively or passively ignored; and (2) builds are equal; however, builds vary in terms of the number of jobs and configurations. To investigate the degree to which these assumptions about build breakage hold, we perform an empirical study of 3.7 million build jobs spanning 1,276 open source projects. We find that: (1) 12% of passing builds have an actively ignored failure; (2) 9% of builds have a misleading or incorrect outcome on average; and (3) at least 44% of the broken builds contain passing jobs, i.e., the breakage is local to a subset of build variants. Like other software archives, build data is noisy and complex. Analysis of build data requires nuance.
自动构建(可能通过也可能失败)向开发团队提供关于代码库更改的反馈。通过的构建表明更改编译干净,并且测试(继续)通过。一个失败的(也就是破碎的)构建表明存在需要注意的问题。如果没有对构建结果数据的性质进行更仔细的分析,从业者和研究人员可能会做出两个关键的假设:(1)构建结果没有噪声;但是,通过的构建可能包含主动或被动忽略的失败或跳过的作业;(2)构建是相等的;但是,构建在作业和配置的数量方面有所不同。为了调查这些关于构建破坏的假设在多大程度上成立,我们对跨越1,276个开源项目的370万个构建工作进行了实证研究。我们发现:(1)12%通过的构建有一个主动忽略的失败;(2)平均9%的构建有误导性或不正确的结果;并且(3)至少44%的被破坏的构建包含传递的工作,也就是说,破坏是局部的构建变体子集。像其他软件存档一样,构建数据是嘈杂和复杂的。构建数据的分析需要细微差别。
{"title":"Noise and Heterogeneity in Historical Build Data: An Empirical Study of Travis CI","authors":"Keheliya Gallaba, Christian Macho, M. Pinzger, Shane McIntosh","doi":"10.1145/3238147.3238171","DOIUrl":"https://doi.org/10.1145/3238147.3238171","url":null,"abstract":"Automated builds, which may pass or fail, provide feedback to a development team about changes to the codebase. A passing build indicates that the change compiles cleanly and tests (continue to) pass. A failing (a.k.a., broken) build indicates that there are issues that require attention. Without a closer analysis of the nature of build outcome data, practitioners and researchers are likely to make two critical assumptions: (1) build results are not noisy; however, passing builds may contain failing or skipped jobs that are actively or passively ignored; and (2) builds are equal; however, builds vary in terms of the number of jobs and configurations. To investigate the degree to which these assumptions about build breakage hold, we perform an empirical study of 3.7 million build jobs spanning 1,276 open source projects. We find that: (1) 12% of passing builds have an actively ignored failure; (2) 9% of builds have a misleading or incorrect outcome on average; and (3) at least 44% of the broken builds contain passing jobs, i.e., the breakage is local to a subset of build variants. Like other software archives, build data is noisy and complex. Analysis of build data requires nuance.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"87-97"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89710174","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}
引用次数: 38
Automated Model Repair for Alloy 自动模型修复合金
Kaiyuan Wang, Allison Sullivan, S. Khurshid
Automated program repair is an active research area. However, existing research focuses mostly on imperative code, e.g. in Java. In this paper, we study the problem of repairing declarative models in Alloy - a first order relational logic with transitive closure. We introduce ARepair, the first technique for repairing Alloy models. ARepair follows the spirit of traditional automated program repair techniques. Specifically, ARepair takes as input a faulty Alloy model and a test suite that contains some failing test, and outputs a repaired model that is correct with respect to the given tests. ARepair integrates ideas from mutation testing and program synthesis to provide an effective solution for repairing Alloy models. The experimental results show that ARepair can fix 28 out of 38 real-world faulty models we collected.
自动程序修复是一个活跃的研究领域。然而,现有的研究主要集中在命令式代码上,例如Java。本文研究了具有传递闭包的一阶关系逻辑Alloy中声明性模型的修复问题。介绍了修复合金模型的第一种技术ARepair。ARepair遵循传统自动化程序维修技术的精神。具体来说,ARepair将有故障的Alloy模型和包含一些失败测试的测试套件作为输入,并输出相对于给定测试正确的修复模型。ARepair集成了突变检测和程序合成的思想,为修复合金模型提供了有效的解决方案。实验结果表明,ARepair可以修复我们收集的38个实际故障模型中的28个。
{"title":"Automated Model Repair for Alloy","authors":"Kaiyuan Wang, Allison Sullivan, S. Khurshid","doi":"10.1145/3238147.3238162","DOIUrl":"https://doi.org/10.1145/3238147.3238162","url":null,"abstract":"Automated program repair is an active research area. However, existing research focuses mostly on imperative code, e.g. in Java. In this paper, we study the problem of repairing declarative models in Alloy - a first order relational logic with transitive closure. We introduce ARepair, the first technique for repairing Alloy models. ARepair follows the spirit of traditional automated program repair techniques. Specifically, ARepair takes as input a faulty Alloy model and a test suite that contains some failing test, and outputs a repaired model that is correct with respect to the given tests. ARepair integrates ideas from mutation testing and program synthesis to provide an effective solution for repairing Alloy models. The experimental results show that ARepair can fix 28 out of 38 real-world faulty models we collected.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"110 1","pages":"577-588"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89291543","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}
引用次数: 23
Deep Learning Based Feature Envy Detection 基于深度学习的特征嫉妒检测
Hui Liu, Zhifeng Xu, Yanzhen Zou
Software refactoring is widely employed to improve software quality. A key step in software refactoring is to identify which part of the software should be refactored. To facilitate the identification, a number of approaches have been proposed to identify certain structures in the code (called code smells) that suggest the possibility of refactoring. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics to predictions. However, it is challenging to manually select the best features, especially textual features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting feature envy, one of the most common code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features (especially textual features) of source code for feature envy detection, and could automatically build the complex mapping between such features and predictions. We also propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art in both detecting feature envy smells and recommending destinations for identified smelly methods.
软件重构被广泛用于提高软件质量。软件重构的一个关键步骤是确定软件的哪一部分应该重构。为了方便识别,已经提出了许多方法来识别代码中的某些结构(称为代码气味),这些结构表明重构的可能性。大多数此类方法依赖于手动设计的启发式方法,将手动选择的源代码度量映射到预测。然而,手动选择最佳特征是一项挑战,尤其是文本特征。人工构造最优启发式也很困难。为此,在本文中,我们提出了一种基于深度学习的新方法来检测最常见的代码气味之一——特征嫉妒。关键的见解是,深度神经网络和先进的深度学习技术可以自动选择源代码的特征(特别是文本特征)进行特征嫉妒检测,并可以自动在这些特征和预测之间建立复杂的映射。我们还提出了一种自动生成基于神经网络的分类器的标记训练数据的方法,该方法不需要任何人工干预。在开源应用程序上的评估结果表明,所提出的方法在检测特征嫉妒气味和为识别出的气味方法推荐目的地方面都显著提高了技术水平。
{"title":"Deep Learning Based Feature Envy Detection","authors":"Hui Liu, Zhifeng Xu, Yanzhen Zou","doi":"10.1145/3238147.3238166","DOIUrl":"https://doi.org/10.1145/3238147.3238166","url":null,"abstract":"Software refactoring is widely employed to improve software quality. A key step in software refactoring is to identify which part of the software should be refactored. To facilitate the identification, a number of approaches have been proposed to identify certain structures in the code (called code smells) that suggest the possibility of refactoring. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics to predictions. However, it is challenging to manually select the best features, especially textual features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting feature envy, one of the most common code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features (especially textual features) of source code for feature envy detection, and could automatically build the complex mapping between such features and predictions. We also propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art in both detecting feature envy smells and recommending destinations for identified smelly methods.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"49 1","pages":"385-396"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85868249","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}
引用次数: 64
A Tale of Two Cities: How WebView Induces Bugs to Android Applications 双城记:WebView如何给Android应用程序带来漏洞
Jiajun Hu, Lili Wei, Yepang Liu, S. Cheung, Huaxun Huang
WebView is a widely used Android component that augments a native app with web browser capabilities. It eases the interactions between an app's native code and web code. However, the interaction mechanism of WebView induces new types of bugs in Android apps. Understanding the characteristics and manifestation of these WebView-induced bugs ($omega text{Bugs}$ for short) facilitates the correct usages of WebViews in Android apps. This motivates us to conduct the first empirical study on $omega text{Bugs}$ based on those found in popular open-source Android apps. Our study identified the major root causes and consequences of $omega text{Bugs}$ and made interesting observations that can be leveraged for detecting and diagnosing $omega text{Bugs}$. Based on the empirical study, we further propose an automated testing technique $omega text{Droid}$ to effectively expose $omega text{Bugs}$ in Android apps. In our experiments, $omega text{Droid}$ successfully discovered 30 unique and previously-unknown $omega text{Bugs}$ when applied to 146 open-source Android apps. We reported the 30 $omega text{Bugs}$ to the corresponding app developers. Out of these 30 $omega text{Bugs}$, 14 were confirmed and 7 of them were fixed. This shows that $omega text{Droid}$ can effectively detect $omega text{Bugs}$ that are of the developers' concern.
WebView是一个广泛使用的Android组件,它增强了本地应用程序的web浏览器功能。它简化了应用程序的本地代码和web代码之间的交互。然而,WebView的交互机制给Android应用带来了新的bug。了解这些由webview引起的bug(简称$omega text{bugs}$)的特点和表现,有助于在Android应用中正确使用webview。这促使我们基于在流行的开源Android应用中发现的漏洞,对$omega text{Bugs}$进行首次实证研究。我们的研究确定了$omega text{Bugs}$的主要根源和后果,并进行了有趣的观察,可以用于检测和诊断$omega text{Bugs}$。在实证研究的基础上,我们进一步提出了一种自动化测试技术$omega text{Droid}$,以有效地暴露Android应用中的$omega text{Bugs}$。在我们的实验中,$omega text{Droid}$在应用于146个开源Android应用程序时,成功地发现了30个独特的和以前未知的$omega text{bug}$。我们向相应的应用程序开发人员报告了30个$omega text{Bugs}$。在这30个$omega text{Bugs}$中,确认了14个,修复了7个。这说明$omega text{Droid}$可以有效地检测出开发者关心的$omega text{Bugs}$。
{"title":"A Tale of Two Cities: How WebView Induces Bugs to Android Applications","authors":"Jiajun Hu, Lili Wei, Yepang Liu, S. Cheung, Huaxun Huang","doi":"10.1145/3238147.3238180","DOIUrl":"https://doi.org/10.1145/3238147.3238180","url":null,"abstract":"WebView is a widely used Android component that augments a native app with web browser capabilities. It eases the interactions between an app's native code and web code. However, the interaction mechanism of WebView induces new types of bugs in Android apps. Understanding the characteristics and manifestation of these WebView-induced bugs ($omega text{Bugs}$ for short) facilitates the correct usages of WebViews in Android apps. This motivates us to conduct the first empirical study on $omega text{Bugs}$ based on those found in popular open-source Android apps. Our study identified the major root causes and consequences of $omega text{Bugs}$ and made interesting observations that can be leveraged for detecting and diagnosing $omega text{Bugs}$. Based on the empirical study, we further propose an automated testing technique $omega text{Droid}$ to effectively expose $omega text{Bugs}$ in Android apps. In our experiments, $omega text{Droid}$ successfully discovered 30 unique and previously-unknown $omega text{Bugs}$ when applied to 146 open-source Android apps. We reported the 30 $omega text{Bugs}$ to the corresponding app developers. Out of these 30 $omega text{Bugs}$, 14 were confirmed and 7 of them were fixed. This shows that $omega text{Droid}$ can effectively detect $omega text{Bugs}$ that are of the developers' concern.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"69 1","pages":"702-713"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89100252","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}
引用次数: 19
Navigating the Maze: The Impact of Configurability in Bioinformatics Software 导航迷宫:可配置性在生物信息学软件中的影响
Mikaela Cashman, Myra B. Cohen, P. Ranjan, R. Cottingham
The bioinformatics software domain contains thousands of applications for automating tasks such as the pairwise alignment of DNA sequences, building and reasoning about metabolic models or simulating growth of an organism. Its end users range from sophisticated developers to those with little computational experience. In response to their needs, developers provide many options to customize the way their algorithms are tuned. Yet there is little or no automated help for the user in determining the consequences or impact of the options they choose. In this paper we describe our experience working with configurable bioinformatics tools. We find limited documentation and help for combining and selecting options along with variation in both functionality and performance. We also find previously undetected faults. We summarize our findings with a set of lessons learned, and present a roadmap for creating automated techniques to interact with bioinformatics software. We believe these will generalize to other types of scientific software.
生物信息学软件领域包含数千种自动化任务的应用程序,例如DNA序列的成对比对、代谢模型的构建和推理或模拟生物体的生长。它的最终用户范围从老练的开发人员到缺乏计算经验的人。为了满足他们的需求,开发人员提供了许多选项来定制他们的算法调优方式。然而,在确定用户选择的选项的后果或影响方面,几乎没有或根本没有自动帮助。在本文中,我们描述了我们使用可配置生物信息学工具的经验。对于组合和选择选项以及功能和性能的变化,我们找到了有限的文档和帮助。我们还发现了以前未检测到的故障。我们总结了我们的发现和一组经验教训,并提出了创建与生物信息学软件交互的自动化技术的路线图。我们相信这些将推广到其他类型的科学软件。
{"title":"Navigating the Maze: The Impact of Configurability in Bioinformatics Software","authors":"Mikaela Cashman, Myra B. Cohen, P. Ranjan, R. Cottingham","doi":"10.1145/3238147.3240466","DOIUrl":"https://doi.org/10.1145/3238147.3240466","url":null,"abstract":"The bioinformatics software domain contains thousands of applications for automating tasks such as the pairwise alignment of DNA sequences, building and reasoning about metabolic models or simulating growth of an organism. Its end users range from sophisticated developers to those with little computational experience. In response to their needs, developers provide many options to customize the way their algorithms are tuned. Yet there is little or no automated help for the user in determining the consequences or impact of the options they choose. In this paper we describe our experience working with configurable bioinformatics tools. We find limited documentation and help for combining and selecting options along with variation in both functionality and performance. We also find previously undetected faults. We summarize our findings with a set of lessons learned, and present a roadmap for creating automated techniques to interact with bioinformatics software. We believe these will generalize to other types of scientific software.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"32 1","pages":"757-767"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77499179","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}
引用次数: 23
PerfLearner: Learning from Bug Reports to Understand and Generate Performance Test Frames PerfLearner:从Bug报告中学习,理解并生成性能测试框架
Xue Han, Tingting Yu, D. Lo
Software performance is important for ensuring the quality of software products. Performance bugs, defined as programming errors that cause significant performance degradation, can lead to slow systems and poor user experience. While there has been some research on automated performance testing such as test case generation, the main idea is to select workload values to increase the program execution times. These techniques often assume the initial test cases have the right combination of input parameters and focus on evolving values of certain input parameters. However, such an assumption may not hold for highly configurable real-word applications, in which the combinations of input parameters can be very large. In this paper, we manually analyze 300 bug reports from three large open source projects - Apache HTTP Server, MySQL, and Mozilla Firefox. We found that 1) exposing performance bugs often requires combinations of multiple input parameters, and 2) certain input parameters are frequently involved in exposing performance bugs. Guided by these findings, we designed and evaluated an automated approach, PerfLearner, to extract execution commands and input parameters from descriptions of performance bug reports and use them to generate test frames for guiding actual performance test case generation.
软件性能是保证软件产品质量的重要因素。性能bug被定义为导致显著性能下降的编程错误,它可能导致系统运行缓慢和用户体验不佳。虽然已经有一些关于自动化性能测试的研究,比如测试用例生成,但主要的思想是选择工作负载值来增加程序执行时间。这些技术通常假设初始测试用例具有正确的输入参数组合,并关注于某些输入参数的演化值。然而,对于高度可配置的实时应用程序,这种假设可能不成立,因为输入参数的组合可能非常大。在本文中,我们手工分析了来自三个大型开源项目(Apache HTTP Server, MySQL和Mozilla Firefox)的300个bug报告。我们发现1)暴露性能缺陷通常需要组合多个输入参数,2)某些输入参数经常涉及暴露性能缺陷。在这些发现的指导下,我们设计并评估了一种自动化方法PerfLearner,从性能错误报告的描述中提取执行命令和输入参数,并使用它们来生成测试框架,以指导实际性能测试用例的生成。
{"title":"PerfLearner: Learning from Bug Reports to Understand and Generate Performance Test Frames","authors":"Xue Han, Tingting Yu, D. Lo","doi":"10.1145/3238147.3238204","DOIUrl":"https://doi.org/10.1145/3238147.3238204","url":null,"abstract":"Software performance is important for ensuring the quality of software products. Performance bugs, defined as programming errors that cause significant performance degradation, can lead to slow systems and poor user experience. While there has been some research on automated performance testing such as test case generation, the main idea is to select workload values to increase the program execution times. These techniques often assume the initial test cases have the right combination of input parameters and focus on evolving values of certain input parameters. However, such an assumption may not hold for highly configurable real-word applications, in which the combinations of input parameters can be very large. In this paper, we manually analyze 300 bug reports from three large open source projects - Apache HTTP Server, MySQL, and Mozilla Firefox. We found that 1) exposing performance bugs often requires combinations of multiple input parameters, and 2) certain input parameters are frequently involved in exposing performance bugs. Guided by these findings, we designed and evaluated an automated approach, PerfLearner, to extract execution commands and input parameters from descriptions of performance bug reports and use them to generate test frames for guiding actual performance test case generation.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"99 1","pages":"17-28"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88568544","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}
引用次数: 36
期刊
2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)
全部 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