首页 > 最新文献

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

英文 中文
DSIbin: Identifying dynamic data structures in C/C++ binaries 在C/ c++二进制文件中识别动态数据结构
Thomas Rupprecht, Xi Chen, D. H. White, Jan H. Boockmann, Gerald Lüttgen, H. Bos
Reverse engineering binary code is notoriously difficult and, especially, understanding a binary's dynamic data structures. Existing data structure analyzers are limited wrt. program comprehension: they do not detect complex structures such as skip lists, or lists running through nodes of different types such as in the Linux kernel's cyclic doubly-linked list. They also do not reveal complex parent-child relationships between structures. The tool DSI remedies these shortcomings but requires source code, where type information on heap nodes is available. We present DSIbin, a combination of DSI and the type excavator Howard for the inspection of C/C++ binaries. While a naive combination already improves upon related work, its precision is limited because Howard's inferred types are often too coarse. To address this we auto-generate candidates of refined types based on speculative nested-struct detection and type merging; the plausibility of these hypotheses is then validated by DSI. We demonstrate via benchmarking that DSIbin detects data structures with high precision.
逆向工程二进制代码是出了名的困难,尤其是理解二进制的动态数据结构。现有的数据结构分析器是有限的。程序理解:它们不检测复杂的结构,如跳跃表,或通过不同类型的节点运行的列表,如Linux内核的循环双链表。它们也没有揭示结构之间复杂的亲子关系。DSI工具弥补了这些缺点,但需要源代码,其中可以获得堆节点的类型信息。我们提出了DSIbin,它是DSI和类型挖掘机Howard的结合,用于检查C/ c++二进制文件。虽然朴素组合已经改进了相关工作,但由于Howard的推断类型通常过于粗糙,因此其精度受到限制。为了解决这个问题,我们基于推测嵌套结构检测和类型合并自动生成精炼类型的候选对象;这些假设的合理性然后由DSI验证。我们通过基准测试证明,DSIbin以高精度检测数据结构。
{"title":"DSIbin: Identifying dynamic data structures in C/C++ binaries","authors":"Thomas Rupprecht, Xi Chen, D. H. White, Jan H. Boockmann, Gerald Lüttgen, H. Bos","doi":"10.1109/ASE.2017.8115646","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115646","url":null,"abstract":"Reverse engineering binary code is notoriously difficult and, especially, understanding a binary's dynamic data structures. Existing data structure analyzers are limited wrt. program comprehension: they do not detect complex structures such as skip lists, or lists running through nodes of different types such as in the Linux kernel's cyclic doubly-linked list. They also do not reveal complex parent-child relationships between structures. The tool DSI remedies these shortcomings but requires source code, where type information on heap nodes is available. We present DSIbin, a combination of DSI and the type excavator Howard for the inspection of C/C++ binaries. While a naive combination already improves upon related work, its precision is limited because Howard's inferred types are often too coarse. To address this we auto-generate candidates of refined types based on speculative nested-struct detection and type merging; the plausibility of these hypotheses is then validated by DSI. We demonstrate via benchmarking that DSIbin detects data structures with high precision.","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":"121437749","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
A comprehensive study of real-world numerical bug characteristics 对真实世界数值bug特性的全面研究
A. D. Franco, Hui Guo, Cindy Rubio-González
Numerical software is used in a wide variety of applications including safety-critical systems, which have stringent correctness requirements, and whose failures have catastrophic consequences that endanger human life. Numerical bugs are known to be particularly difficult to diagnose and fix, largely due to the use of approximate representations of numbers such as floating point. Understanding the characteristics of numerical bugs is the first step to combat them more effectively. In this paper, we present the first comprehensive study of real-world numerical bugs. Specifically, we identify and carefully examine 269 numerical bugs from five widely-used numerical software libraries: NumPy, SciPy, LAPACK, GNU Scientific Library, and Elemental. We propose a categorization of numerical bugs, and discuss their frequency, symptoms and fixes. Our study opens new directions in the areas of program analysis, testing, and automated program repair of numerical software, and provides a collection of real-world numerical bugs.
数值软件用于各种各样的应用,包括具有严格正确性要求的安全关键系统,其故障会造成危及人类生命的灾难性后果。众所周知,数值错误特别难以诊断和修复,这主要是由于使用了近似的数字表示(如浮点数)。了解数值错误的特征是更有效地对抗它们的第一步。在本文中,我们首次对现实世界的数值错误进行了全面的研究。具体来说,我们从五个广泛使用的数值软件库(NumPy、SciPy、LAPACK、GNU Scientific Library和Elemental)中识别并仔细检查了269个数值错误。我们提出了数字错误的分类,并讨论了它们的频率、症状和修复方法。我们的研究在数值软件的程序分析、测试和自动程序修复领域开辟了新的方向,并提供了一个真实世界数值错误的集合。
{"title":"A comprehensive study of real-world numerical bug characteristics","authors":"A. D. Franco, Hui Guo, Cindy Rubio-González","doi":"10.1109/ASE.2017.8115662","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115662","url":null,"abstract":"Numerical software is used in a wide variety of applications including safety-critical systems, which have stringent correctness requirements, and whose failures have catastrophic consequences that endanger human life. Numerical bugs are known to be particularly difficult to diagnose and fix, largely due to the use of approximate representations of numbers such as floating point. Understanding the characteristics of numerical bugs is the first step to combat them more effectively. In this paper, we present the first comprehensive study of real-world numerical bugs. Specifically, we identify and carefully examine 269 numerical bugs from five widely-used numerical software libraries: NumPy, SciPy, LAPACK, GNU Scientific Library, and Elemental. We propose a categorization of numerical bugs, and discuss their frequency, symptoms and fixes. Our study opens new directions in the areas of program analysis, testing, and automated program repair of numerical software, and provides a collection of real-world numerical bugs.","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":"115860038","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}
引用次数: 58
ANDROFLEET: Testing WiFi peer-to-peer mobile apps in the large ANDROFLEET:大规模测试WiFi点对点移动应用
Lakhdar Meftah, María Gómez, Romain Rouvoy, Isabelle Chrisment
WiFi P2P allows mobile apps to connect to each other via WiFi without an intermediate access point. This communication mode is widely used by mobile apps to support interactions with one or more devices simultaneously. However, testing such P2P apps remains a challenge for app developers as i) existing testing frameworks lack support for WiFi P2P, and ii) WiFi P2P testing fails to scale when considering a deployment on more than two devices. In this paper, we therefore propose an acceptance testing framework, named Androfleet, to automate testing of WiFi P2P mobile apps at scale. Beyond the capability of testing point-to-point interactions under various conditions, An-drofleet supports the deployment and the emulation of a fleet of mobile devices as part of an alpha testing phase in order to assess the robustness of a WiFi P2P app once deployed in the field. To validate Androfleet, we demonstrate the detection of failing black-box acceptance tests for WiFi P2P apps and we capture the conditions under which such a mobile app can correctly work in the field. The demo video of Androfleet is made available from https://youtu.be/gJ5_Ed7XL04.
WiFi P2P允许移动应用程序通过WiFi相互连接,而无需中间接入点。这种通信模式被移动应用广泛使用,以支持同时与一个或多个设备进行交互。然而,测试这样的P2P应用程序对于应用程序开发人员来说仍然是一个挑战,因为i)现有的测试框架缺乏对WiFi P2P的支持,ii)当考虑在两个以上的设备上部署时,WiFi P2P测试无法扩展。因此,在本文中,我们提出了一个名为Androfleet的验收测试框架,用于大规模自动化测试WiFi P2P移动应用程序。除了在各种条件下测试点对点交互的能力之外,an -drofleet还支持部署和模拟一系列移动设备,作为alpha测试阶段的一部分,以便评估部署在现场的WiFi P2P应用程序的稳健性。为了验证Androfleet,我们演示了检测WiFi P2P应用程序失败的黑盒验收测试,并捕获了此类移动应用程序可以在该领域正确工作的条件。Androfleet的演示视频可从https://youtu.be/gJ5_Ed7XL04获得。
{"title":"ANDROFLEET: Testing WiFi peer-to-peer mobile apps in the large","authors":"Lakhdar Meftah, María Gómez, Romain Rouvoy, Isabelle Chrisment","doi":"10.1109/ASE.2017.8115712","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115712","url":null,"abstract":"WiFi P2P allows mobile apps to connect to each other via WiFi without an intermediate access point. This communication mode is widely used by mobile apps to support interactions with one or more devices simultaneously. However, testing such P2P apps remains a challenge for app developers as i) existing testing frameworks lack support for WiFi P2P, and ii) WiFi P2P testing fails to scale when considering a deployment on more than two devices. In this paper, we therefore propose an acceptance testing framework, named Androfleet, to automate testing of WiFi P2P mobile apps at scale. Beyond the capability of testing point-to-point interactions under various conditions, An-drofleet supports the deployment and the emulation of a fleet of mobile devices as part of an alpha testing phase in order to assess the robustness of a WiFi P2P app once deployed in the field. To validate Androfleet, we demonstrate the detection of failing black-box acceptance tests for WiFi P2P apps and we capture the conditions under which such a mobile app can correctly work in the field. The demo video of Androfleet is made available from https://youtu.be/gJ5_Ed7XL04.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"41 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":"116315463","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
Generating simpler AST edit scripts by considering copy-and-paste 通过考虑复制-粘贴,生成更简单的AST编辑脚本
Yoshiki Higo, Akio Ohtani, S. Kusumoto
In software development, there are many situations in which developers need to understand given source code changes in detail. Until now, a variety of techniques have been proposed to support understanding source code changes. Tree-based differencing techniques are expected to have better understandability than text-based ones, which are widely used nowadays (e.g., diff in Unix). In this paper, we propose to consider copy-and-paste as a kind of editing action forming tree-based edit script, which is an editing sequence that transforms a tree to another one. Software developers often perform copy- and-paste when they are writing source code. Introducing copy- and-paste action into edit script contributes to not only making simpler (more easily understandable) edit scripts but also making edit scripts closer to developers' actual editing sequences. We conducted experiments on an open dataset. As a result, we confirmed that our technique made edit scripts shorter for 18% of the code changes with a little more computational time. For the other 82% code changes, our technique generated the same edit scripts as an existing technique. We also confirmed that our technique provided more helpful visualizations.
在软件开发中,有许多情况下开发人员需要详细了解给定的源代码更改。到目前为止,已经提出了多种技术来支持理解源代码更改。基于树的差分技术被期望比基于文本的差分技术具有更好的可理解性,后者目前被广泛使用(例如Unix中的diff)。在本文中,我们建议将复制-粘贴看作一种编辑动作,形成基于树的编辑脚本,这是一种将树转换为另一树的编辑序列。软件开发人员在编写源代码时经常执行复制粘贴操作。在编辑脚本中引入复制-粘贴操作不仅使编辑脚本更简单(更容易理解),而且使编辑脚本更接近开发人员的实际编辑序列。我们在一个开放的数据集上进行了实验。结果,我们确认我们的技术使编辑脚本缩短了18%的代码更改,而计算时间稍微多一点。对于其他82%的代码更改,我们的技术生成了与现有技术相同的编辑脚本。我们还证实,我们的技术提供了更有用的可视化。
{"title":"Generating simpler AST edit scripts by considering copy-and-paste","authors":"Yoshiki Higo, Akio Ohtani, S. Kusumoto","doi":"10.1109/ASE.2017.8115664","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115664","url":null,"abstract":"In software development, there are many situations in which developers need to understand given source code changes in detail. Until now, a variety of techniques have been proposed to support understanding source code changes. Tree-based differencing techniques are expected to have better understandability than text-based ones, which are widely used nowadays (e.g., diff in Unix). In this paper, we propose to consider copy-and-paste as a kind of editing action forming tree-based edit script, which is an editing sequence that transforms a tree to another one. Software developers often perform copy- and-paste when they are writing source code. Introducing copy- and-paste action into edit script contributes to not only making simpler (more easily understandable) edit scripts but also making edit scripts closer to developers' actual editing sequences. We conducted experiments on an open dataset. As a result, we confirmed that our technique made edit scripts shorter for 18% of the code changes with a little more computational time. For the other 82% code changes, our technique generated the same edit scripts as an existing technique. We also confirmed that our technique provided more helpful visualizations.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"623 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":"123325745","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}
引用次数: 16
Automatic summarization of API reviews API评审的自动汇总
Gias Uddin, Foutse Khomh
With the proliferation of online developer forums as informal documentation, developers often share their opinions about the APIs they use. However, given the plethora of opinions available for an API in various online developer forums, it can be challenging for a developer to make informed decisions about the APIs. While automatic summarization of opinions have been explored for other domains (e.g., cameras, cars), we found little research that investigates the benefits of summaries of public API reviews. In this paper, we present two algorithms (statistical and aspect-based) to summarize opinions about APIs. To investigate the usefulness of the techniques, we developed, Opiner, an online opinion summarization engine that presents summaries of opinions using both our proposed techniques and existing six off-the-shelf techniques. We investigated the usefulness of Opiner using two case studies, both involving professional software engineers. We found that developers were interested to use our proposed summaries much more frequently than other summaries (daily vs once a year) and that while combined with Stack Overflow, Opiner helped developers to make the right decision with more accuracy and confidence and in less time.
随着作为非正式文档的在线开发人员论坛的激增,开发人员经常分享他们对所使用的api的看法。然而,考虑到各种在线开发人员论坛上关于API的大量意见,开发人员对API做出明智的决定可能是一项挑战。虽然在其他领域(例如,相机,汽车)已经探索了意见的自动摘要,但我们发现很少有研究调查公共API评论摘要的好处。在本文中,我们提出了两种算法(统计和基于方面)来总结关于api的观点。为了调查这些技术的有用性,我们开发了在线意见摘要引擎Opiner,该引擎使用我们提出的技术和现有的六种现成技术来呈现意见摘要。我们使用两个案例研究来调查Opiner的有用性,这两个案例都涉及到专业的软件工程师。我们发现,比起其他总结,开发者更愿意频繁地使用我们的建议总结(每天一次,而不是一年一次),并且与Stack Overflow相结合,Opiner帮助开发者在更短的时间内更准确、更自信地做出正确的决定。
{"title":"Automatic summarization of API reviews","authors":"Gias Uddin, Foutse Khomh","doi":"10.1109/ASE.2017.8115629","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115629","url":null,"abstract":"With the proliferation of online developer forums as informal documentation, developers often share their opinions about the APIs they use. However, given the plethora of opinions available for an API in various online developer forums, it can be challenging for a developer to make informed decisions about the APIs. While automatic summarization of opinions have been explored for other domains (e.g., cameras, cars), we found little research that investigates the benefits of summaries of public API reviews. In this paper, we present two algorithms (statistical and aspect-based) to summarize opinions about APIs. To investigate the usefulness of the techniques, we developed, Opiner, an online opinion summarization engine that presents summaries of opinions using both our proposed techniques and existing six off-the-shelf techniques. We investigated the usefulness of Opiner using two case studies, both involving professional software engineers. We found that developers were interested to use our proposed summaries much more frequently than other summaries (daily vs once a year) and that while combined with Stack Overflow, Opiner helped developers to make the right decision with more accuracy and confidence and in less time.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"42 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":"121205398","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
Diagnosing assumption problems in safety-critical products 诊断安全关键产品中的假设问题
Mona Rahimi, Wandi Xiong, J. Cleland-Huang, R. Lutz
Problems with the correctness and completeness of environmental assumptions contribute to many accidents in safety-critical systems. The problem is exacerbated when products are modified in new releases or in new products of a product line. In such cases existing sets of environmental assumptions are often carried forward without sufficiently rigorous analysis. This paper describes a new technique that exploits the traceability required by many certifying bodies to reason about the likelihood that environmental assumptions are omitted or incorrectly retained in new products. An analysis of over 150 examples of environmental assumptions in historical systems informs the approach. In an evaluation on three safety-related product lines the approach caught all but one of the assumption-related problems. It also provided clearly defined steps for mitigating the identified issues. The contribution of the work is to arm the safety analyst with useful information for assessing the validity of environmental assumptions for a new product.
环境假设的正确性和完整性问题导致了安全关键系统中的许多事故。当产品在新版本或产品线的新产品中被修改时,问题就会加剧。在这种情况下,现有的一系列环境假设往往在没有进行足够严格分析的情况下继续进行。本文描述了一种新技术,该技术利用许多认证机构所需的可追溯性来推断新产品中省略或错误保留环境假设的可能性。对历史系统中150多个环境假设例子的分析为该方法提供了信息。在对三条与安全相关的产品线的评估中,该方法抓住了所有与假设相关的问题,只有一个没有。它还为减轻已确定的问题提供了明确定义的步骤。这项工作的贡献是为安全分析人员提供有用的信息,以评估新产品的环境假设的有效性。
{"title":"Diagnosing assumption problems in safety-critical products","authors":"Mona Rahimi, Wandi Xiong, J. Cleland-Huang, R. Lutz","doi":"10.1109/ASE.2017.8115659","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115659","url":null,"abstract":"Problems with the correctness and completeness of environmental assumptions contribute to many accidents in safety-critical systems. The problem is exacerbated when products are modified in new releases or in new products of a product line. In such cases existing sets of environmental assumptions are often carried forward without sufficiently rigorous analysis. This paper describes a new technique that exploits the traceability required by many certifying bodies to reason about the likelihood that environmental assumptions are omitted or incorrectly retained in new products. An analysis of over 150 examples of environmental assumptions in historical systems informs the approach. In an evaluation on three safety-related product lines the approach caught all but one of the assumption-related problems. It also provided clearly defined steps for mitigating the identified issues. The contribution of the work is to arm the safety analyst with useful information for assessing the validity of environmental assumptions for a new product.","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":"125155701","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
Programming bots by synthesizing natural language expressions into API invocations 通过将自然语言表达式合成为API调用来编程机器人
Shayan Zamanirad, B. Benatallah, M. C. Barukh, F. Casati, Carlos Rodríguez
At present, bots are still in their preliminary stages of development. Many are relatively simple, or developed ad-hoc for a very specific use-case. For this reason, they are typically programmed manually, or utilize machine-learning classifiers to interpret a fixed set of user utterances. In reality, real world conversations with humans require support for dynamically capturing users expressions. Moreover, bots will derive immeasurable value by programming them to invoke APIs for their results. Today, within the Web and Mobile development community, complex applications are being stringed together with a few lines of code — all made possible by APIs. Yet, developers today are not as empowered to program bots in much the same way. To overcome this, we introduce BotBase, a bot programming platform that dynamically synthesizes natural language user expressions into API invocations. Our solution is two faceted: Firstly, we construct an API knowledge graph to encode and evolve APIs; secondly, leveraging the above we apply techniques in NLP, ML and Entity Recognition to perform the required synthesis from natural language user expressions into API calls.
目前,机器人仍处于初级发展阶段。许多都相对简单,或者是为非常具体的用例专门开发的。出于这个原因,它们通常是手动编程的,或者利用机器学习分类器来解释一组固定的用户话语。在现实中,与人类的真实对话需要支持动态捕获用户的表达式。此外,通过编程,机器人将为其结果调用api,从而获得不可估量的价值。今天,在Web和移动开发社区中,复杂的应用程序被几行代码串在一起——所有这些都是通过api实现的。然而,今天的开发人员并没有以同样的方式编程机器人。为了克服这个问题,我们引入了BotBase,这是一个机器人编程平台,可以动态地将自然语言用户表达式合成为API调用。我们的解决方案是两方面的:首先,我们构建API知识图来编码和演化API;其次,利用上述技术,我们应用NLP、ML和实体识别技术来执行从自然语言用户表达式到API调用的所需合成。
{"title":"Programming bots by synthesizing natural language expressions into API invocations","authors":"Shayan Zamanirad, B. Benatallah, M. C. Barukh, F. Casati, Carlos Rodríguez","doi":"10.1109/ASE.2017.8115694","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115694","url":null,"abstract":"At present, bots are still in their preliminary stages of development. Many are relatively simple, or developed ad-hoc for a very specific use-case. For this reason, they are typically programmed manually, or utilize machine-learning classifiers to interpret a fixed set of user utterances. In reality, real world conversations with humans require support for dynamically capturing users expressions. Moreover, bots will derive immeasurable value by programming them to invoke APIs for their results. Today, within the Web and Mobile development community, complex applications are being stringed together with a few lines of code — all made possible by APIs. Yet, developers today are not as empowered to program bots in much the same way. To overcome this, we introduce BotBase, a bot programming platform that dynamically synthesizes natural language user expressions into API invocations. Our solution is two faceted: Firstly, we construct an API knowledge graph to encode and evolve APIs; secondly, leveraging the above we apply techniques in NLP, ML and Entity Recognition to perform the required synthesis from natural language user expressions into API calls.","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":"125383954","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
Systematic reduction of GUI test sequences GUI测试序列的系统简化
Lin Cheng, Z. Yang, Chao Wang
Graphic user interface (GUI) is an integral part of many software applications. However, GUI testing remains a challenging task. The main problem is to generate a set of high-quality test cases, i.e., sequences of user events to cover the often large input space. Since manually crafting event sequences is labor-intensive and automated testing tools often have poor performance, we propose a new GUI testing framework to efficiently generate progressively longer event sequences while avoiding redundant sequences. Our technique for identifying the redundancy among these sequences relies on statically checking a set of simple and syntactic-level conditions, whose reduction power matches and sometimes exceeds that of classic techniques based on partial order reduction. We have evaluated our method on 17 Java Swing applications. Our experimental results show the new technique, while being sound and systematic, can achieve more than 10X reduction in the number of test sequences compared to the state-of-the-art GUI testing tools.
图形用户界面(GUI)是许多软件应用程序不可或缺的一部分。然而,GUI测试仍然是一项具有挑战性的任务。主要的问题是生成一组高质量的测试用例,即用户事件序列,以覆盖通常较大的输入空间。由于手工制作事件序列是劳动密集型的,而且自动化测试工具的性能通常很差,我们提出了一个新的GUI测试框架,以有效地逐步生成更长的事件序列,同时避免冗余序列。我们的识别这些序列之间冗余的技术依赖于静态检查一组简单的语法级条件,其约简能力与基于偏序约简的经典技术相匹配,有时甚至超过。我们已经在17个Java Swing应用程序上评估了我们的方法。我们的实验结果表明,与最先进的GUI测试工具相比,新技术虽然健全且系统,但可以将测试序列的数量减少10倍以上。
{"title":"Systematic reduction of GUI test sequences","authors":"Lin Cheng, Z. Yang, Chao Wang","doi":"10.1109/ASE.2017.8115696","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115696","url":null,"abstract":"Graphic user interface (GUI) is an integral part of many software applications. However, GUI testing remains a challenging task. The main problem is to generate a set of high-quality test cases, i.e., sequences of user events to cover the often large input space. Since manually crafting event sequences is labor-intensive and automated testing tools often have poor performance, we propose a new GUI testing framework to efficiently generate progressively longer event sequences while avoiding redundant sequences. Our technique for identifying the redundancy among these sequences relies on statically checking a set of simple and syntactic-level conditions, whose reduction power matches and sometimes exceeds that of classic techniques based on partial order reduction. We have evaluated our method on 17 Java Swing applications. Our experimental results show the new technique, while being sound and systematic, can achieve more than 10X reduction in the number of test sequences compared to the state-of-the-art GUI testing tools.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 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":"129033395","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
APIBot: Question answering bot for API documentation APIBot:用于API文档的问答机器人
Yuan Tian, Ferdian Thung, Abhishek Sharma, D. Lo
As the carrier of Application Programming Interfaces (APIs) knowledge, API documentation plays a crucial role in how developers learn and use an API. It is also a valuable information resource for answering API-related questions, especially when developers cannot find reliable answers to their questions online/offline. However, finding answers to API-related questions from API documentation might not be easy because one may have to manually go through multiple pages before reaching the relevant page, and then read and understand the information inside the relevant page to figure out the answers. To deal with this challenge, we develop APIBot, a bot that can answer API questions given API documentation as an input. APIBot is built on top of SiriusQA, the QA system from Sirius, a state of the art intelligent personal assistant. To make SiriusQA work well under software engineering scenario, we make several modifications over SiriusQA by injecting domain specific knowledge. We evaluate APIBot on 92 API questions, answers of which are known to be present in Java 8 documentation. Our experiment shows that APIBot can achieve a Hit@5 score of 0.706.
作为应用程序编程接口(API)知识的载体,API文档在开发人员如何学习和使用API方面起着至关重要的作用。它也是回答api相关问题的宝贵信息资源,特别是当开发人员无法在线/离线找到可靠的问题答案时。但是,从API文档中查找与API相关的问题的答案可能并不容易,因为在到达相关页面之前可能必须手动浏览多个页面,然后阅读和理解相关页面中的信息以找出答案。为了应对这一挑战,我们开发了APIBot,它可以在给定API文档作为输入的情况下回答API问题。APIBot建立在SiriusQA之上,天狼星的QA系统是最先进的智能个人助理。为了使SiriusQA在软件工程场景下工作良好,我们通过注入领域特定知识对SiriusQA进行了一些修改。我们根据92个API问题对APIBot进行了评估,这些问题的答案已知存在于Java 8文档中。我们的实验表明,APIBot可以达到0.706的Hit@5分数。
{"title":"APIBot: Question answering bot for API documentation","authors":"Yuan Tian, Ferdian Thung, Abhishek Sharma, D. Lo","doi":"10.1109/ASE.2017.8115628","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115628","url":null,"abstract":"As the carrier of Application Programming Interfaces (APIs) knowledge, API documentation plays a crucial role in how developers learn and use an API. It is also a valuable information resource for answering API-related questions, especially when developers cannot find reliable answers to their questions online/offline. However, finding answers to API-related questions from API documentation might not be easy because one may have to manually go through multiple pages before reaching the relevant page, and then read and understand the information inside the relevant page to figure out the answers. To deal with this challenge, we develop APIBot, a bot that can answer API questions given API documentation as an input. APIBot is built on top of SiriusQA, the QA system from Sirius, a state of the art intelligent personal assistant. To make SiriusQA work well under software engineering scenario, we make several modifications over SiriusQA by injecting domain specific knowledge. We evaluate APIBot on 92 API questions, answers of which are known to be present in Java 8 documentation. Our experiment shows that APIBot can achieve a Hit@5 score of 0.706.","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":"129293115","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
Privacy-aware data-intensive applications 隐私敏感的数据密集型应用程序
M. Guerriero
The rise of Big Data is leading to an increasing demand for data-intensive applications (DIAs), which, in many cases, are expected to process massive amounts of sensitive data. In this context, ensuring data privacy becomes paramount. While the way we design and develop DIAs has radically changed over the last few years in order to deal with Big Data, there has been relatively little effort to make such design privacy-aware. As a result, enforcing privacy policies in large-scale data processing is currently an open research problem. This thesis proposal makes one step towards this investigation: after identifying the dataflow model as the reference computational model for large-scale DIAs, (1) we propose a novel language for specifying privacy policies on dataflow applications along with (2) a dataflow rewriting mechanism to enforce such policies during DIA execution. Although a systematic evaluation still needs to be carried out, preliminary results are promising. We plan to implement our approach within a model-driven solution to ultimately simplify the design and development of privacy-aware DIAs, i.e. DIAs that ensure privacy policies at runtime.
大数据的兴起导致对数据密集型应用程序(DIAs)的需求不断增长,在许多情况下,这些应用程序预计将处理大量敏感数据。在这种情况下,确保数据隐私变得至关重要。在过去的几年里,为了处理大数据,我们设计和开发DIAs的方式发生了根本性的变化,但在设计隐私意识方面所做的努力相对较少。因此,在大规模数据处理中执行隐私政策目前是一个开放的研究问题。本论文的建议为这项研究迈出了一步:在确定数据流模型作为大规模DIA的参考计算模型之后,(1)我们提出了一种新的语言来指定数据流应用程序的隐私策略,以及(2)在DIA执行期间强制执行这些策略的数据流重写机制。虽然还需要进行系统的评价,但初步结果是有希望的。我们计划在模型驱动的解决方案中实现我们的方法,以最终简化隐私感知的DIAs的设计和开发,即在运行时确保隐私策略的DIAs。
{"title":"Privacy-aware data-intensive applications","authors":"M. Guerriero","doi":"10.1109/ASE.2017.8115726","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115726","url":null,"abstract":"The rise of Big Data is leading to an increasing demand for data-intensive applications (DIAs), which, in many cases, are expected to process massive amounts of sensitive data. In this context, ensuring data privacy becomes paramount. While the way we design and develop DIAs has radically changed over the last few years in order to deal with Big Data, there has been relatively little effort to make such design privacy-aware. As a result, enforcing privacy policies in large-scale data processing is currently an open research problem. This thesis proposal makes one step towards this investigation: after identifying the dataflow model as the reference computational model for large-scale DIAs, (1) we propose a novel language for specifying privacy policies on dataflow applications along with (2) a dataflow rewriting mechanism to enforce such policies during DIA execution. Although a systematic evaluation still needs to be carried out, preliminary results are promising. We plan to implement our approach within a model-driven solution to ultimately simplify the design and development of privacy-aware DIAs, i.e. DIAs that ensure privacy policies at runtime.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"101 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":"114606503","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
期刊
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