首页 > 最新文献

2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Understanding and overcoming parallelism bottlenecks in ForkJoin applications 理解并克服ForkJoin应用程序中的并行瓶颈
G. Pinto, Anthony Canino, F. C. Filho, G. Xu, Yu David Liu
ForkJoin framework is a widely used parallel programming framework upon which both core concurrency libraries and real-world applications are built. Beneath its simple and user-friendly APIs, ForkJoin is a sophisticated managed parallel runtime unfamiliar to many application programmers: the framework core is a work-stealing scheduler, handles fine-grained tasks, and sustains the pressure from automatic memory management. ForkJoin poses a unique gap in the compute stack between high-level software engineering and low-level system optimization. Understanding and bridging this gap is crucial for the future of parallelism support in JVM-supported applications. This paper describes a comprehensive study on parallelism bottlenecks in ForkJoin applications, with a unique focus on how they interact with underlying system-level features, such as work stealing and memory management. We identify 6 bottlenecks, and found that refactoring them can significantly improve performance and energy efficiency. Our field study includes an in-depth analysis of Akka — a real-world actor framework — and 30 additional open-source ForkJoin projects. We sent our patches to the developers of 15 projects, and 7 out of the 9 projects that replied to our patches have accepted them.
ForkJoin框架是一个广泛使用的并行编程框架,核心并发库和实际应用程序都建立在它之上。在其简单且用户友好的api之下,ForkJoin是一个许多应用程序程序员都不熟悉的复杂的托管并行运行时:框架核心是一个偷取工作的调度器,处理细粒度任务,并承受自动内存管理带来的压力。在计算堆栈中,ForkJoin在高级软件工程和低级系统优化之间形成了独特的鸿沟。理解和弥合这一差距对于jvm支持的应用程序中未来的并行性支持至关重要。本文对ForkJoin应用程序中的并行瓶颈进行了全面的研究,特别关注它们如何与底层系统级特性(如工作窃取和内存管理)进行交互。我们确定了6个瓶颈,并发现对它们进行重构可以显著提高性能和能效。我们的实地研究包括对Akka(一个真实的actor框架)和另外30个开源ForkJoin项目的深入分析。我们向15个项目的开发者发送了补丁,回复我们补丁的9个项目中有7个已经接受了我们的补丁。
{"title":"Understanding and overcoming parallelism bottlenecks in ForkJoin applications","authors":"G. Pinto, Anthony Canino, F. C. Filho, G. Xu, Yu David Liu","doi":"10.1109/ASE.2017.8115687","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115687","url":null,"abstract":"ForkJoin framework is a widely used parallel programming framework upon which both core concurrency libraries and real-world applications are built. Beneath its simple and user-friendly APIs, ForkJoin is a sophisticated managed parallel runtime unfamiliar to many application programmers: the framework core is a work-stealing scheduler, handles fine-grained tasks, and sustains the pressure from automatic memory management. ForkJoin poses a unique gap in the compute stack between high-level software engineering and low-level system optimization. Understanding and bridging this gap is crucial for the future of parallelism support in JVM-supported applications. This paper describes a comprehensive study on parallelism bottlenecks in ForkJoin applications, with a unique focus on how they interact with underlying system-level features, such as work stealing and memory management. We identify 6 bottlenecks, and found that refactoring them can significantly improve performance and energy efficiency. Our field study includes an in-depth analysis of Akka — a real-world actor framework — and 30 additional open-source ForkJoin projects. We sent our patches to the developers of 15 projects, and 7 out of the 9 projects that replied to our patches have accepted them.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125678968","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}
引用次数: 15
Automatically reducing tree-structured test inputs 自动减少树状结构的测试输入
Satia Herfert, Jibesh Patra, Michael Pradel
Reducing the test input given to a program while preserving some property of interest is important, e.g., to localize faults or to reduce test suites. The well-known delta debugging algorithm and its derivatives automate this task by repeatedly reducing a given input. Unfortunately, these approaches are limited to blindly removing parts of the input and cannot reduce the input by restructuring it. This paper presents the Generalized Tree Reduction (GTR) algorithm, an effective and efficient technique to reduce arbitrary test inputs that can be represented as a tree, such as program code, PDF files, and XML documents. The algorithm combines tree transformations with delta debugging and a greedy backtracking algorithm. To reduce the size of the considered search space, the approach automatically specializes the tree transformations applied by the algorithm based on examples of input trees. We evaluate GTR by reducing Python files that cause interpreter crashes, JavaScript files that cause browser inconsistencies, PDF documents with malicious content, and XML files used to tests an XML validator. The GTR algorithm reduces the trees of these files to 45.3%, 3.6%, 44.2%, and 1.3% of the original size, respectively, outperforming both delta debugging and another state-of-the-art algorithm.
减少给程序的测试输入,同时保留一些感兴趣的属性是很重要的,例如,定位错误或减少测试套件。众所周知的增量调试算法及其衍生算法通过反复减少给定的输入来自动完成这项任务。不幸的是,这些方法仅限于盲目地删除部分输入,而不能通过重组输入来减少输入。本文提出了广义树约简算法(GTR),这是一种有效的技术,可以减少可以表示为树的任意测试输入,如程序代码、PDF文件和XML文档。该算法结合了树变换、增量调试和贪婪回溯算法。为了减少考虑的搜索空间的大小,该方法根据输入树的示例自动专门化算法应用的树转换。我们通过减少导致解释器崩溃的Python文件、导致浏览器不一致的JavaScript文件、包含恶意内容的PDF文档和用于测试XML验证器的XML文件来评估GTR。GTR算法将这些文件的树分别减少到原始大小的45.3%、3.6%、44.2%和1.3%,优于增量调试和另一种最先进的算法。
{"title":"Automatically reducing tree-structured test inputs","authors":"Satia Herfert, Jibesh Patra, Michael Pradel","doi":"10.1109/ASE.2017.8115697","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115697","url":null,"abstract":"Reducing the test input given to a program while preserving some property of interest is important, e.g., to localize faults or to reduce test suites. The well-known delta debugging algorithm and its derivatives automate this task by repeatedly reducing a given input. Unfortunately, these approaches are limited to blindly removing parts of the input and cannot reduce the input by restructuring it. This paper presents the Generalized Tree Reduction (GTR) algorithm, an effective and efficient technique to reduce arbitrary test inputs that can be represented as a tree, such as program code, PDF files, and XML documents. The algorithm combines tree transformations with delta debugging and a greedy backtracking algorithm. To reduce the size of the considered search space, the approach automatically specializes the tree transformations applied by the algorithm based on examples of input trees. We evaluate GTR by reducing Python files that cause interpreter crashes, JavaScript files that cause browser inconsistencies, PDF documents with malicious content, and XML files used to tests an XML validator. The GTR algorithm reduces the trees of these files to 45.3%, 3.6%, 44.2%, and 1.3% of the original size, respectively, outperforming both delta debugging and another state-of-the-art algorithm.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124032443","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}
引用次数: 37
Improving software text retrieval using conceptual knowledge in source code 利用源代码中的概念知识改进软件文本检索
Zeqi Lin, Yanzhen Zou, Junfeng Zhao, Bing Xie
A large software project usually has lots of various textual learning resources about its API, such as tutorials, mailing lists, user forums, etc. Text retrieval technology allows developers to search these API learning resources for related documents using free-text queries, but it suffers from the lexical gap between search queries and documents. In this paper, we propose a novel approach for improving the retrieval of API learning resources through leveraging software-specific conceptual knowledge in software source code. The basic idea behind this approach is that the semantic relatedness between queries and documents could be measured according to software-specific concepts involved in them, and software source code contains a large amount of software-specific conceptual knowledge. In detail, firstly we extract an API graph from software source code and use it as software-specific conceptual knowledge. Then we discover API entities involved in queries and documents, and infer semantic document relatedness through analyzing structural relationships between these API entities. We evaluate our approach in three popular open source software projects. Comparing to the state-of-the-art text retrieval approaches, our approach lead to at least 13.77% improvement with respect to mean average precision (MAP).
大型软件项目通常有许多关于其API的文本学习资源,如教程、邮件列表、用户论坛等。文本检索技术允许开发人员使用自由文本查询在这些API学习资源中搜索相关文档,但它受到搜索查询和文档之间的词汇差距的困扰。在本文中,我们提出了一种新的方法,通过利用软件源代码中特定于软件的概念知识来改进API学习资源的检索。这种方法背后的基本思想是,查询和文档之间的语义相关性可以根据其中涉及的特定于软件的概念来度量,而软件源代码包含大量特定于软件的概念知识。首先,从软件源代码中提取API图,并将其作为特定于软件的概念知识。然后发现查询和文档中涉及的API实体,并通过分析这些API实体之间的结构关系推断语义文档相关性。我们在三个流行的开源软件项目中评估了我们的方法。与最先进的文本检索方法相比,我们的方法在平均精度(MAP)方面至少提高了13.77%。
{"title":"Improving software text retrieval using conceptual knowledge in source code","authors":"Zeqi Lin, Yanzhen Zou, Junfeng Zhao, Bing Xie","doi":"10.1109/ASE.2017.8115625","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115625","url":null,"abstract":"A large software project usually has lots of various textual learning resources about its API, such as tutorials, mailing lists, user forums, etc. Text retrieval technology allows developers to search these API learning resources for related documents using free-text queries, but it suffers from the lexical gap between search queries and documents. In this paper, we propose a novel approach for improving the retrieval of API learning resources through leveraging software-specific conceptual knowledge in software source code. The basic idea behind this approach is that the semantic relatedness between queries and documents could be measured according to software-specific concepts involved in them, and software source code contains a large amount of software-specific conceptual knowledge. In detail, firstly we extract an API graph from software source code and use it as software-specific conceptual knowledge. Then we discover API entities involved in queries and documents, and infer semantic document relatedness through analyzing structural relationships between these API entities. We evaluate our approach in three popular open source software projects. Comparing to the state-of-the-art text retrieval approaches, our approach lead to at least 13.77% improvement with respect to mean average precision (MAP).","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126602729","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}
引用次数: 21
UNDEAD: Detecting and preventing deadlocks in production software UNDEAD:检测和防止生产软件中的死锁
Jinpeng Zhou, Sam Silvestro, Hongyu Liu, Yan Cai, Tongping Liu
Deadlocks are critical problems afflicting parallel applications, causing software to hang with no further progress. Existing detection tools suffer not only from significant recording performance overhead, but also from excessive memory and/or storage overhead. In addition, they may generate numerous false alarms. Subsequently, after problems have been reported, tremendous manual effort is required to confirm and fix these deadlocks. This paper designs a novel system, UnDead, that helps defeat deadlocks in production software. Different from existing detection tools, UnDead imposes negligible runtime performance overhead (less than 3 % on average) and small memory overhead (around 6%), without any storage consumption. After detection, UnDead automatically strengthens erroneous programs to prevent future occurrences of both existing and potential deadlocks, which is similar to the existing work—Dimmunix. However, UnDead exceeds Dimmunix with several orders of magnitude lower performance overhead, while eliminating numerous false positives. Extremely low runtime and memory overhead, convenience, and automatic prevention make UnDead an always-on detection tool, and a "band-aid" prevention system for production software.
死锁是困扰并行应用程序的关键问题,它会导致软件挂起而没有进一步的进展。现有的检测工具不仅存在显著的记录性能开销,而且还存在过多的内存和/或存储开销。此外,它们可能会产生大量的假警报。随后,在报告了问题之后,需要大量的手工工作来确认和修复这些死锁。本文设计了一个新颖的系统,UnDead,它可以帮助解决生产软件中的死锁问题。与现有的检测工具不同,UnDead的运行时性能开销可以忽略不计(平均不到3%),内存开销也很小(约6%),而且不消耗任何存储。检测后,UnDead自动加强错误程序,以防止将来发生现有和潜在的死锁,这类似于现有的工作dimmununix。然而,UnDead比dimmununix性能开销低了几个数量级,同时消除了许多误报。极低的运行时和内存开销,便利性和自动预防使UnDead成为一种始终在线的检测工具,也是生产软件的“创可贴”预防系统。
{"title":"UNDEAD: Detecting and preventing deadlocks in production software","authors":"Jinpeng Zhou, Sam Silvestro, Hongyu Liu, Yan Cai, Tongping Liu","doi":"10.1109/ASE.2017.8115684","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115684","url":null,"abstract":"Deadlocks are critical problems afflicting parallel applications, causing software to hang with no further progress. Existing detection tools suffer not only from significant recording performance overhead, but also from excessive memory and/or storage overhead. In addition, they may generate numerous false alarms. Subsequently, after problems have been reported, tremendous manual effort is required to confirm and fix these deadlocks. This paper designs a novel system, UnDead, that helps defeat deadlocks in production software. Different from existing detection tools, UnDead imposes negligible runtime performance overhead (less than 3 % on average) and small memory overhead (around 6%), without any storage consumption. After detection, UnDead automatically strengthens erroneous programs to prevent future occurrences of both existing and potential deadlocks, which is similar to the existing work—Dimmunix. However, UnDead exceeds Dimmunix with several orders of magnitude lower performance overhead, while eliminating numerous false positives. Extremely low runtime and memory overhead, convenience, and automatic prevention make UnDead an always-on detection tool, and a \"band-aid\" prevention system for production software.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127973459","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}
引用次数: 26
CogniCrypt: Supporting developers in using cryptography CogniCrypt:支持开发人员使用加密技术
Stefan Krüger, Sarah Nadi, Michael Reif, Karim Ali, M. Mezini, E. Bodden, Florian Göpfert, Felix Günther, Christian Weinert, Daniel Demmler, Ram Kamath
Previous research suggests that developers often struggle using low-level cryptographic APIs and, as a result, produce insecure code. When asked, developers desire, among other things, more tool support to help them use such APIs. In this paper, we present CogniCrypt, a tool that supports developers with the use of cryptographic APIs. CogniCrypt assists the developer in two ways. First, for a number of common cryptographic tasks, CogniCrypt generates code that implements the respective task in a secure manner. Currently, CogniCrypt supports tasks such as data encryption, communication over secure channels, and long-term archiving. Second, CogniCrypt continuously runs static analyses in the background to ensure a secure integration of the generated code into the developer's workspace. This video demo showcases the main features of CogniCrypt: youtube.com/watch?v=JUq5mRHfAWY.
以前的研究表明,开发人员经常在使用低级加密api时遇到困难,因此产生了不安全的代码。当被问及这些问题时,开发人员希望得到更多的工具支持来帮助他们使用这些api。在本文中,我们介绍了CogniCrypt,一个支持开发人员使用加密api的工具。CogniCrypt以两种方式帮助开发人员。首先,对于许多常见的加密任务,CogniCrypt生成以安全方式实现相应任务的代码。目前,CogniCrypt支持数据加密、安全通道通信和长期存档等任务。其次,CogniCrypt在后台持续运行静态分析,以确保生成的代码安全集成到开发人员的工作空间中。这个视频演示展示了CogniCrypt的主要功能:youtube.com/watch?v=JUq5mRHfAWY。
{"title":"CogniCrypt: Supporting developers in using cryptography","authors":"Stefan Krüger, Sarah Nadi, Michael Reif, Karim Ali, M. Mezini, E. Bodden, Florian Göpfert, Felix Günther, Christian Weinert, Daniel Demmler, Ram Kamath","doi":"10.1109/ASE.2017.8115707","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115707","url":null,"abstract":"Previous research suggests that developers often struggle using low-level cryptographic APIs and, as a result, produce insecure code. When asked, developers desire, among other things, more tool support to help them use such APIs. In this paper, we present CogniCrypt, a tool that supports developers with the use of cryptographic APIs. CogniCrypt assists the developer in two ways. First, for a number of common cryptographic tasks, CogniCrypt generates code that implements the respective task in a secure manner. Currently, CogniCrypt supports tasks such as data encryption, communication over secure channels, and long-term archiving. Second, CogniCrypt continuously runs static analyses in the background to ensure a secure integration of the generated code into the developer's workspace. This video demo showcases the main features of CogniCrypt: youtube.com/watch?v=JUq5mRHfAWY.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132271238","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}
引用次数: 98
Learning to share: Engineering adaptive decision-support for online social networks 学习分享:在线社交网络的工程适应性决策支持
Yasmin Rafiq, Luke Dickens, A. Russo, A. Bandara, Mu Yang, Avelie Stuart, M. Levine, G. Çalikli, B. Price, B. Nuseibeh
Some online social networks (OSNs) allow users to define friendship-groups as reusable shortcuts for sharing information with multiple contacts. Posting exclusively to a friendship-group gives some privacy control, while supporting communication with (and within) this group. However, recipients of such posts may want to reuse content for their own social advantage, and can bypass existing controls by copy-pasting into a new post; this cross-posting poses privacy risks. This paper presents a learning to share approach that enables the incorporation of more nuanced privacy controls into OSNs. Specifically, we propose a reusable, adaptive software architecture that uses rigorous runtime analysis to help OSN users to make informed decisions about suitable audiences for their posts. This is achieved by supporting dynamic formation of recipient-groups that benefit social interactions while reducing privacy risks. We exemplify the use of our approach in the context of Facebook.
一些在线社交网络允许用户定义朋友组,作为与多个联系人共享信息的可重用快捷方式。只向一个朋友群发帖可以提供一些隐私控制,同时支持与这个朋友群之间的交流。但是,这些帖子的接收者可能希望重用内容以获得自己的社交优势,并且可以通过复制粘贴到新帖子中来绕过现有的控制;这种交叉发布会带来隐私风险。本文提出了一种学习共享的方法,可以将更细微的隐私控制集成到osn中。具体来说,我们提出了一个可重用的、自适应的软件架构,该架构使用严格的运行时分析来帮助OSN用户做出明智的决定,为他们的帖子选择合适的受众。这是通过支持接受者群体的动态形成来实现的,这有利于社会互动,同时降低了隐私风险。我们以Facebook为例说明了这种方法的应用。
{"title":"Learning to share: Engineering adaptive decision-support for online social networks","authors":"Yasmin Rafiq, Luke Dickens, A. Russo, A. Bandara, Mu Yang, Avelie Stuart, M. Levine, G. Çalikli, B. Price, B. Nuseibeh","doi":"10.1109/ASE.2017.8115641","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115641","url":null,"abstract":"Some online social networks (OSNs) allow users to define friendship-groups as reusable shortcuts for sharing information with multiple contacts. Posting exclusively to a friendship-group gives some privacy control, while supporting communication with (and within) this group. However, recipients of such posts may want to reuse content for their own social advantage, and can bypass existing controls by copy-pasting into a new post; this cross-posting poses privacy risks. This paper presents a learning to share approach that enables the incorporation of more nuanced privacy controls into OSNs. Specifically, we propose a reusable, adaptive software architecture that uses rigorous runtime analysis to help OSN users to make informed decisions about suitable audiences for their posts. This is achieved by supporting dynamic formation of recipient-groups that benefit social interactions while reducing privacy risks. We exemplify the use of our approach in the context of Facebook.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134266426","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
The rise of the (modelling) bots: Towards assisted modelling via social networks (建模)机器人的兴起:通过社交网络进行辅助建模
Sara Pérez-Soler, E. Guerra, J. Lara, F. Jurado
We are witnessing a rising role of mobile computing and social networks to perform all sorts of tasks. This way, social networks like Twitter or Telegram are used for leisure, and they frequently serve as a discussion media for work-related activities. In this paper, we propose taking advantage of social networks to enable the collaborative creation of models by groups of users. The process is assisted by modelling bots that orchestrate the collaboration and interpret the users' inputs (in natural language) to incrementally build a (meta-)model. The advantages of this modelling approach include ubiquity of use, automation, assistance, natural user interaction, traceability of design decisions, possibility to incorporate coordination protocols, and seamless integration with the user's normal daily usage of social networks. We present a prototype implementation called SOCIO, able to work over several social networks like Twitter and Telegram, and a preliminary evaluation showing promising results.
我们正在见证移动计算和社交网络在执行各种任务方面的作用日益增强。这样,像Twitter或Telegram这样的社交网络就被用于休闲,它们经常被用作与工作有关的活动的讨论媒体。在本文中,我们建议利用社交网络来实现由用户组协作创建模型。该过程由建模机器人辅助,建模机器人协调协作并解释用户的输入(以自然语言),以逐步构建(元)模型。这种建模方法的优点包括使用的普遍性、自动化、辅助、自然的用户交互、设计决策的可追溯性、合并协调协议的可能性,以及与用户日常使用的社交网络的无缝集成。我们展示了一个名为SOCIO的原型实现,它可以在Twitter和Telegram等多个社交网络上工作,初步评估显示出有希望的结果。
{"title":"The rise of the (modelling) bots: Towards assisted modelling via social networks","authors":"Sara Pérez-Soler, E. Guerra, J. Lara, F. Jurado","doi":"10.1109/ASE.2017.8115683","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115683","url":null,"abstract":"We are witnessing a rising role of mobile computing and social networks to perform all sorts of tasks. This way, social networks like Twitter or Telegram are used for leisure, and they frequently serve as a discussion media for work-related activities. In this paper, we propose taking advantage of social networks to enable the collaborative creation of models by groups of users. The process is assisted by modelling bots that orchestrate the collaboration and interpret the users' inputs (in natural language) to incrementally build a (meta-)model. The advantages of this modelling approach include ubiquity of use, automation, assistance, natural user interaction, traceability of design decisions, possibility to incorporate coordination protocols, and seamless integration with the user's normal daily usage of social networks. We present a prototype implementation called SOCIO, able to work over several social networks like Twitter and Telegram, and a preliminary evaluation showing promising results.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134416100","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}
引用次数: 34
Automated cross-platform inconsistency detection for mobile apps 自动跨平台不一致检测移动应用程序
M. Fazzini, A. Orso
Testing of Android apps is particularly challenging due to the fragmentation of the Android ecosystem in terms of both devices and operating system versions. Developers must in fact ensure not only that their apps behave as expected, but also that the apps' behavior is consistent across platforms. To support this task, we propose DiffDroid, a new technique that helps developers automatically find cross-platform inconsistencies (CPIs) in mobile apps. DiffDroid combines input generation and differential testing to compare the behavior of an app on different platforms and identify possible inconsistencies. Given an app, DiffDroid (1) generates test inputs for the app, (2) runs the app with these inputs on a reference device and builds a model of the app behavior, (3) runs the app with the same inputs on a set of other devices, and (4) compares the behavior of the app on these different devices with the model of its behavior on the reference device. We implemented DiFFDRoiD and performed an evaluation of our approach on 5 benchmarks and over 130 platforms. our results show that DiFFDRoiD can identify CPis on real apps efficiently and with a limited number of false positives. DiFFDRoiD and our experimental infrastructure are publicly available.
由于Android生态系统在设备和操作系统版本上的分裂性,测试Android应用尤其具有挑战性。事实上,开发者不仅要确保他们的应用符合预期,还要确保应用在不同平台上的行为是一致的。为了支持这项任务,我们提出了DiffDroid,这是一种新技术,可以帮助开发人员自动发现移动应用程序中的跨平台不一致性(cpi)。DiffDroid结合了输入生成和差异测试来比较应用在不同平台上的行为,并找出可能的不一致之处。给定一个应用程序,DiffDroid(1)为应用程序生成测试输入,(2)在参考设备上使用这些输入运行应用程序并建立应用程序行为模型,(3)在一组其他设备上使用相同的输入运行应用程序,(4)将应用程序在这些不同设备上的行为与其在参考设备上的行为模型进行比较。我们实现了DiFFDRoiD,并在5个基准测试和130多个平台上对我们的方法进行了评估。我们的结果表明,DiFFDRoiD可以有效地识别真实应用程序上的cpi,并且假阳性数量有限。DiFFDRoiD和我们的实验基础设施是公开的。
{"title":"Automated cross-platform inconsistency detection for mobile apps","authors":"M. Fazzini, A. Orso","doi":"10.1109/ASE.2017.8115644","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115644","url":null,"abstract":"Testing of Android apps is particularly challenging due to the fragmentation of the Android ecosystem in terms of both devices and operating system versions. Developers must in fact ensure not only that their apps behave as expected, but also that the apps' behavior is consistent across platforms. To support this task, we propose DiffDroid, a new technique that helps developers automatically find cross-platform inconsistencies (CPIs) in mobile apps. DiffDroid combines input generation and differential testing to compare the behavior of an app on different platforms and identify possible inconsistencies. Given an app, DiffDroid (1) generates test inputs for the app, (2) runs the app with these inputs on a reference device and builds a model of the app behavior, (3) runs the app with the same inputs on a set of other devices, and (4) compares the behavior of the app on these different devices with the model of its behavior on the reference device. We implemented DiFFDRoiD and performed an evaluation of our approach on 5 benchmarks and over 130 platforms. our results show that DiFFDRoiD can identify CPis on real apps efficiently and with a limited number of false positives. DiFFDRoiD and our experimental infrastructure are publicly available.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134560720","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}
引用次数: 45
Crowd intelligence enhances automated mobile testing
Ke Mao, M. Harman, Yue Jia
We show that information extracted from crowd-based testing can enhance automated mobile testing. We introduce Polariz, which generates replicable test scripts from crowd-based testing, extracting cross-app ‘motif’ events: automatically-inferred reusable higher-level event sequences composed of lower-level observed event actions. Our empirical study used 434 crowd workers from Mechanical Turk to perform 1,350 testing tasks on 9 popular Google Play apps, each with at least 1 million user installs. The findings reveal that the crowd was able to achieve 60.5% unique activity coverage and proved to be complementary to automated search-based testing in 5 out of the 9 subjects studied. Our leave-one-out evaluation demonstrates that coverage attainment can be improved (6 out of 9 cases, with no disimprovement on the remaining 3) by combining crowd-based and search-based testing.
我们表明,从基于人群的测试中提取的信息可以增强自动化的移动测试。我们介绍了polarz,它从基于人群的测试中生成可复制的测试脚本,提取跨应用程序的“motif”事件:自动推断可重用的高级事件序列,由低级观察到的事件动作组成。我们的实证研究让来自Mechanical Turk的434名员工在9款流行的Google Play应用上执行1350项测试任务,每款应用的用户安装量至少为100万。研究结果显示,人群能够达到60.5%的独特活动覆盖率,并且在9个研究对象中有5个被证明是基于自动搜索的测试的补充。我们的“留一”评估表明,通过结合基于人群和基于搜索的测试,覆盖率可以得到改善(9个案例中有6个案例,其余3个案例没有改进)。
{"title":"Crowd intelligence enhances automated mobile testing","authors":"Ke Mao, M. Harman, Yue Jia","doi":"10.1109/ASE.2017.8115614","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115614","url":null,"abstract":"We show that information extracted from crowd-based testing can enhance automated mobile testing. We introduce Polariz, which generates replicable test scripts from crowd-based testing, extracting cross-app ‘motif’ events: automatically-inferred reusable higher-level event sequences composed of lower-level observed event actions. Our empirical study used 434 crowd workers from Mechanical Turk to perform 1,350 testing tasks on 9 popular Google Play apps, each with at least 1 million user installs. The findings reveal that the crowd was able to achieve 60.5% unique activity coverage and proved to be complementary to automated search-based testing in 5 out of the 9 subjects studied. Our leave-one-out evaluation demonstrates that coverage attainment can be improved (6 out of 9 cases, with no disimprovement on the remaining 3) by combining crowd-based and search-based testing.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127806714","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}
引用次数: 51
Exploring regular expression comprehension 探索正则表达式理解
Carl Chapman, Peipei Wang, Kathryn T. Stolee
The regular expression (regex) is a powerful tool employed in a large variety of software engineering tasks. However, prior work has shown that regexes can be very complex and that it could be difficult for developers to compose and understand them. This work seeks to identify code smells that impact comprehension. We conduct an empirical study on 42 pairs of behaviorally equivalent but syntactically different regexes using 180 participants and evaluate the understandability of various regex language features. We further analyze regexes in GitHub to find the community standards or the common usages of various features. We found that some regex expression representations are more understandable than others. For example, using a range (e.g., [0–9]) is often more understandable than a default character class (e.g., [d]). We also found that the DFA size of a regex significantly affects comprehension for the regexes studied. The larger the DFA of a regex (up to size eight), the more understandable it was. Finally, we identify smelly and non-smelly regex representations based on a combination of community standards and understandability metrics.
正则表达式(regex)是用于各种软件工程任务的强大工具。然而,先前的工作表明,正则表达式可能非常复杂,开发人员很难组合和理解它们。这项工作旨在识别影响理解的代码气味。我们对180名参与者的42对行为等效但语法不同的正则表达式进行了实证研究,并评估了各种正则表达式语言特征的可理解性。我们进一步分析GitHub中的正则表达式,以找到社区标准或各种功能的通用用法。我们发现一些正则表达式表示比其他的更容易理解。例如,使用一个范围(例如,[0-9])通常比使用默认字符类(例如,[d])更容易理解。我们还发现,一个正则表达式的DFA大小显著影响对所研究的正则表达式的理解。regex的DFA越大(最大为8),它就越容易理解。最后,我们基于社区标准和可理解性度量的组合来识别有问题和无问题的正则表达式表示。
{"title":"Exploring regular expression comprehension","authors":"Carl Chapman, Peipei Wang, Kathryn T. Stolee","doi":"10.1109/ASE.2017.8115653","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115653","url":null,"abstract":"The regular expression (regex) is a powerful tool employed in a large variety of software engineering tasks. However, prior work has shown that regexes can be very complex and that it could be difficult for developers to compose and understand them. This work seeks to identify code smells that impact comprehension. We conduct an empirical study on 42 pairs of behaviorally equivalent but syntactically different regexes using 180 participants and evaluate the understandability of various regex language features. We further analyze regexes in GitHub to find the community standards or the common usages of various features. We found that some regex expression representations are more understandable than others. For example, using a range (e.g., [0–9]) is often more understandable than a default character class (e.g., [d]). We also found that the DFA size of a regex significantly affects comprehension for the regexes studied. The larger the DFA of a regex (up to size eight), the more understandable it was. Finally, we identify smelly and non-smelly regex representations based on a combination of community standards and understandability metrics.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127951012","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}
引用次数: 37
期刊
2017 32nd 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