首页 > 最新文献

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

英文 中文
Tracking the Software Quality of Android Applications Along Their Evolution (T) 跟踪Android应用软件质量的演变(T)
Geoffrey Hecht, Omar Benomar, Romain Rouvoy, Naouel Moha, L. Duchien
Mobile apps are becoming complex software systems that must be developed quickly and evolve continuously to fit new user requirements and execution contexts. However, addressing these requirements may result in poor design choices, also known as antipatterns, which may incidentally degrade software quality and performance. Thus, the automatic detection and tracking of antipatterns in this apps are important activities in order to ease both maintenance and evolution. Moreover, they guide developers to refactor their applications and thus, to improve their quality. While antipatterns are well-known in object-oriented applications, their study in mobile applications is still in its infancy. In this paper, we analyze the evolution of mobile apps quality on 3, 568 versions of 106 popular Android applications downloaded from the Google Play Store. For this purpose, we use a tooled approach, called PAPRIKA, to identify 3 object-oriented and 4 Android-specific antipatterns from binaries of mobile apps, and to analyze their quality along evolutions.
移动应用程序正在成为复杂的软件系统,必须快速开发并不断发展,以适应新的用户需求和执行环境。然而,处理这些需求可能会导致糟糕的设计选择,也称为反模式,这可能会顺便降低软件质量和性能。因此,在这个应用程序中,自动检测和跟踪反模式是简化维护和发展的重要活动。此外,它们还指导开发人员重构应用程序,从而提高应用程序的质量。虽然反模式在面向对象应用程序中是众所周知的,但它们在移动应用程序中的研究仍处于起步阶段。在本文中,我们分析了从b谷歌Play Store下载的106款流行Android应用的3568个版本的移动应用质量演变。为此,我们使用了一种名为PAPRIKA的工具方法,从移动应用程序的二进制文件中识别出3个面向对象的反模式和4个android特定的反模式,并分析它们的质量演变。
{"title":"Tracking the Software Quality of Android Applications Along Their Evolution (T)","authors":"Geoffrey Hecht, Omar Benomar, Romain Rouvoy, Naouel Moha, L. Duchien","doi":"10.1109/ASE.2015.46","DOIUrl":"https://doi.org/10.1109/ASE.2015.46","url":null,"abstract":"Mobile apps are becoming complex software systems that must be developed quickly and evolve continuously to fit new user requirements and execution contexts. However, addressing these requirements may result in poor design choices, also known as antipatterns, which may incidentally degrade software quality and performance. Thus, the automatic detection and tracking of antipatterns in this apps are important activities in order to ease both maintenance and evolution. Moreover, they guide developers to refactor their applications and thus, to improve their quality. While antipatterns are well-known in object-oriented applications, their study in mobile applications is still in its infancy. In this paper, we analyze the evolution of mobile apps quality on 3, 568 versions of 106 popular Android applications downloaded from the Google Play Store. For this purpose, we use a tooled approach, called PAPRIKA, to identify 3 object-oriented and 4 Android-specific antipatterns from binaries of mobile apps, and to analyze their quality along evolutions.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"10 1","pages":"236-247"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89145961","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}
引用次数: 108
Recommending API Usages for Mobile Apps with Hidden Markov Model 推荐带有隐马尔可夫模型的移动应用的API用法
Tam The Nguyen, H. Pham, P. Vu, T. Nguyen
Mobile apps often rely heavily on standard API frameworks and libraries. However, learning to use those APIs is often challenging due to the fast-changing nature of API frameworks and the insufficiency of documentation and code examples. This paper introduces DroidAssist, a recommendation tool for API usages of Android mobile apps. The core of DroidAssist is HAPI, a statistical, generative model of API usages based on Hidden Markov Model. With HAPIs trained from existing mobile apps, DroidAssist could perform code completion for method calls. It can also check existing call sequences to detect and repair suspicious (i.e. unpopular) API usages.
移动应用通常严重依赖于标准的API框架和库。然而,由于API框架的快速变化以及文档和代码示例的不足,学习使用这些API通常是具有挑战性的。本文介绍了Android移动应用API使用推荐工具DroidAssist。DroidAssist的核心是HAPI,一个基于隐马尔可夫模型的API使用统计生成模型。通过从现有移动应用程序中训练的hapi, DroidAssist可以为方法调用执行代码补全。它还可以检查现有的调用序列,以检测和修复可疑的(即不受欢迎的)API使用。
{"title":"Recommending API Usages for Mobile Apps with Hidden Markov Model","authors":"Tam The Nguyen, H. Pham, P. Vu, T. Nguyen","doi":"10.1109/ASE.2015.109","DOIUrl":"https://doi.org/10.1109/ASE.2015.109","url":null,"abstract":"Mobile apps often rely heavily on standard API frameworks and libraries. However, learning to use those APIs is often challenging due to the fast-changing nature of API frameworks and the insufficiency of documentation and code examples. This paper introduces DroidAssist, a recommendation tool for API usages of Android mobile apps. The core of DroidAssist is HAPI, a statistical, generative model of API usages based on Hidden Markov Model. With HAPIs trained from existing mobile apps, DroidAssist could perform code completion for method calls. It can also check existing call sequences to detect and repair suspicious (i.e. unpopular) API usages.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"17 1","pages":"795-800"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81960410","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
Automating the Extraction of Model-Based Software Product Lines from Model Variants (T) 从模型变体中自动提取基于模型的软件产品线(T)
Jabier Martinez, T. Ziadi, Tegawendé F. Bissyandé, Jacques Klein, Yves Le Traon
We address the problem of automating 1) the analysis of existing similar model variants and 2) migrating them into a software product line. Our approach, named MoVaPL, considers the identification of variability and commonality in model variants, as well as the extraction of a CVL-compliant Model-based Software Product Line (MSPL) from the features identified on these variants. MoVaPL builds on a generic representation of models making it suitable to any MOF-based models. We apply our approach on variants of the open source ArgoUML UML modeling tool as well as on variants of an In-flight Entertainment System. Evaluation with these large and complex case studies contributed to show how our feature identification with structural constraints discovery and the MSPL generation process are implemented to make the approach valid (i.e., the extracted software product line can be used to regenerate all variants considered) and sound (i.e., derived variants We address the problem of automating 1) the analysis of existing similar model variants and 2) migrating them into a software product line. Our approach, named MoVaPL, considers the identification of variability and commonality in model variants, as well as the extraction of a CVL-compliant Model-based Software Product Line (MSPL) from the features identified on these variants. MoVaPL builds on a generic representation of models making it suitable to any MOF-based models. We apply our approach on variants of the open source ArgoUML UML modeling tool as well as on variants of an In-flight Entertainment System. Evaluation with these large and complex case studies contributed to show how our feature identification with structural constraints discovery and the MSPL generation process are implemented to make the approach valid (i.e., the extracted software product line can be used to regenerate all variants considered) and sound (i.e., derived variants which did not exist are at least structurally valid).which did not exist are at least structurally valid).
我们处理自动化的问题:1)对现有的相似模型变体的分析,2)将它们迁移到软件产品线中。我们的方法,命名为MoVaPL,考虑了模型变体中可变性和通用性的识别,以及从这些变体上识别的特征中提取符合cvl的基于模型的软件产品线(MSPL)。MoVaPL建立在模型的通用表示上,使其适用于任何基于mof的模型。我们将我们的方法应用于开源的ArgoUML UML建模工具的变体,以及机上娱乐系统的变体。这些大型和复杂的案例研究的评估有助于展示我们的结构约束发现和MSPL生成过程的特征识别是如何实现的,以使方法有效(即,提取的软件产品线可用于重新生成所考虑的所有变体)和健全(即,派生的变体)。我们解决了自动化问题1)分析现有的类似模型变体和2)将它们迁移到软件产品线中。我们的方法,命名为MoVaPL,考虑了模型变体中可变性和通用性的识别,以及从这些变体上识别的特征中提取符合cvl的基于模型的软件产品线(MSPL)。MoVaPL建立在模型的通用表示上,使其适用于任何基于mof的模型。我们将我们的方法应用于开源的ArgoUML UML建模工具的变体,以及机上娱乐系统的变体。使用这些大型和复杂的案例研究进行评估,有助于展示我们的结构约束发现和MSPL生成过程的特征识别是如何实现的,以使方法有效(即,提取的软件产品线可用于重新生成所考虑的所有变体)和健全(即,不存在的衍生变体至少在结构上有效)。不存在(至少在结构上是有效的)。
{"title":"Automating the Extraction of Model-Based Software Product Lines from Model Variants (T)","authors":"Jabier Martinez, T. Ziadi, Tegawendé F. Bissyandé, Jacques Klein, Yves Le Traon","doi":"10.1109/ASE.2015.44","DOIUrl":"https://doi.org/10.1109/ASE.2015.44","url":null,"abstract":"We address the problem of automating 1) the analysis of existing similar model variants and 2) migrating them into a software product line. Our approach, named MoVaPL, considers the identification of variability and commonality in model variants, as well as the extraction of a CVL-compliant Model-based Software Product Line (MSPL) from the features identified on these variants. MoVaPL builds on a generic representation of models making it suitable to any MOF-based models. We apply our approach on variants of the open source ArgoUML UML modeling tool as well as on variants of an In-flight Entertainment System. Evaluation with these large and complex case studies contributed to show how our feature identification with structural constraints discovery and the MSPL generation process are implemented to make the approach valid (i.e., the extracted software product line can be used to regenerate all variants considered) and sound (i.e., derived variants We address the problem of automating 1) the analysis of existing similar model variants and 2) migrating them into a software product line. Our approach, named MoVaPL, considers the identification of variability and commonality in model variants, as well as the extraction of a CVL-compliant Model-based Software Product Line (MSPL) from the features identified on these variants. MoVaPL builds on a generic representation of models making it suitable to any MOF-based models. We apply our approach on variants of the open source ArgoUML UML modeling tool as well as on variants of an In-flight Entertainment System. Evaluation with these large and complex case studies contributed to show how our feature identification with structural constraints discovery and the MSPL generation process are implemented to make the approach valid (i.e., the extracted software product line can be used to regenerate all variants considered) and sound (i.e., derived variants which did not exist are at least structurally valid).which did not exist are at least structurally valid).","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"396-406"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88440038","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}
引用次数: 70
Repairing Programs with Semantic Code Search (T) 用语义代码搜索(T)修复程序
Yalin Ke, Kathryn T. Stolee, Claire Le Goues, Yuriy Brun
Automated program repair can potentially reduce debugging costs and improve software quality but recent studies have drawn attention to shortcomings in the quality of automatically generated repairs. We propose a new kind of repair that uses the large body of existing open-source code to find potential fixes. The key challenges lie in efficiently finding code semantically similar (but not identical) to defective code and then appropriately integrating that code into a buggy program. We present SearchRepair, a repair technique that addresses these challenges by(1) encoding a large database of human-written code fragments as SMT constraints on input-output behavior, (2) localizing a given defect to likely buggy program fragments and deriving the desired input-output behavior for code to replace those fragments, (3) using state-of-the-art constraint solvers to search the database for fragments that satisfy that desired behavior and replacing the likely buggy code with these potential patches, and (4) validating that the patches repair the bug against program testsuites. We find that SearchRepair repairs 150 (19%) of 778 benchmark C defects written by novice students, 20 of which are not repaired by GenProg, TrpAutoRepair, and AE. We compare the quality of the patches generated by the four techniques by measuring how many independent, not-used-during-repairtests they pass, and find that SearchRepair-repaired programs pass 97.3% ofthe tests, on average, whereas GenProg-, TrpAutoRepair-, and AE-repaired programs pass 68.7%, 72.1%, and 64.2% of the tests, respectively. We concludethat SearchRepair produces higher-quality repairs than GenProg, TrpAutoRepair, and AE, and repairs some defects those tools cannot.
自动程序修复可以潜在地降低调试成本并提高软件质量,但是最近的研究已经引起了人们对自动生成修复质量缺陷的关注。我们提出了一种新的修复方法,它使用大量现有的开源代码来找到潜在的修复方法。关键的挑战在于有效地找到语义上与有缺陷的代码相似(但不完全相同)的代码,然后将这些代码适当地集成到有缺陷的程序中。我们提出了SearchRepair,这是一种解决这些挑战的修复技术,通过(1)将人类编写的代码片段的大型数据库编码为输入-输出行为的SMT约束,(2)将给定缺陷定位为可能存在错误的程序片段,并为代码派生所需的输入-输出行为来替换这些片段。(3)使用最先进的约束求解器在数据库中搜索满足期望行为的片段,并用这些潜在的补丁替换可能存在错误的代码,以及(4)根据程序测试套件验证补丁修复了错误。我们发现SearchRepair修复了由新手编写的778个基准C缺陷中的150个(19%),其中20个没有被GenProg、TrpAutoRepair和AE修复。我们通过测量四种技术生成的补丁通过了多少个独立的、在维修期间不使用的测试来比较它们的质量,发现searchrepair -被修复程序平均通过了97.3%的测试,而GenProg-、TrpAutoRepair-和ae -被修复程序分别通过了68.7%、72.1%和64.2%的测试。我们得出的结论是,SearchRepair比GenProg、TrpAutoRepair和AE产生更高质量的修复,并且修复了这些工具无法修复的一些缺陷。
{"title":"Repairing Programs with Semantic Code Search (T)","authors":"Yalin Ke, Kathryn T. Stolee, Claire Le Goues, Yuriy Brun","doi":"10.1109/ASE.2015.60","DOIUrl":"https://doi.org/10.1109/ASE.2015.60","url":null,"abstract":"Automated program repair can potentially reduce debugging costs and improve software quality but recent studies have drawn attention to shortcomings in the quality of automatically generated repairs. We propose a new kind of repair that uses the large body of existing open-source code to find potential fixes. The key challenges lie in efficiently finding code semantically similar (but not identical) to defective code and then appropriately integrating that code into a buggy program. We present SearchRepair, a repair technique that addresses these challenges by(1) encoding a large database of human-written code fragments as SMT constraints on input-output behavior, (2) localizing a given defect to likely buggy program fragments and deriving the desired input-output behavior for code to replace those fragments, (3) using state-of-the-art constraint solvers to search the database for fragments that satisfy that desired behavior and replacing the likely buggy code with these potential patches, and (4) validating that the patches repair the bug against program testsuites. We find that SearchRepair repairs 150 (19%) of 778 benchmark C defects written by novice students, 20 of which are not repaired by GenProg, TrpAutoRepair, and AE. We compare the quality of the patches generated by the four techniques by measuring how many independent, not-used-during-repairtests they pass, and find that SearchRepair-repaired programs pass 97.3% ofthe tests, on average, whereas GenProg-, TrpAutoRepair-, and AE-repaired programs pass 68.7%, 72.1%, and 64.2% of the tests, respectively. We concludethat SearchRepair produces higher-quality repairs than GenProg, TrpAutoRepair, and AE, and repairs some defects those tools cannot.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"25 1","pages":"295-306"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86419023","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}
引用次数: 165
How Verified is My Code? Falsification-Driven Verification (T) 我的代码是如何验证的?证伪驱动验证(T)
Alex Groce, Iftekhar Ahmed, Carlos Jensen, P. McKenney
Formal verification has advanced to the point that developers can verify the correctness of small, critical modules. Unfortunately, despite considerable efforts, determining if a "verification" verifies what the author intends is still difficult. Previous approaches are difficult to understand and often limited in applicability. Developers need verification coverage in terms of the software they are verifying, not model checking diagnostics. We propose a methodology to allow developers to determine (and correct) what it is that they have verified, and tools to support that methodology. Our basic approach is based on a novel variation of mutation analysis and the idea of verification driven by falsification. We use the CBMC model checker to show that this approach is applicable not only to simple data structures and sorting routines, and verification of a routine in Mozilla's JavaScript engine, but to understanding an ongoing effort to verify the Linux kernel Read-Copy-Update (RCU) mechanism.
正式的验证已经发展到开发人员可以验证小的、关键的模块的正确性。不幸的是,尽管付出了相当大的努力,确定“验证”是否验证了作者的意图仍然很困难。以前的方法很难理解,而且往往在适用性上受到限制。开发人员需要根据他们正在验证的软件进行验证,而不是模型检查诊断。我们提出了一种方法,允许开发人员确定(并纠正)他们已经验证的内容,以及支持该方法的工具。我们的基本方法是基于一种新的变异突变分析和由证伪驱动的验证思想。我们使用CBMC模型检查器来表明,这种方法不仅适用于简单的数据结构和排序例程,以及Mozilla JavaScript引擎中例程的验证,而且还适用于理解正在进行的验证Linux内核Read-Copy-Update (RCU)机制的努力。
{"title":"How Verified is My Code? Falsification-Driven Verification (T)","authors":"Alex Groce, Iftekhar Ahmed, Carlos Jensen, P. McKenney","doi":"10.1109/ASE.2015.40","DOIUrl":"https://doi.org/10.1109/ASE.2015.40","url":null,"abstract":"Formal verification has advanced to the point that developers can verify the correctness of small, critical modules. Unfortunately, despite considerable efforts, determining if a \"verification\" verifies what the author intends is still difficult. Previous approaches are difficult to understand and often limited in applicability. Developers need verification coverage in terms of the software they are verifying, not model checking diagnostics. We propose a methodology to allow developers to determine (and correct) what it is that they have verified, and tools to support that methodology. Our basic approach is based on a novel variation of mutation analysis and the idea of verification driven by falsification. We use the CBMC model checker to show that this approach is applicable not only to simple data structures and sorting routines, and verification of a routine in Mozilla's JavaScript engine, but to understanding an ongoing effort to verify the Linux kernel Read-Copy-Update (RCU) mechanism.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"14 1","pages":"737-748"},"PeriodicalIF":0.0,"publicationDate":"2015-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90635112","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}
引用次数: 17
Fixing Recurring Crash Bugs via Analyzing Q&A Sites (T) 通过分析问答网站修复反复出现的崩溃bug (T)
Qing Gao, Hansheng Zhang, Jie Wang, Yingfei Xiong, Lu Zhang, Hong Mei
Recurring bugs are common in software systems, especially in client programs that depend on the same framework. Existing research uses human-written templates, and is limited to certain types of bugs. In this paper, we propose a fully automatic approach to fixing recurring crash bugs via analyzing Q&A sites. By extracting queries from crash traces and retrieving a list of Q&A pages, we analyze the pages and generate edit scripts. Then we apply these scripts to target source code and filter out the incorrect patches. The empirical results show that our approach is accurate in fixing real-world crash bugs, and can complement existing bug-fixing approaches.
重复出现的错误在软件系统中很常见,特别是在依赖于相同框架的客户端程序中。现有的研究使用人类编写的模板,并且仅限于某些类型的bug。在本文中,我们提出了一种通过分析问答网站来修复反复出现的崩溃错误的全自动方法。通过从崩溃跟踪中提取查询并检索问答页面列表,我们分析页面并生成编辑脚本。然后我们将这些脚本应用于目标源代码并过滤掉不正确的补丁。实证结果表明,我们的方法在修复现实世界的崩溃bug方面是准确的,并且可以补充现有的bug修复方法。
{"title":"Fixing Recurring Crash Bugs via Analyzing Q&A Sites (T)","authors":"Qing Gao, Hansheng Zhang, Jie Wang, Yingfei Xiong, Lu Zhang, Hong Mei","doi":"10.1109/ASE.2015.81","DOIUrl":"https://doi.org/10.1109/ASE.2015.81","url":null,"abstract":"Recurring bugs are common in software systems, especially in client programs that depend on the same framework. Existing research uses human-written templates, and is limited to certain types of bugs. In this paper, we propose a fully automatic approach to fixing recurring crash bugs via analyzing Q&A sites. By extracting queries from crash traces and retrieving a list of Q&A pages, we analyze the pages and generate edit scripts. Then we apply these scripts to target source code and filter out the incorrect patches. The empirical results show that our approach is accurate in fixing real-world crash bugs, and can complement existing bug-fixing approaches.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"18 1","pages":"307-318"},"PeriodicalIF":0.0,"publicationDate":"2015-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80195160","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}
引用次数: 85
Mining User Opinions in Mobile App Reviews: A Keyword-Based Approach (T) 基于关键词的手机应用评论用户意见挖掘方法(T)
P. Vu, Tam The Nguyen, H. Pham, T. Nguyen
User reviews of mobile apps often contain complaints or suggestions which are valuable for app developers to improve user experience and satisfaction. However, due to the large volume and noisy-nature of those reviews, manually analyzing them for useful opinions is inherently challenging. To address this problem, we propose MARK, a keyword-based framework for semi-automated review analysis. MARK allows an analyst describing his interests in one or some mobile apps by a set of keywords. It then finds and lists the reviews most relevant to those keywords for further analysis. It can also draw the trends over time of those keywords and detect their sudden changes, which might indicate the occurrences of serious issues. To help analysts describe their interests more effectively, MARK can automatically extract keywords from raw reviews and rank them by their associations with negative reviews. In addition, based on a vector-based semantic representation of keywords, MARK can divide a large set of keywords into more cohesive subsets, or suggest keywords similar to the selected ones.
手机应用的用户评论通常包含抱怨或建议,这对应用开发者改善用户体验和满意度很有价值。然而,由于这些评论的大量和嘈杂的性质,手动分析它们以获得有用的意见本质上是具有挑战性的。为了解决这个问题,我们提出了MARK,一个基于关键字的半自动化评审分析框架。MARK允许分析师通过一组关键字描述他对一个或几个移动应用程序的兴趣。然后,它会找到并列出与这些关键字最相关的评论,以供进一步分析。它还可以绘制这些关键字随时间的趋势,并检测它们的突然变化,这可能表明严重问题的发生。为了帮助分析师更有效地描述他们的兴趣,MARK可以自动从原始评论中提取关键字,并根据它们与负面评论的关联对它们进行排名。此外,基于关键词的向量语义表示,MARK可以将大量关键词划分为更有凝聚力的子集,或者建议与所选关键词相似的关键词。
{"title":"Mining User Opinions in Mobile App Reviews: A Keyword-Based Approach (T)","authors":"P. Vu, Tam The Nguyen, H. Pham, T. Nguyen","doi":"10.1109/ASE.2015.85","DOIUrl":"https://doi.org/10.1109/ASE.2015.85","url":null,"abstract":"User reviews of mobile apps often contain complaints or suggestions which are valuable for app developers to improve user experience and satisfaction. However, due to the large volume and noisy-nature of those reviews, manually analyzing them for useful opinions is inherently challenging. To address this problem, we propose MARK, a keyword-based framework for semi-automated review analysis. MARK allows an analyst describing his interests in one or some mobile apps by a set of keywords. It then finds and lists the reviews most relevant to those keywords for further analysis. It can also draw the trends over time of those keywords and detect their sudden changes, which might indicate the occurrences of serious issues. To help analysts describe their interests more effectively, MARK can automatically extract keywords from raw reviews and rank them by their associations with negative reviews. In addition, based on a vector-based semantic representation of keywords, MARK can divide a large set of keywords into more cohesive subsets, or suggest keywords similar to the selected ones.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"20 1","pages":"749-759"},"PeriodicalIF":0.0,"publicationDate":"2015-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88552320","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}
引用次数: 154
Quantification of Software Changes through Probabilistic Symbolic Execution (N) 通过概率符号执行量化软件变更(N)
A. Filieri, C. Pasareanu, Guowei Yang
Characterizing software changes is fundamental for software maintenance. However existing techniques are imprecise leading to unnecessary maintenance efforts. We introduce a novel approach that computes a precise numeric characterization of program changes, which quantifies the likelihood of reaching target program events (e.g., assert violations or successful termination) and how that evolves with each program update, together with the percentage of inputs impacted by the change. This precise characterization leads to a natural ranking of different program changes based on their probability of execution and their impact on target events. The approach is based on model counting over the constraints collected with a symbolic execution of the program, and exploits the similarity between program versions to reduce cost and improve the quality of analysis results. We implemented our approach in the Symbolic PathFinder tool and illustrate it on several Java case studies, including the evaluation of different program repairs, mutants used in testing, or incremental analysis after a change.
描述软件变更是软件维护的基础。然而,现有的技术不精确,导致不必要的维护工作。我们引入了一种新的方法,该方法计算了项目变更的精确数字特征,量化了达到目标项目事件(例如,断言违规或成功终止)的可能性,以及随着每次项目更新的发展,以及受变化影响的输入的百分比。这种精确的特征导致基于执行概率及其对目标事件的影响对不同程序更改进行自然排序。该方法基于对程序符号执行收集的约束进行模型计数,并利用程序版本之间的相似性来降低成本并提高分析结果的质量。我们在Symbolic PathFinder工具中实现了我们的方法,并在几个Java案例研究中说明了它,包括对不同程序修复的评估,测试中使用的突变,或更改后的增量分析。
{"title":"Quantification of Software Changes through Probabilistic Symbolic Execution (N)","authors":"A. Filieri, C. Pasareanu, Guowei Yang","doi":"10.1109/ASE.2015.78","DOIUrl":"https://doi.org/10.1109/ASE.2015.78","url":null,"abstract":"Characterizing software changes is fundamental for software maintenance. However existing techniques are imprecise leading to unnecessary maintenance efforts. We introduce a novel approach that computes a precise numeric characterization of program changes, which quantifies the likelihood of reaching target program events (e.g., assert violations or successful termination) and how that evolves with each program update, together with the percentage of inputs impacted by the change. This precise characterization leads to a natural ranking of different program changes based on their probability of execution and their impact on target events. The approach is based on model counting over the constraints collected with a symbolic execution of the program, and exploits the similarity between program versions to reduce cost and improve the quality of analysis results. We implemented our approach in the Symbolic PathFinder tool and illustrate it on several Java case studies, including the evaluation of different program repairs, mutants used in testing, or incremental analysis after a change.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"7 1","pages":"703-708"},"PeriodicalIF":0.0,"publicationDate":"2015-05-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90336162","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}
引用次数: 17
Automated Test Input Generation for Android: Are We There Yet? (E) Android的自动化测试输入生成:我们做到了吗?(E)
Shauvik Roy Choudhary, Alessandra Gorla, A. Orso
Like all software, mobile applications ("apps") must be adequately tested to gain confidence that they behave correctly. Therefore, in recent years, researchers and practitioners alike have begun to investigate ways to automate apps testing. In particular, because of Android's open source nature and its large share of the market, a great deal of research has been performed on input generation techniques for apps that run on the Android operating systems. At this point in time, there are in fact a number of such techniques in the literature, which differ in the way they generate inputs, the strategy they use to explore the behavior of the app under test, and the specific heuristics they use. To better understand the strengths and weaknesses of these existing approaches, and get general insight on ways they could be made more effective, in this paper we perform a thorough comparison of the main existing test input generation tools for Android. In our comparison, we evaluate the effectiveness of these tools, and their corresponding techniques, according to four metrics: ease of use, ability to work on multiple platforms, code coverage, and ability to detect faults. Our results provide a clear picture of the state of the art in input generation for Android apps and identify future research directions that, if suitably investigated, could lead to more effective and efficient testing tools for Android.
像所有软件一样,移动应用程序(“应用程序”)必须经过充分的测试,以获得对其正确运行的信心。因此,近年来,研究人员和实践者都开始研究自动化应用程序测试的方法。特别是,由于Android的开源特性及其巨大的市场份额,对于运行在Android操作系统上的应用程序的输入生成技术已经进行了大量的研究。在这个时间点上,实际上在文献中有许多这样的技术,它们在生成输入的方式,它们用于探索被测应用行为的策略以及它们使用的特定启发式方面有所不同。为了更好地理解这些现有方法的优势和弱点,并获得更有效的方法,我们在本文中对Android上现有的主要测试输入生成工具进行了全面的比较。在我们的比较中,我们根据四个指标来评估这些工具的有效性,以及它们相应的技术:易用性、在多个平台上工作的能力、代码覆盖率和检测故障的能力。我们的研究结果为Android应用的输入生成提供了一幅清晰的画面,并确定了未来的研究方向,如果进行适当的调查,可能会为Android带来更有效和高效的测试工具。
{"title":"Automated Test Input Generation for Android: Are We There Yet? (E)","authors":"Shauvik Roy Choudhary, Alessandra Gorla, A. Orso","doi":"10.1109/ASE.2015.89","DOIUrl":"https://doi.org/10.1109/ASE.2015.89","url":null,"abstract":"Like all software, mobile applications (\"apps\") must be adequately tested to gain confidence that they behave correctly. Therefore, in recent years, researchers and practitioners alike have begun to investigate ways to automate apps testing. In particular, because of Android's open source nature and its large share of the market, a great deal of research has been performed on input generation techniques for apps that run on the Android operating systems. At this point in time, there are in fact a number of such techniques in the literature, which differ in the way they generate inputs, the strategy they use to explore the behavior of the app under test, and the specific heuristics they use. To better understand the strengths and weaknesses of these existing approaches, and get general insight on ways they could be made more effective, in this paper we perform a thorough comparison of the main existing test input generation tools for Android. In our comparison, we evaluate the effectiveness of these tools, and their corresponding techniques, according to four metrics: ease of use, ability to work on multiple platforms, code coverage, and ability to detect faults. Our results provide a clear picture of the state of the art in input generation for Android apps and identify future research directions that, if suitably investigated, could lead to more effective and efficient testing tools for Android.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"34 1","pages":"429-440"},"PeriodicalIF":0.0,"publicationDate":"2015-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87059553","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}
引用次数: 441
期刊
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