首页 > 最新文献

2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Dynamic Algorithm Selection for SMT SMT的动态算法选择
Nikhil Pimpalkhare
We describe an online approach to SMT solver selection using nearest neighbor classification and runtime estimation. We implement and evaluate our approach with MedleySolver, finding that it makes nearly optimal selections and evaluates a dataset of queries three times faster than any indivdual solver.
我们描述了一种使用最近邻分类和运行时估计的在线SMT求解器选择方法。我们用MedleySolver实现和评估了我们的方法,发现它做出了几乎最优的选择,并且评估查询数据集的速度比任何单独的求解器快三倍。
{"title":"Dynamic Algorithm Selection for SMT","authors":"Nikhil Pimpalkhare","doi":"10.1145/3324884.3418922","DOIUrl":"https://doi.org/10.1145/3324884.3418922","url":null,"abstract":"We describe an online approach to SMT solver selection using nearest neighbor classification and runtime estimation. We implement and evaluate our approach with MedleySolver, finding that it makes nearly optimal selections and evaluates a dataset of queries three times faster than any indivdual solver.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115638846","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}
引用次数: 0
Synthesis-Based Resolution of Feature Interactions in Cyber-Physical Systems 信息物理系统中基于综合的特征交互解析
B. Gafford, Tobias Dürschmid, Gabriel A. Moreno, Eunsuk Kang
The feature interaction problem arises when two or more independent features interact with each other in an undesirable manner. Feature interactions remain a challenging and important problem in emerging domains of cyber-physical systems (CPS), such as intelligent vehicles, unmanned aerial vehicles (UAVs) and the Internet of Things (IoT), where the outcome of an unexpected interaction may result in a safety failure. Existing approaches to resolving feature interactions rely on priority lists or fixed strategies, but may not be effective in scenarios where none of the competing feature actions are satisfactory with respect to system requirements. This paper proposes a novel synthesis-based approach to resolution, where a conflict among features is resolved by synthesizing an action that best satisfies the specification of desirable system behaviors in the given environmental context. Unlike existing resolution methods, our approach is capable of producing a desirable system outcome even when none of the conflicting actions are satisfactory. The effectiveness of the proposed approach is demonstrated using a case study involving interactions among safety-critical features in an autonomous drone.
当两个或多个独立的特征以不希望的方式相互作用时,就会出现特征交互问题。在智能车辆、无人机(uav)和物联网(IoT)等网络物理系统(CPS)的新兴领域,特征交互仍然是一个具有挑战性和重要的问题,在这些领域,意外交互的结果可能导致安全故障。现有的解决功能交互的方法依赖于优先级列表或固定策略,但是在没有一个相互竞争的功能操作满足系统需求的情况下可能不有效。本文提出了一种新的基于综合的解决方法,其中通过综合最能满足给定环境上下文中理想系统行为规范的操作来解决特征之间的冲突。与现有的解决方法不同,我们的方法能够产生理想的系统结果,即使没有一个冲突的动作是令人满意的。通过一个涉及自主无人机安全关键特征之间相互作用的案例研究,证明了所提出方法的有效性。
{"title":"Synthesis-Based Resolution of Feature Interactions in Cyber-Physical Systems","authors":"B. Gafford, Tobias Dürschmid, Gabriel A. Moreno, Eunsuk Kang","doi":"10.1145/3324884.3416630","DOIUrl":"https://doi.org/10.1145/3324884.3416630","url":null,"abstract":"The feature interaction problem arises when two or more independent features interact with each other in an undesirable manner. Feature interactions remain a challenging and important problem in emerging domains of cyber-physical systems (CPS), such as intelligent vehicles, unmanned aerial vehicles (UAVs) and the Internet of Things (IoT), where the outcome of an unexpected interaction may result in a safety failure. Existing approaches to resolving feature interactions rely on priority lists or fixed strategies, but may not be effective in scenarios where none of the competing feature actions are satisfactory with respect to system requirements. This paper proposes a novel synthesis-based approach to resolution, where a conflict among features is resolved by synthesizing an action that best satisfies the specification of desirable system behaviors in the given environmental context. Unlike existing resolution methods, our approach is capable of producing a desirable system outcome even when none of the conflicting actions are satisfactory. The effectiveness of the proposed approach is demonstrated using a case study involving interactions among safety-critical features in an autonomous drone.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121662576","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
Enhanced Compiler Bug Isolation via Memoized Search 通过记忆搜索增强编译器错误隔离
Junjie Chen, Haoyang Ma, Lingming Zhang
Compiler bugs can be disastrous since they could affect all the software systems built on the buggy compilers. Meanwhile, diagnosing compiler bugs is extremely challenging since usually limited debugging information is available and a large number of compiler files can be suspicious. More specifically, when compiling a given bug-triggering test program, hundreds of compiler files are usually involved, and can all be treated as suspicious buggy files. To facilitate compiler debugging, in this paper we propose the first reinforcement compiler bug isolation approach via structural mutation, called RecBi. For a given bug-triggering test program, RecBi first augments traditional local mutation operators with structural ones to transform it into a set of passing test programs. Since not all the passing test programs can help isolate compiler bugs effectively, RecBi further leverages reinforcement learning to intelligently guide the process of passing test program generation. Then, RecBi ranks all the suspicious files by analyzing the compiler execution traces of the generated passing test programs and the given failing test program following the practice of compiler bug isolation. The experimental results on 120 real bugs from two most popular C open-source compilers, i.e., GCC and LLVM, show that RecBi is able to isolate about 23%/58%/78% bugs within Top-l/Top-5/Top-10 compiler files, and significantly outperforms the state-of-the-art compiler bug isolation approach by improving 92.86%/55.56%/25.68% isolation effectiveness in terms of Top-l/Top-5/Top-10 results.
编译器错误可能是灾难性的,因为它们可能影响构建在有错误的编译器上的所有软件系统。同时,诊断编译器错误极具挑战性,因为通常可用的调试信息有限,而且大量编译器文件可能是可疑的。更具体地说,当编译一个给定的bug触发测试程序时,通常涉及数百个编译器文件,并且都可以被视为可疑的bug文件。为了方便编译器调试,在本文中,我们提出了第一种通过结构突变的强化编译器错误隔离方法,称为RecBi。对于给定的bug触发测试程序,RecBi首先用结构化操作符增加传统的局部突变操作符,将其转换为一组通过的测试程序。由于不是所有通过的测试程序都能有效地帮助隔离编译器错误,所以RecBi进一步利用强化学习来智能地指导通过测试程序生成的过程。然后,根据编译器错误隔离的做法,通过分析生成的通过测试程序和给定的失败测试程序的编译器执行轨迹,RecBi对所有可疑文件进行排序。通过对GCC和LLVM这两种最流行的C开源编译器的120个真实bug的实验结果表明,RecBi能够在top -1 /Top-5/Top-10编译器文件中隔离约23%/58%/78%的bug,并且在top -1 /Top-5/Top-10结果中显著优于最先进的编译器bug隔离方法,隔离效率提高了92.86%/55.56%/25.68%。
{"title":"Enhanced Compiler Bug Isolation via Memoized Search","authors":"Junjie Chen, Haoyang Ma, Lingming Zhang","doi":"10.1145/3324884.3416570","DOIUrl":"https://doi.org/10.1145/3324884.3416570","url":null,"abstract":"Compiler bugs can be disastrous since they could affect all the software systems built on the buggy compilers. Meanwhile, diagnosing compiler bugs is extremely challenging since usually limited debugging information is available and a large number of compiler files can be suspicious. More specifically, when compiling a given bug-triggering test program, hundreds of compiler files are usually involved, and can all be treated as suspicious buggy files. To facilitate compiler debugging, in this paper we propose the first reinforcement compiler bug isolation approach via structural mutation, called RecBi. For a given bug-triggering test program, RecBi first augments traditional local mutation operators with structural ones to transform it into a set of passing test programs. Since not all the passing test programs can help isolate compiler bugs effectively, RecBi further leverages reinforcement learning to intelligently guide the process of passing test program generation. Then, RecBi ranks all the suspicious files by analyzing the compiler execution traces of the generated passing test programs and the given failing test program following the practice of compiler bug isolation. The experimental results on 120 real bugs from two most popular C open-source compilers, i.e., GCC and LLVM, show that RecBi is able to isolate about 23%/58%/78% bugs within Top-l/Top-5/Top-10 compiler files, and significantly outperforms the state-of-the-art compiler bug isolation approach by improving 92.86%/55.56%/25.68% isolation effectiveness in terms of Top-l/Top-5/Top-10 results.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123875262","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
CP-Detector: Using Configuration-related Performance Properties to Expose Performance Bugs cp检测器:使用与配置相关的性能属性来暴露性能缺陷
Haochen He, Zhouyang Jia, Shanshan Li, Erci Xu, Tingting Yu, Yue Yu, Ji Wang, Xiangke Liao
Performance bugs are often hard to detect due to their non fail-stop symptoms. Existing debugging techniques can only detect performance bugs with known patterns (e.g., inefficient loops). The key reason behind this incapability is the lack of a general test oracle. Here, we argue that the performance (e.g., throughput, latency, execution time) expectation of configuration can serve as a strong oracle candidate for performance bug detection. First, prior work shows that most performance bugs are related to configurations. Second, the configuration change reflects common expectation on performance changes. If the actual performance is contrary to the expectation, the related code snippet is likely to be problematic. In this paper, we first conducted a comprehensive study on 173 real-world configuration-related performance bugs (CPBugs) from 12 representative software systems. We then derived seven configuration-related performance properties, which can serve as the test oracle in performance testing. Guided by the study, we designed and evaluated an automated performance testing framework, CP-DETECTOR, for detecting real-world configuration-related performance bugs. CP-DETECTOR was evaluated on 12 open-source projects. The results showed that it detected 43 out of 61 existing bugs and reported 13 new bugs.
性能错误通常很难检测到,因为它们的故障停止症状。现有的调试技术只能检测已知模式下的性能缺陷(例如,低效循环)。这种无能背后的关键原因是缺乏通用的测试oracle。在这里,我们认为配置的性能(例如,吞吐量,延迟,执行时间)期望可以作为性能错误检测的强候选oracle。首先,先前的工作表明,大多数性能错误都与配置有关。其次,配置更改反映了对性能更改的共同期望。如果实际性能与预期相反,那么相关的代码片段可能会有问题。在本文中,我们首先对来自12个代表性软件系统的173个与实际配置相关的性能bug (CPBugs)进行了全面的研究。然后我们导出了7个与配置相关的性能属性,它们可以作为性能测试中的测试oracle。在这项研究的指导下,我们设计并评估了一个自动化的性能测试框架CP-DETECTOR,用于检测与实际配置相关的性能错误。CP-DETECTOR在12个开源项目中进行了评估。结果显示,它检测到61个现有漏洞中的43个,并报告了13个新漏洞。
{"title":"CP-Detector: Using Configuration-related Performance Properties to Expose Performance Bugs","authors":"Haochen He, Zhouyang Jia, Shanshan Li, Erci Xu, Tingting Yu, Yue Yu, Ji Wang, Xiangke Liao","doi":"10.1145/3324884.3416531","DOIUrl":"https://doi.org/10.1145/3324884.3416531","url":null,"abstract":"Performance bugs are often hard to detect due to their non fail-stop symptoms. Existing debugging techniques can only detect performance bugs with known patterns (e.g., inefficient loops). The key reason behind this incapability is the lack of a general test oracle. Here, we argue that the performance (e.g., throughput, latency, execution time) expectation of configuration can serve as a strong oracle candidate for performance bug detection. First, prior work shows that most performance bugs are related to configurations. Second, the configuration change reflects common expectation on performance changes. If the actual performance is contrary to the expectation, the related code snippet is likely to be problematic. In this paper, we first conducted a comprehensive study on 173 real-world configuration-related performance bugs (CPBugs) from 12 representative software systems. We then derived seven configuration-related performance properties, which can serve as the test oracle in performance testing. Guided by the study, we designed and evaluated an automated performance testing framework, CP-DETECTOR, for detecting real-world configuration-related performance bugs. CP-DETECTOR was evaluated on 12 open-source projects. The results showed that it detected 43 out of 61 existing bugs and reported 13 new bugs.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125096890","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}
引用次数: 12
Towards Building Robust DNN Applications: An Industrial Case Study of Evolutionary Data Augmentation 构建稳健的深度神经网络应用:进化数据增强的工业案例研究
Haruki Yokoyama, Satoshi Onoue, S. Kikuchi
Data augmentation techniques that increase the amount of training data by adding realistic transformations are used in machine learning to improve the level of accuracy. Recent studies have demonstrated that data augmentation techniques improve the robustness of image classification models with open datasets; however, it has yet to be investigated whether these techniques are effective for industrial datasets. In this study, we investigate the feasibility of data augmentation techniques for industrial use. We evaluate data augmentation techniques in image classification and object detection tasks using an industrial in-house graphical user interface dataset. As the results indicate, the genetic algorithm-based data augmentation technique outperforms two random-based methods in terms of the robustness of the image classification model. In addition, through this evaluation and interviews with the developers, we learned following two lessons: data augmentation techniques should (1) maintain the training speed to avoid slowing the development and (2) include extensibility for a variety of tasks.
数据增强技术通过添加现实转换来增加训练数据的数量,用于机器学习以提高准确性水平。最近的研究表明,数据增强技术提高了开放数据集图像分类模型的鲁棒性;然而,这些技术是否对工业数据集有效还有待研究。在这项研究中,我们探讨了数据增强技术在工业应用中的可行性。我们使用工业内部图形用户界面数据集评估图像分类和目标检测任务中的数据增强技术。结果表明,基于遗传算法的数据增强技术在图像分类模型的鲁棒性方面优于两种基于随机的方法。此外,通过对开发人员的评估和访谈,我们得到了以下两个教训:数据增强技术应该(1)保持训练速度,以避免放慢开发速度;(2)包括各种任务的可扩展性。
{"title":"Towards Building Robust DNN Applications: An Industrial Case Study of Evolutionary Data Augmentation","authors":"Haruki Yokoyama, Satoshi Onoue, S. Kikuchi","doi":"10.1145/3324884.3421841","DOIUrl":"https://doi.org/10.1145/3324884.3421841","url":null,"abstract":"Data augmentation techniques that increase the amount of training data by adding realistic transformations are used in machine learning to improve the level of accuracy. Recent studies have demonstrated that data augmentation techniques improve the robustness of image classification models with open datasets; however, it has yet to be investigated whether these techniques are effective for industrial datasets. In this study, we investigate the feasibility of data augmentation techniques for industrial use. We evaluate data augmentation techniques in image classification and object detection tasks using an industrial in-house graphical user interface dataset. As the results indicate, the genetic algorithm-based data augmentation technique outperforms two random-based methods in terms of the robustness of the image classification model. In addition, through this evaluation and interviews with the developers, we learned following two lessons: data augmentation techniques should (1) maintain the training speed to avoid slowing the development and (2) include extensibility for a variety of tasks.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130191072","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}
引用次数: 6
UI Obfuscation and Its Effects on Automated UI Analysis for Android Apps UI混淆及其对Android应用程序自动UI分析的影响
Hao Zhou, Ting Chen, Haoyu Wang, Le Yu, Xiapu Luo, Ting Wang, Wei Zhang
The UI driven nature of Android apps has motivated the development of automated UI analysis for various purposes, such as app analysis, malicious app detection, and app testing. Although existing automated UI analysis methods have demonstrated their capability in dissecting apps' UI, little is known about their effectiveness in the face of app protection techniques, which have been adopted by more and more apps. In this paper, we take a first step to systematically investigate UI obfuscation for Android apps and its effects on automated UI analysis. In particular, we point out the weaknesses in existing automated UI analysis methods and design 9 UI obfuscation approaches. We implement these approaches in a new tool named UIObfuscator after tackling several technical challenges. Moreover, we feed 3 kinds of tools that rely on automated UI analysis with the apps protected by UIObfuscator, and find that their performances severely drop. This work reveals limitations of automated UI analysis and sheds light on app protection techniques.
Android应用的UI驱动特性推动了自动化UI分析的开发,用于各种目的,如应用分析、恶意应用检测和应用测试。尽管现有的自动化UI分析方法已经证明了它们在剖析应用程序UI方面的能力,但面对越来越多的应用程序采用的应用程序保护技术,它们的有效性却鲜为人知。在本文中,我们采取了第一步系统地调查Android应用程序的UI混淆及其对自动UI分析的影响。我们特别指出了现有自动化UI分析方法和设计UI混淆方法的弱点。在解决了几个技术挑战之后,我们在一个名为UIObfuscator的新工具中实现了这些方法。此外,我们将3种依赖于自动UI分析的工具与受UIObfuscator保护的应用程序一起馈送,发现它们的性能严重下降。这项工作揭示了自动化UI分析的局限性,并揭示了应用程序保护技术。
{"title":"UI Obfuscation and Its Effects on Automated UI Analysis for Android Apps","authors":"Hao Zhou, Ting Chen, Haoyu Wang, Le Yu, Xiapu Luo, Ting Wang, Wei Zhang","doi":"10.1145/3324884.3416642","DOIUrl":"https://doi.org/10.1145/3324884.3416642","url":null,"abstract":"The UI driven nature of Android apps has motivated the development of automated UI analysis for various purposes, such as app analysis, malicious app detection, and app testing. Although existing automated UI analysis methods have demonstrated their capability in dissecting apps' UI, little is known about their effectiveness in the face of app protection techniques, which have been adopted by more and more apps. In this paper, we take a first step to systematically investigate UI obfuscation for Android apps and its effects on automated UI analysis. In particular, we point out the weaknesses in existing automated UI analysis methods and design 9 UI obfuscation approaches. We implement these approaches in a new tool named UIObfuscator after tackling several technical challenges. Moreover, we feed 3 kinds of tools that rely on automated UI analysis with the apps protected by UIObfuscator, and find that their performances severely drop. This work reveals limitations of automated UI analysis and sheds light on app protection techniques.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127928712","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
Plug the Database & Play With Automatic Testing: Improving System Testing by Exploiting Persistent Data 插入数据库并使用自动测试:利用持久数据改进系统测试
Diego Clerissi, G. Denaro, M. Mobilio, L. Mariani
A key challenge in automatic Web testing is the generation of syntactically and semantically valid input values that can exercise the many functionalities that impose constraints on the validity of the inputs. Existing test case generation techniques either rely on manually curated catalogs of values, or extract values from external data sources, such as the Web or publicly available knowledge bases. Unfortunately, relying on manual effort is generally too expensive for most practical applications, while domain-specific and application-specific data can be hardly found either on the Web or in general purpose knowledge bases.This paper proposes DBINPuTs, a novel approach that reuses the data from the database of the target Web application, to automatically identify domain-specific and application-specific inputs, and effectively fulfill the validity constraints present in the tested Web pages. DBINPUTS can properly cope with system testing and maintenance testing efforts, since databases are naturally and inexpensively available in those phases. To extract valid inputs from the application databases, DBINPUTS exploits the syntactic and semantic similarity between the identifiers of the input fields and the ones in the tables of the database, automatically resolving the mismatch between the user interface and the schema of the database. Our experiments provide initial evidence that DBINPUTS can outperform both random input selection and Link, a competing approach for searching inputs from knowledge bases.
自动Web测试中的一个关键挑战是生成语法和语义上有效的输入值,这些输入值可以执行对输入有效性施加约束的许多功能。现有的测试用例生成技术要么依赖于手动编制的值目录,要么从外部数据源(如Web或公开可用的知识库)中提取值。不幸的是,对于大多数实际应用程序来说,依赖于手工操作的成本通常太高,而特定于领域和特定于应用程序的数据很难在Web或通用知识库中找到。本文提出了DBINPuTs,这是一种重用目标Web应用程序数据库中的数据的新方法,可以自动识别特定于领域和特定于应用程序的输入,并有效地满足测试Web页面中存在的有效性约束。dbinput可以适当地处理系统测试和维护测试工作,因为数据库在这些阶段是自然且廉价的。为了从应用程序数据库中提取有效的输入,DBINPUTS利用输入字段的标识符与数据库表中的标识符之间的语法和语义相似性,自动解决用户界面与数据库模式之间的不匹配。我们的实验提供了初步证据,表明dbinput可以优于随机输入选择和Link(一种从知识库中搜索输入的竞争性方法)。
{"title":"Plug the Database & Play With Automatic Testing: Improving System Testing by Exploiting Persistent Data","authors":"Diego Clerissi, G. Denaro, M. Mobilio, L. Mariani","doi":"10.1145/3324884.3416561","DOIUrl":"https://doi.org/10.1145/3324884.3416561","url":null,"abstract":"A key challenge in automatic Web testing is the generation of syntactically and semantically valid input values that can exercise the many functionalities that impose constraints on the validity of the inputs. Existing test case generation techniques either rely on manually curated catalogs of values, or extract values from external data sources, such as the Web or publicly available knowledge bases. Unfortunately, relying on manual effort is generally too expensive for most practical applications, while domain-specific and application-specific data can be hardly found either on the Web or in general purpose knowledge bases.This paper proposes DBINPuTs, a novel approach that reuses the data from the database of the target Web application, to automatically identify domain-specific and application-specific inputs, and effectively fulfill the validity constraints present in the tested Web pages. DBINPUTS can properly cope with system testing and maintenance testing efforts, since databases are naturally and inexpensively available in those phases. To extract valid inputs from the application databases, DBINPUTS exploits the syntactic and semantic similarity between the identifiers of the input fields and the ones in the tables of the database, automatically resolving the mismatch between the user interface and the schema of the database. Our experiments provide initial evidence that DBINPUTS can outperform both random input selection and Link, a competing approach for searching inputs from knowledge bases.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132617550","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
Automatic Generation of IFTTT Mashup Infrastructures IFTTT Mashup基础设施的自动生成
Lei Liu, M. Bahrami, Wei-Peng Chen
In recent years, IF-This-Then-That (IFTTT) services are becoming more and more popular. Many platforms such as Zapier, IFTTT.com, and Workato provide such services, which allow users to create workflows with “triggers” and “actions” by using Web Application Programming Interfaces (APIs). However, the number of IFTTT recipes in the above platforms increases much slower than the growth of Web APIs. This is because human efforts are still largely required to build and deploy IFTTT recipes in the above platforms. To address this problem, in this paper, we present an automation tool to automatically generate the IFTTT mashup infrastructure. The proposed tool provides 5 REST APIs, which can automatically generate triggers, rules, and actions in AWS, and create a workflow XML to describe an IFTTT mashup by connecting the triggers, rules, and actions. This workflow XML is automatically sent to Fujitsu RunMyProcess (RMP) to set up and execute IFTTT mashup. The proposed tool, together with its associated method and procedure, enables an end-to-end solution for automatically creating, deploying, and executing IFTTT mashups in a few seconds, which can greatly reduce the development cycle and cost for new IFTTT mashups.
近年来,IF-This-Then-That (IFTTT)服务变得越来越流行。许多平台,如Zapier、IFTTT.com和Workato都提供这样的服务,允许用户通过使用Web应用程序编程接口(api)创建带有“触发器”和“动作”的工作流。然而,上述平台中IFTTT食谱数量的增长速度远低于Web api的增长速度。这是因为在上述平台中构建和部署IFTTT食谱在很大程度上仍然需要人力。为了解决这个问题,在本文中,我们提出了一个自动化工具来自动生成IFTTT混搭基础设施。建议的工具提供了5个REST api,可以在AWS中自动生成触发器、规则和操作,并通过连接触发器、规则和操作创建工作流XML来描述IFTTT混搭。这个工作流XML被自动发送到Fujitsu RunMyProcess (RMP)来设置和执行IFTTT mashup。所建议的工具及其相关的方法和过程使端到端解决方案能够在几秒钟内自动创建、部署和执行IFTTT混搭,这可以大大缩短新IFTTT混搭的开发周期和成本。
{"title":"Automatic Generation of IFTTT Mashup Infrastructures","authors":"Lei Liu, M. Bahrami, Wei-Peng Chen","doi":"10.1145/3324884.3421837","DOIUrl":"https://doi.org/10.1145/3324884.3421837","url":null,"abstract":"In recent years, IF-This-Then-That (IFTTT) services are becoming more and more popular. Many platforms such as Zapier, IFTTT.com, and Workato provide such services, which allow users to create workflows with “triggers” and “actions” by using Web Application Programming Interfaces (APIs). However, the number of IFTTT recipes in the above platforms increases much slower than the growth of Web APIs. This is because human efforts are still largely required to build and deploy IFTTT recipes in the above platforms. To address this problem, in this paper, we present an automation tool to automatically generate the IFTTT mashup infrastructure. The proposed tool provides 5 REST APIs, which can automatically generate triggers, rules, and actions in AWS, and create a workflow XML to describe an IFTTT mashup by connecting the triggers, rules, and actions. This workflow XML is automatically sent to Fujitsu RunMyProcess (RMP) to set up and execute IFTTT mashup. The proposed tool, together with its associated method and procedure, enables an end-to-end solution for automatically creating, deploying, and executing IFTTT mashups in a few seconds, which can greatly reduce the development cycle and cost for new IFTTT mashups.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133707602","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
The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel 通用数据结构的影响:解析列表在Linux内核中的作用
Nic Volanschi, J. Lawall
The increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones.
越来越多的Linux内核的采用是由大量和持续的维护工作维持的,这些维护工作是由广泛和异构的贡献者完成的。维护人员在任何代码库中都面临的一个重要问题是快速理解复杂的数据结构。Linux内核是用C语言编写的,通过使用类型转换和指针运算,可以定义任意无信息的数据类型,其中双重链表就是一个突出的例子。在本文中,我们探讨了这种列表在表达性、代码理解和代码可靠性方面的优点和缺点。根据我们的观察,我们开发了一个工具集,其中包括描述性列表类型的推断和列表可视化工具。我们的工具在最近的Linux内核版本中识别了超过10,000个列表字段和变量,并成功地键入了90%。我们将展示如何使用这些工具来检测以前修复的错误并识别6个新错误。
{"title":"The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel","authors":"Nic Volanschi, J. Lawall","doi":"10.1145/3324884.3416635","DOIUrl":"https://doi.org/10.1145/3324884.3416635","url":null,"abstract":"The increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133111128","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}
引用次数: 0
Automating Just-In-Time Comment Updating 自动化即时评论更新
Zhongxin Liu, Xin Xia, Meng Yan, Shanping Li
Code comments are valuable for program comprehension and software maintenance, and also require maintenance with code evolution. However, when changing code, developers sometimes neglect updating the related comments, bringing in inconsistent or obsolete comments (aka., bad comments). Such comments are detrimental since they may mislead developers and lead to future bugs. Therefore, it is necessary to fix and avoid bad comments. In this work, we argue that bad comments can be reduced and even avoided by automatically performing comment updates with code changes. We refer to this task as “Just-In-Time (JIT) Comment Updating” and propose an approach named CUP (Comment UPdater) to automate this task. CUP can be used to assist developers in updating comments during code changes and can consequently help avoid the introduction of bad comments. Specifically, CUP leverages a novel neural sequence-to-sequence model to learn comment update patterns from extant code-comment co-changes and can automatically generate a new comment based on its corresponding old comment and code change. Several customized enhancements, such as a special tokenizer and a novel co-attention mechanism, are introduced in CUP by us to handle the characteristics of this task. We build a dataset with over 108K comment-code co-change samples and evaluate CUP on it. The evaluation results show that CUP outperforms an information-retrieval-based and a rule-based baselines by substantial margins, and can reduce developers' edits required for JIT comment updating. In addition, the comments generated by our approach are identical to those updated by developers in 1612 (16.7%) test samples, 7 times more than the best-performing baseline.
代码注释对于程序理解和软件维护是有价值的,并且随着代码的发展也需要维护。然而,在更改代码时,开发人员有时会忽略更新相关的注释,从而引入不一致或过时的注释(也称为注释)。坏评论)。这样的注释是有害的,因为它们可能会误导开发人员并导致未来的错误。因此,有必要修复和避免不良评论。在这项工作中,我们认为可以通过在代码更改时自动执行注释更新来减少甚至避免坏注释。我们将此任务称为“即时(JIT)注释更新”,并提出一种名为CUP(注释更新器)的方法来自动执行此任务。CUP可用于帮助开发人员在代码更改期间更新注释,从而有助于避免引入不良注释。具体来说,CUP利用一种新颖的神经序列到序列模型,从现有的代码-注释共同更改中学习注释更新模式,并可以根据相应的旧注释和代码更改自动生成新注释。我们在CUP中引入了一些定制的增强功能,例如特殊的标记器和新的共同注意机制,以处理此任务的特征。我们建立了一个包含超过108K注释代码共更改样本的数据集,并在其上评估CUP。评估结果表明,CUP在很大程度上优于基于信息检索的基线和基于规则的基线,并且可以减少开发人员对JIT注释更新所需的编辑。此外,由我们的方法生成的注释与开发人员在1612个(16.7%)测试样本中更新的注释相同,比最佳执行基线多7倍。
{"title":"Automating Just-In-Time Comment Updating","authors":"Zhongxin Liu, Xin Xia, Meng Yan, Shanping Li","doi":"10.1145/3324884.3416581","DOIUrl":"https://doi.org/10.1145/3324884.3416581","url":null,"abstract":"Code comments are valuable for program comprehension and software maintenance, and also require maintenance with code evolution. However, when changing code, developers sometimes neglect updating the related comments, bringing in inconsistent or obsolete comments (aka., bad comments). Such comments are detrimental since they may mislead developers and lead to future bugs. Therefore, it is necessary to fix and avoid bad comments. In this work, we argue that bad comments can be reduced and even avoided by automatically performing comment updates with code changes. We refer to this task as “Just-In-Time (JIT) Comment Updating” and propose an approach named CUP (Comment UPdater) to automate this task. CUP can be used to assist developers in updating comments during code changes and can consequently help avoid the introduction of bad comments. Specifically, CUP leverages a novel neural sequence-to-sequence model to learn comment update patterns from extant code-comment co-changes and can automatically generate a new comment based on its corresponding old comment and code change. Several customized enhancements, such as a special tokenizer and a novel co-attention mechanism, are introduced in CUP by us to handle the characteristics of this task. We build a dataset with over 108K comment-code co-change samples and evaluate CUP on it. The evaluation results show that CUP outperforms an information-retrieval-based and a rule-based baselines by substantial margins, and can reduce developers' edits required for JIT comment updating. In addition, the comments generated by our approach are identical to those updated by developers in 1612 (16.7%) test samples, 7 times more than the best-performing baseline.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114115590","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}
引用次数: 35
期刊
2020 35th 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