首页 > 最新文献

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

英文 中文
Study and Refactoring of Android Asynchronous Programming (T) Android异步编程(T)的研究与重构
Yu Lin, Semih Okur, Danny Dig
To avoid unresponsiveness, a core part of mobile development is asynchronous programming. Android providesseveral async constructs that developers can use. However, developers can still use the inappropriate async constructs, which result in memory leaks, lost results, and wasted energy. Fortunately, refactoring tools can eliminate these problems by transforming async code to use the appropriate constructs. In this paper we conducted a formative study on a corpusof 611 widely-used Android apps to map the asynchronouslandscape of Android apps, understand how developers retrofit asynchrony, and learn about barriers encountered by developers. Based on this study, we designed, implemented, and evaluated ASYNCDROID, a refactoring tool which enables Android developers to transform existing improperly-used async constructs into correct constructs. Our empirical evaluation shows that ASYNCDROID is applicable, accurate, and saves developers effort. We submitted 45 refactoring patches, and developers consider that the refactorings are useful.
为了避免无响应,移动开发的一个核心部分是异步编程。Android提供了几个开发者可以使用的异步结构。但是,开发人员仍然可以使用不适当的异步构造,这会导致内存泄漏、结果丢失和能量浪费。幸运的是,重构工具可以通过将异步代码转换为使用适当的结构来消除这些问题。在本文中,我们对611个广泛使用的Android应用程序的语料库进行了形成性研究,以绘制Android应用程序的异步景观,了解开发人员如何改进异步,并了解开发人员遇到的障碍。基于这项研究,我们设计、实现并评估了ASYNCDROID,这是一个重构工具,可以使Android开发人员将现有的不正确使用的异步构造转换为正确的构造。我们的经验评估表明ASYNCDROID是适用的、准确的,并且节省了开发人员的工作。我们提交了45个重构补丁,开发人员认为这些重构是有用的。
{"title":"Study and Refactoring of Android Asynchronous Programming (T)","authors":"Yu Lin, Semih Okur, Danny Dig","doi":"10.1109/ASE.2015.50","DOIUrl":"https://doi.org/10.1109/ASE.2015.50","url":null,"abstract":"To avoid unresponsiveness, a core part of mobile development is asynchronous programming. Android providesseveral async constructs that developers can use. However, developers can still use the inappropriate async constructs, which result in memory leaks, lost results, and wasted energy. Fortunately, refactoring tools can eliminate these problems by transforming async code to use the appropriate constructs. In this paper we conducted a formative study on a corpusof 611 widely-used Android apps to map the asynchronouslandscape of Android apps, understand how developers retrofit asynchrony, and learn about barriers encountered by developers. Based on this study, we designed, implemented, and evaluated ASYNCDROID, a refactoring tool which enables Android developers to transform existing improperly-used async constructs into correct constructs. Our empirical evaluation shows that ASYNCDROID is applicable, accurate, and saves developers effort. We submitted 45 refactoring patches, and developers consider that the refactorings are useful.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"249 1","pages":"224-235"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72878528","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}
引用次数: 55
Testing Cross-Platform Mobile App Development Frameworks (T) 测试跨平台移动应用开发框架(T)
Nader Boushehrinejadmoradi, V. Ganapathy, Santosh Nagarakatte, L. Iftode
Mobile app developers often wish to make their apps available on a wide variety of platforms, e.g., Android, iOS, and Windows devices. Each of these platforms uses a different programming environment, each with its own language and APIs for app development. Small app development teams lack the resources and the expertise to build and maintain separate code bases of the app customized for each platform. As a result, we are beginning to see a number of cross-platform mobile app development frameworks. These frameworks allow the app developers to specify the business logic of the app once, using the language and APIs of a home platform (e.g., Windows Phone), and automatically produce versions of the app for multiple target platforms (e.g., iOS and Android). In this paper, we focus on the problem of testing cross-platform app development frameworks. Such frameworks are challenging to develop because they must correctly translate the home platform API to the (possibly disparate) target platform API while providing the same behavior. We develop a differential testing methodology to identify inconsistencies in the way that these frameworks handle the APIs of the home and target platforms. We have built a prototype testing tool, called X-Checker, and have applied it to test Xamarin, a popular framework that allows Windows Phone apps to be cross-compiled into native Android (and iOS) apps. To date, X-Checker has found 47 bugs in Xamarin, corresponding to inconsistencies in the way that Xamarin translates between the semantics of the Windows Phone and the Android APIs. We have reported these bugs to the Xamarin developers, who have already committed patches for twelve of them.
移动应用开发者通常希望自己的应用能够在各种平台上运行,例如Android、iOS和Windows设备。这些平台都使用不同的编程环境,每个平台都有自己的语言和api用于应用程序开发。小型应用程序开发团队缺乏资源和专业知识来构建和维护针对每个平台定制的应用程序的单独代码库。因此,我们开始看到许多跨平台的手机应用开发框架。这些框架允许应用程序开发人员一次指定应用程序的业务逻辑,使用家庭平台(例如,Windows Phone)的语言和api,并自动生成多个目标平台(例如,iOS和Android)的应用程序版本。本文主要研究跨平台应用开发框架的测试问题。这类框架的开发具有挑战性,因为它们必须在提供相同行为的同时,将主平台API正确地转换为(可能完全不同的)目标平台API。我们开发了一种不同的测试方法来识别这些框架处理主平台和目标平台api的方式的不一致性。我们已经创建了一个名为X-Checker的原型测试工具,并将其用于测试Xamarin, Xamarin是一个流行的框架,允许将Windows Phone应用交叉编译为原生Android(和iOS)应用。到目前为止,X-Checker已经在Xamarin中发现了47个漏洞,对应于Xamarin在Windows Phone和Android api之间的语义转换方式的不一致。我们已经向Xamarin开发人员报告了这些bug,他们已经为其中的12个bug提交了补丁。
{"title":"Testing Cross-Platform Mobile App Development Frameworks (T)","authors":"Nader Boushehrinejadmoradi, V. Ganapathy, Santosh Nagarakatte, L. Iftode","doi":"10.1109/ASE.2015.21","DOIUrl":"https://doi.org/10.1109/ASE.2015.21","url":null,"abstract":"Mobile app developers often wish to make their apps available on a wide variety of platforms, e.g., Android, iOS, and Windows devices. Each of these platforms uses a different programming environment, each with its own language and APIs for app development. Small app development teams lack the resources and the expertise to build and maintain separate code bases of the app customized for each platform. As a result, we are beginning to see a number of cross-platform mobile app development frameworks. These frameworks allow the app developers to specify the business logic of the app once, using the language and APIs of a home platform (e.g., Windows Phone), and automatically produce versions of the app for multiple target platforms (e.g., iOS and Android). In this paper, we focus on the problem of testing cross-platform app development frameworks. Such frameworks are challenging to develop because they must correctly translate the home platform API to the (possibly disparate) target platform API while providing the same behavior. We develop a differential testing methodology to identify inconsistencies in the way that these frameworks handle the APIs of the home and target platforms. We have built a prototype testing tool, called X-Checker, and have applied it to test Xamarin, a popular framework that allows Windows Phone apps to be cross-compiled into native Android (and iOS) apps. To date, X-Checker has found 47 bugs in Xamarin, corresponding to inconsistencies in the way that Xamarin translates between the semantics of the Windows Phone and the Android APIs. We have reported these bugs to the Xamarin developers, who have already committed patches for twelve of them.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"221 1","pages":"441-451"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76657016","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}
引用次数: 20
Search-Based Synthesis of Probabilistic Models for Quality-of-Service Software Engineering (T) 基于搜索的服务质量软件工程概率模型综合(T)
Simos Gerasimou, Giordano Tamburrelli, R. Calinescu
The formal verification of finite-state probabilistic models supports the engineering of software with strict quality-of-service (QoS) requirements. However, its use in software design is currently a tedious process of manual multiobjective optimisation. Software designers must build and verify probabilistic models for numerous alternative architectures and instantiations of the system parameters. When successful, they end up with feasible but often suboptimal models. The EvoChecker search-based software engineering approach and tool introduced in our paper employ multiobjective optimisation genetic algorithms to automate this process and considerably improve its outcome. We evaluate EvoChecker for six variants of two software systems from the domains of dynamic power management and foreign exchange trading. These systems are characterised by different types of design parameters and QoS requirements, and their design spaces comprise between 2E+14 and 7.22E+86 relevant alternative designs. Our results provide strong evidence that EvoChecker significantly outperforms the current practice and yields actionable insights for software designers.
有限状态概率模型的形式化验证支持具有严格服务质量(QoS)要求的软件工程。然而,它在软件设计中的应用目前是一个繁琐的人工多目标优化过程。软件设计人员必须为许多可选择的体系结构和系统参数的实例建立和验证概率模型。即使成功了,他们最终也会得到可行但往往不是最优的模型。本文介绍的基于EvoChecker搜索的软件工程方法和工具采用多目标优化遗传算法来实现这一过程的自动化,并大大改善了其结果。我们对来自动态电源管理和外汇交易领域的两个软件系统的六个变体进行了EvoChecker评估。这些系统的特点是不同类型的设计参数和QoS要求,它们的设计空间包括2E+14和7.22E+86之间的相关替代设计。我们的研究结果提供了强有力的证据,证明EvoChecker显著优于当前的实践,并为软件设计师提供了可操作的见解。
{"title":"Search-Based Synthesis of Probabilistic Models for Quality-of-Service Software Engineering (T)","authors":"Simos Gerasimou, Giordano Tamburrelli, R. Calinescu","doi":"10.1109/ASE.2015.22","DOIUrl":"https://doi.org/10.1109/ASE.2015.22","url":null,"abstract":"The formal verification of finite-state probabilistic models supports the engineering of software with strict quality-of-service (QoS) requirements. However, its use in software design is currently a tedious process of manual multiobjective optimisation. Software designers must build and verify probabilistic models for numerous alternative architectures and instantiations of the system parameters. When successful, they end up with feasible but often suboptimal models. The EvoChecker search-based software engineering approach and tool introduced in our paper employ multiobjective optimisation genetic algorithms to automate this process and considerably improve its outcome. We evaluate EvoChecker for six variants of two software systems from the domains of dynamic power management and foreign exchange trading. These systems are characterised by different types of design parameters and QoS requirements, and their design spaces comprise between 2E+14 and 7.22E+86 relevant alternative designs. Our results provide strong evidence that EvoChecker significantly outperforms the current practice and yields actionable insights for software designers.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"3 1","pages":"319-330"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82962380","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}
引用次数: 50
Clone Merge -- An Eclipse Plugin to Abstract Near-Clone C++ Methods 克隆合并——一个抽象近克隆c++方法的Eclipse插件
Krishna Narasimhan
Software clones are prevalent. In the work of Laguë et al. [2], they observe that 6.4% and 7.5% of the source code in different versions of a large, mature code base are clones. The work of Baxter et al. [1] reports even higher numbers, sometimes exceeding 25%. We consider the prevalence of such near miss clones to be strong indicators that copy-paste-modify is a wide-spread development methodology. Even though clones are prevalent, they are a significant development headache. Specially, if bugs arise in one of the clones, they need to be fixed in all of the clones. This problem is acknowledged in the work of Juergens et al. [4] who say in their work that "cloning can be a substantial problem during development and maintenance", since "inconsistent clones constitute a major source of faults". A similar concern is raised in practitioner literature [3] suggesting that clones should be removed in some form or the other. We present a tool that can be installed as a plugin to Eclipse CDT, the development environment for C/C++. The research prototype comes with a refactoring option called "Copy Paste merge" refactoring, which is available as a menu option in the modified version of the Eclipse CDT.
软件克隆非常普遍。在Laguë等人的工作中,他们观察到,在一个大型成熟代码库的不同版本中,6.4%和7.5%的源代码是克隆的。Baxter等人的研究报告甚至更高,有时超过25%。我们认为,这种近靶克隆的普遍存在是复制-粘贴-修改是一种广泛传播的开发方法的有力指标。尽管克隆很普遍,但它们是开发过程中的一大难题。特别是,如果在一个克隆中出现错误,则需要在所有克隆中修复它们。这个问题在Juergens等人的工作中得到了承认,他们在他们的工作中说,“克隆在开发和维护期间可能是一个重大问题”,因为“不一致的克隆构成了故障的主要来源”。从业者文献[3]也提出了类似的担忧,建议应该以某种形式删除克隆。我们提供了一个可以作为插件安装到Eclipse CDT (C/ c++的开发环境)的工具。研究原型附带了一个称为“复制粘贴合并”重构的重构选项,在Eclipse CDT的修改版本中可以作为菜单选项使用。
{"title":"Clone Merge -- An Eclipse Plugin to Abstract Near-Clone C++ Methods","authors":"Krishna Narasimhan","doi":"10.1109/ASE.2015.103","DOIUrl":"https://doi.org/10.1109/ASE.2015.103","url":null,"abstract":"Software clones are prevalent. In the work of Laguë et al. [2], they observe that 6.4% and 7.5% of the source code in different versions of a large, mature code base are clones. The work of Baxter et al. [1] reports even higher numbers, sometimes exceeding 25%. We consider the prevalence of such near miss clones to be strong indicators that copy-paste-modify is a wide-spread development methodology. Even though clones are prevalent, they are a significant development headache. Specially, if bugs arise in one of the clones, they need to be fixed in all of the clones. This problem is acknowledged in the work of Juergens et al. [4] who say in their work that \"cloning can be a substantial problem during development and maintenance\", since \"inconsistent clones constitute a major source of faults\". A similar concern is raised in practitioner literature [3] suggesting that clones should be removed in some form or the other. We present a tool that can be installed as a plugin to Eclipse CDT, the development environment for C/C++. The research prototype comes with a refactoring option called \"Copy Paste merge\" refactoring, which is available as a menu option in the modified version of the Eclipse CDT.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"33 1","pages":"819-823"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88021317","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Evolutionary Robustness Testing of Data Processing Systems Using Models and Data Mutation (T) 基于模型和数据突变(T)的数据处理系统进化鲁棒性检验
Daniel Di Nardo, F. Pastore, Andrea Arcuri, L. Briand
System level testing of industrial data processing software poses several challenges. Input data can be very large, even in the order of gigabytes, and with complex constraints that define when an input is valid. Generating the right input data to stress the system for robustness properties (e.g. to test how faulty data is handled) is hence very complex, tedious and error prone when done manually. Unfortunately, this is the current practice in industry. In previous work, we defined a methodology to model the structure and the constraints of input data by using UML class diagrams and OCL constraints. Tests were automatically derived to cover predefined fault types in a fault model. In this paper, to obtain more effective system level test cases, we developed a novel search-based test generation tool. Experiments on a real-world, large industrial data processing system show that our automated approach can not only achieve better code coverage, but also accomplishes this using significantly smaller test suites.
工业数据处理软件的系统级测试面临着一些挑战。输入数据可能非常大,甚至达到千兆字节的数量级,并且具有定义输入何时有效的复杂约束。因此,手动生成正确的输入数据以强调系统的鲁棒性(例如,测试如何处理有缺陷的数据)是非常复杂、乏味和容易出错的。不幸的是,这是目前工业上的惯例。在之前的工作中,我们定义了一种方法,通过使用UML类图和OCL约束对输入数据的结构和约束进行建模。自动派生测试以覆盖故障模型中预定义的故障类型。为了获得更有效的系统级测试用例,我们开发了一种新的基于搜索的测试生成工具。在真实世界的大型工业数据处理系统上的实验表明,我们的自动化方法不仅可以实现更好的代码覆盖率,而且还可以使用更小的测试套件来实现这一点。
{"title":"Evolutionary Robustness Testing of Data Processing Systems Using Models and Data Mutation (T)","authors":"Daniel Di Nardo, F. Pastore, Andrea Arcuri, L. Briand","doi":"10.1109/ASE.2015.13","DOIUrl":"https://doi.org/10.1109/ASE.2015.13","url":null,"abstract":"System level testing of industrial data processing software poses several challenges. Input data can be very large, even in the order of gigabytes, and with complex constraints that define when an input is valid. Generating the right input data to stress the system for robustness properties (e.g. to test how faulty data is handled) is hence very complex, tedious and error prone when done manually. Unfortunately, this is the current practice in industry. In previous work, we defined a methodology to model the structure and the constraints of input data by using UML class diagrams and OCL constraints. Tests were automatically derived to cover predefined fault types in a fault model. In this paper, to obtain more effective system level test cases, we developed a novel search-based test generation tool. Experiments on a real-world, large industrial data processing system show that our automated approach can not only achieve better code coverage, but also accomplishes this using significantly smaller test suites.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"7 1","pages":"126-137"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88329017","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T) 访问路径抽象:具有无界访问路径(T)的伸缩域敏感数据流分析
Johannes Lerch, Johannes Späth, E. Bodden, M. Mezini
Precise data-flow analyses frequently model field accesses through access paths with varying length. While using longer access paths increases precision, their size must be bounded to assure termination, and should anyway be small to enable a scalable analysis. We present Access-Path Abstraction, which for the first time combines efficiency with maximal precision. At control-flow merge points Access-Path Abstraction represents all those access paths that are rooted at the same base variable through this base variable only. The full access paths are reconstructed on demand where required. This makes it unnecessary to bound access paths to a fixed maximal length. Experiments with Stanford SecuriBench and the Java Class Library compare our open-source implementation against a field-based approach and against a field-sensitive approach that uses bounded access paths. The results show that the proposed approach scales as well as a field-based approach, whereas the approach using bounded access paths runs out of memory.
精确的数据流分析经常通过不同长度的访问路径对字段访问进行建模。虽然使用较长的访问路径可以提高精度,但必须限制其大小以确保终止,并且无论如何都应该很小以支持可伸缩的分析。我们提出了存取路径抽象,首次将效率与最大精度结合起来。在控制流合并点上,访问路径抽象仅通过此基本变量表示根于同一基本变量的所有访问路径。在需要的地方,根据需要重建完整的访问路径。这使得没有必要将访问路径绑定到固定的最大长度。使用Stanford SecuriBench和Java类库的实验将我们的开源实现与基于字段的方法和使用有界访问路径的字段敏感方法进行了比较。结果表明,该方法具有良好的可扩展性和基于字段的方法,而使用有界访问路径的方法会耗尽内存。
{"title":"Access-Path Abstraction: Scaling Field-Sensitive Data-Flow Analysis with Unbounded Access Paths (T)","authors":"Johannes Lerch, Johannes Späth, E. Bodden, M. Mezini","doi":"10.1109/ASE.2015.9","DOIUrl":"https://doi.org/10.1109/ASE.2015.9","url":null,"abstract":"Precise data-flow analyses frequently model field accesses through access paths with varying length. While using longer access paths increases precision, their size must be bounded to assure termination, and should anyway be small to enable a scalable analysis. We present Access-Path Abstraction, which for the first time combines efficiency with maximal precision. At control-flow merge points Access-Path Abstraction represents all those access paths that are rooted at the same base variable through this base variable only. The full access paths are reconstructed on demand where required. This makes it unnecessary to bound access paths to a fixed maximal length. Experiments with Stanford SecuriBench and the Java Class Library compare our open-source implementation against a field-based approach and against a field-sensitive approach that uses bounded access paths. The results show that the proposed approach scales as well as a field-based approach, whereas the approach using bounded access paths runs out of memory.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"85 1","pages":"619-629"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75380680","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
MetaMod: A Modeling Formalism with Modularity at Its Core MetaMod:一种以模块化为核心的建模形式
A. Sutîi
Because modern engineering products require more and more functionality, the models used in the design of these products get larger and more complex. A way to handle this complexity would be a suitable mechanism to modularize models. However, current approaches in the Model Driven Engineering field have limited support for modularity. This is the gap that our research addresses. We want to tackle the gap by designing and creating a modeling formalism with modularity at its core - MetaMod. We are including the modeling formalism into a prototype such that we can experiment with it. Our evaluation plan includes bootstrapping MetaMod (defining MetaMod in MetaMod) and creating an industrial DSL in MetaMod.
由于现代工程产品对功能的要求越来越高,因此用于这些产品设计的模型变得越来越大,越来越复杂。处理这种复杂性的一种方法是将模型模块化的合适机制。然而,目前模型驱动工程领域的方法对模块化的支持有限。这就是我们的研究要解决的问题。我们希望通过设计和创建一个以模块化为核心的建模形式——MetaMod来解决这个问题。我们正在将建模形式主义包含到一个原型中,这样我们就可以对它进行实验。我们的评估计划包括启动MetaMod(在MetaMod中定义MetaMod)和在MetaMod中创建一个工业DSL。
{"title":"MetaMod: A Modeling Formalism with Modularity at Its Core","authors":"A. Sutîi","doi":"10.1109/ASE.2015.29","DOIUrl":"https://doi.org/10.1109/ASE.2015.29","url":null,"abstract":"Because modern engineering products require more and more functionality, the models used in the design of these products get larger and more complex. A way to handle this complexity would be a suitable mechanism to modularize models. However, current approaches in the Model Driven Engineering field have limited support for modularity. This is the gap that our research addresses. We want to tackle the gap by designing and creating a modeling formalism with modularity at its core - MetaMod. We are including the modeling formalism into a prototype such that we can experiment with it. Our evaluation plan includes bootstrapping MetaMod (defining MetaMod in MetaMod) and creating an industrial DSL in MetaMod.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"16 1","pages":"890-893"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73781324","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
GRT: Program-Analysis-Guided Random Testing (T) GRT:程序分析引导的随机测试
Lei Ma, Cyrille Artho, Cheng Zhang, Hiroyuki Sato, Johannes Gmeiner, R. Ramler
We propose Guided Random Testing (GRT), which uses static and dynamic analysis to include information on program types, data, and dependencies in various stages of automated test generation. Static analysis extracts knowledge from the system under test. Test coverage is further improved through state fuzzing and continuous coverage analysis. We evaluated GRT on 32 real-world projects and found that GRT outperforms major peer techniques in terms of code coverage (by 13 %) and mutation score (by 9 %). On the four studied benchmarks of Defects4J, which contain 224 real faults, GRT also shows better fault detection capability than peer techniques, finding 147 faults (66 %). Furthermore, in an in-depth evaluation on the latest versions of ten popular real-world projects, GRT successfully detects over 20 unknown defects that were confirmed by developers.
我们提出引导随机测试(GRT),它使用静态和动态分析来包括自动测试生成的各个阶段中的程序类型、数据和依赖关系的信息。静态分析从被测系统中提取知识。通过状态模糊和连续覆盖率分析,进一步提高了测试覆盖率。我们在32个实际项目中评估了GRT,发现GRT在代码覆盖率(13%)和突变分数(9%)方面优于主要的同类技术。在研究的四个包含224个真实故障的缺陷4j基准测试中,GRT也显示出比同类技术更好的故障检测能力,发现147个故障(66%)。此外,在对十个流行的现实世界项目的最新版本进行深入评估后,GRT成功地检测出了超过20个由开发人员确认的未知缺陷。
{"title":"GRT: Program-Analysis-Guided Random Testing (T)","authors":"Lei Ma, Cyrille Artho, Cheng Zhang, Hiroyuki Sato, Johannes Gmeiner, R. Ramler","doi":"10.1109/ASE.2015.49","DOIUrl":"https://doi.org/10.1109/ASE.2015.49","url":null,"abstract":"We propose Guided Random Testing (GRT), which uses static and dynamic analysis to include information on program types, data, and dependencies in various stages of automated test generation. Static analysis extracts knowledge from the system under test. Test coverage is further improved through state fuzzing and continuous coverage analysis. We evaluated GRT on 32 real-world projects and found that GRT outperforms major peer techniques in terms of code coverage (by 13 %) and mutation score (by 9 %). On the four studied benchmarks of Defects4J, which contain 224 real faults, GRT also shows better fault detection capability than peer techniques, finding 147 faults (66 %). Furthermore, in an in-depth evaluation on the latest versions of ten popular real-world projects, GRT successfully detects over 20 unknown defects that were confirmed by developers.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"212-223"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75303454","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
GRT: An Automated Test Generator Using Orchestrated Program Analysis GRT:使用编排程序分析的自动化测试生成器
Lei Ma, Cyrille Artho, Cheng Zhang, Hiroyuki Sato, Johannes Gmeiner, R. Ramler
While being highly automated and easy to use, existing techniques of random testing suffer from low code coverage and defect detection ability for practical software applications. Most tools use a pure black-box approach, which does not use knowledge specific to the software under test. Mining and leveraging the information of the software under test can be promising to guide random testing to overcome such limitations. Guided Random Testing (GRT) implements this idea. GRT performs static analysis on software under test to extract relevant knowledge and further combines the information extracted at run-time to guide the whole test generation procedure. GRT is highly configurable, with each of its six program analysis components implemented as a pluggable module whose parameters can be adjusted. Besides generating test cases, GRT also automatically creates a test coverage report. We show our experience in GRT tool development and demonstrate its practical usage using two concrete application scenarios.
虽然具有高度自动化和易于使用的特点,但是现有的随机测试技术在实际软件应用中存在代码覆盖率低和缺陷检测能力差的问题。大多数工具使用纯黑盒方法,不使用特定于被测软件的知识。挖掘和利用被测软件的信息有望指导随机测试来克服这些限制。引导随机测试(GRT)实现了这个想法。GRT对被测软件进行静态分析,提取相关知识,并结合在运行时提取的信息来指导整个测试生成过程。GRT是高度可配置的,其六个程序分析组件中的每一个都实现为可插拔模块,其参数可以调整。除了生成测试用例,GRT还自动创建测试覆盖率报告。我们将展示我们在GRT工具开发方面的经验,并通过两个具体的应用程序场景演示其实际用法。
{"title":"GRT: An Automated Test Generator Using Orchestrated Program Analysis","authors":"Lei Ma, Cyrille Artho, Cheng Zhang, Hiroyuki Sato, Johannes Gmeiner, R. Ramler","doi":"10.1109/ASE.2015.102","DOIUrl":"https://doi.org/10.1109/ASE.2015.102","url":null,"abstract":"While being highly automated and easy to use, existing techniques of random testing suffer from low code coverage and defect detection ability for practical software applications. Most tools use a pure black-box approach, which does not use knowledge specific to the software under test. Mining and leveraging the information of the software under test can be promising to guide random testing to overcome such limitations. Guided Random Testing (GRT) implements this idea. GRT performs static analysis on software under test to extract relevant knowledge and further combines the information extracted at run-time to guide the whole test generation procedure. GRT is highly configurable, with each of its six program analysis components implemented as a pluggable module whose parameters can be adjusted. Besides generating test cases, GRT also automatically creates a test coverage report. We show our experience in GRT tool development and demonstrate its practical usage using two concrete application scenarios.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"2 1","pages":"842-847"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75190265","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}
引用次数: 18
Optimistic Shared Memory Dependence Tracing (T) 乐观共享内存依赖跟踪(T)
Yanyan Jiang, Du Li, Chang Xu, Xiaoxing Ma, Jian Lu
Inter-thread shared memory dependences are crucial to understanding the behavior of concurrent systems, as such dependences are the cornerstone of time-travel debugging and further predictive trace analyses. To enable effective and efficient shared memory dependence tracing, we present an optimistic scheme addressing the challenge of capturing exact dependences between unsynchronized events to reduce the probe effect of program instrumentation. Specifically, our approach achieved a wait-free fast path for thread-local reads on x86-TSO relaxed memory systems, and simultaneously achieved precise tracing of exact read-after-write, write-after-write and write-after-read dependences on the fly. We implemented an open-source RWTrace tool, and evaluation results show that our approach not only achieves efficient shared memory dependence tracing, but also scales well on a multi-core computer system.
线程间共享内存依赖关系对于理解并发系统的行为至关重要,因为这种依赖关系是时间旅行调试和进一步预测跟踪分析的基础。为了实现有效和高效的共享内存依赖跟踪,我们提出了一个乐观方案来解决捕获非同步事件之间精确依赖的挑战,以减少程序插接的探测效应。具体来说,我们的方法为x86-TSO宽松内存系统上的线程本地读取实现了无等待的快速路径,同时实现了精确跟踪准确的写后读、写后写和读后写依赖关系。我们实现了一个开源的RWTrace工具,评估结果表明我们的方法不仅实现了高效的共享内存依赖跟踪,而且在多核计算机系统上具有良好的可扩展性。
{"title":"Optimistic Shared Memory Dependence Tracing (T)","authors":"Yanyan Jiang, Du Li, Chang Xu, Xiaoxing Ma, Jian Lu","doi":"10.1109/ASE.2015.11","DOIUrl":"https://doi.org/10.1109/ASE.2015.11","url":null,"abstract":"Inter-thread shared memory dependences are crucial to understanding the behavior of concurrent systems, as such dependences are the cornerstone of time-travel debugging and further predictive trace analyses. To enable effective and efficient shared memory dependence tracing, we present an optimistic scheme addressing the challenge of capturing exact dependences between unsynchronized events to reduce the probe effect of program instrumentation. Specifically, our approach achieved a wait-free fast path for thread-local reads on x86-TSO relaxed memory systems, and simultaneously achieved precise tracing of exact read-after-write, write-after-write and write-after-read dependences on the fly. We implemented an open-source RWTrace tool, and evaluation results show that our approach not only achieves efficient shared memory dependence tracing, but also scales well on a multi-core computer system.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"65 1","pages":"524-534"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89142671","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
期刊
2015 30th 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