首页 > 最新文献

2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)最新文献

英文 中文
Nomen est Omen: Exploring and Exploiting Similarities between Argument and Parameter Names 命名:探索和利用实参和形参名称之间的相似性
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884841
Hui Liu, Qiurong Liu, Cristian-Alexandru Staicu, Michael Pradel, Yue Luo
Programmer-provided identifier names convey information about the semantics of a program. This information can complement traditional program analyses in various software engineering tasks, such as bug finding, code completion, and documentation. Even though identifier names appear to be a rich source of information, little is known about their properties and their potential usefulness. This paper presents an empirical study of the lexical similarity between arguments and parameters of methods, which is one prominent situation where names can provide otherwise missing information. The study involves 60 real-world Java programs. We find that, for most arguments, the similarity is either very high or very low, and that short and generic names often cause low similarities. Furthermore, we show that inferring a set of low-similarity parameter names from one set of programs allows for pruning such names in another set of programs. Finally, the study shows that many arguments are more similar to thecorresponding parameter than any alternative argument available in the call site’s scope. As applications of our findings, we present an anomaly detection technique that identifies 144 renaming opportunities and incorrect arguments in 14 programs, and a code recommendation system that suggests correct arguments with a precision of 83%.
程序员提供的标识符名称传递有关程序语义的信息。这些信息可以补充各种软件工程任务中的传统程序分析,例如bug发现、代码完成和文档。尽管标识符名称似乎是一个丰富的信息源,但人们对它们的属性和潜在用途知之甚少。本文对方法的参数和参数之间的词汇相似性进行了实证研究,这是名称可以提供其他缺失信息的一个突出情况。这项研究涉及60个真实的Java程序。我们发现,对于大多数论点来说,相似度要么很高,要么很低,而短而通用的名字往往导致低相似度。此外,我们表明,从一组程序中推断出一组低相似性的参数名称,可以在另一组程序中修剪这些名称。最后,研究表明,许多参数比调用站点范围内可用的任何替代参数更类似于相应的参数。作为我们研究结果的应用,我们提出了一种异常检测技术,该技术可以识别14个程序中的144个重命名机会和错误参数,以及一个代码推荐系统,该系统建议正确参数的精度为83%。
{"title":"Nomen est Omen: Exploring and Exploiting Similarities between Argument and Parameter Names","authors":"Hui Liu, Qiurong Liu, Cristian-Alexandru Staicu, Michael Pradel, Yue Luo","doi":"10.1145/2884781.2884841","DOIUrl":"https://doi.org/10.1145/2884781.2884841","url":null,"abstract":"Programmer-provided identifier names convey information about the semantics of a program. This information can complement traditional program analyses in various software engineering tasks, such as bug finding, code completion, and documentation. Even though identifier names appear to be a rich source of information, little is known about their properties and their potential usefulness. This paper presents an empirical study of the lexical similarity between arguments and parameters of methods, which is one prominent situation where names can provide otherwise missing information. The study involves 60 real-world Java programs. We find that, for most arguments, the similarity is either very high or very low, and that short and generic names often cause low similarities. Furthermore, we show that inferring a set of low-similarity parameter names from one set of programs allows for pruning such names in another set of programs. Finally, the study shows that many arguments are more similar to thecorresponding parameter than any alternative argument available in the call site’s scope. As applications of our findings, we present an anomaly detection technique that identifies 144 renaming opportunities and incorrect arguments in 14 programs, and a code recommendation system that suggests correct arguments with a precision of 83%.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"17 1","pages":"1063-1073"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73456960","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}
引用次数: 52
How Does Regression Test Prioritization Perform in Real-World Software Evolution? 回归测试的优先级在现实世界的软件进化中是如何执行的?
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884874
Yafeng Lu, Yiling Lou, Shiyang Cheng, Lingming Zhang, Dan Hao, Yangfan Zhou, Lu Zhang
In recent years, researchers have intensively investigated various topics in test prioritization, which aims to re-order tests to increase the rate of fault detection during regression testing. While the main research focus in test prioritization is on proposing novel prioritization techniques and evaluating on more and larger subject systems, little effort has been put on investigating the threats to validity in existing work on test prioritization. One main threat to validity is that existing work mainly evaluates prioritization techniques based on simple artificial changes on the source code and tests. For example, the changes in the source code usually include only seeded program faults, whereas the test suite is usually not augmented at all. On the contrary, in real-world software development, software systems usually undergo various changes on the source code and test suite augmentation. Therefore, it is not clear whether the conclusions drawn by existing work in test prioritization from the artificial changes are still valid for real-world software evolution. In this paper, we present the first empirical study to investigate this important threat to validity in test prioritization. We reimplemented 24 variant techniques of both the traditional and time-aware test prioritization, and investigated the impacts of software evolution on those techniques based on the version history of 8 real-world Java programs from GitHub. The results show that for both traditional and time-aware test prioritization, test suite augmentation significantly hampers their effectiveness, whereas source code changes alone do not influence their effectiveness much.
近年来,研究人员对测试优先级进行了深入的研究,其目的是在回归测试中对测试进行重新排序以提高故障检出率。目前,测试优先级的研究主要集中在提出新的测试优先级技术和在更大的学科系统上进行评估,而在现有的测试优先级研究中,很少有人研究测试优先级对有效性的威胁。对有效性的一个主要威胁是,现有的工作主要是基于对源代码和测试进行简单的人工更改来评估优先级技术。例如,源代码中的更改通常只包括种子程序错误,而测试套件通常根本没有增加。相反,在实际的软件开发中,软件系统通常会对源代码和测试套件进行各种更改。因此,目前还不清楚的是,测试优先级中现有的工作从人工变更中得出的结论是否对真实世界的软件发展仍然有效。在本文中,我们提出了第一个实证研究,以调查这一重要的有效性威胁测试优先级。我们重新实现了传统和时间感知测试优先级的24种变体技术,并基于GitHub上8个真实Java程序的版本历史,研究了软件进化对这些技术的影响。结果表明,对于传统的和有时间意识的测试优先级,测试套件的增加显著地阻碍了它们的有效性,而源代码更改本身并不会对它们的有效性产生太大的影响。
{"title":"How Does Regression Test Prioritization Perform in Real-World Software Evolution?","authors":"Yafeng Lu, Yiling Lou, Shiyang Cheng, Lingming Zhang, Dan Hao, Yangfan Zhou, Lu Zhang","doi":"10.1145/2884781.2884874","DOIUrl":"https://doi.org/10.1145/2884781.2884874","url":null,"abstract":"In recent years, researchers have intensively investigated various topics in test prioritization, which aims to re-order tests to increase the rate of fault detection during regression testing. While the main research focus in test prioritization is on proposing novel prioritization techniques and evaluating on more and larger subject systems, little effort has been put on investigating the threats to validity in existing work on test prioritization. One main threat to validity is that existing work mainly evaluates prioritization techniques based on simple artificial changes on the source code and tests. For example, the changes in the source code usually include only seeded program faults, whereas the test suite is usually not augmented at all. On the contrary, in real-world software development, software systems usually undergo various changes on the source code and test suite augmentation. Therefore, it is not clear whether the conclusions drawn by existing work in test prioritization from the artificial changes are still valid for real-world software evolution. In this paper, we present the first empirical study to investigate this important threat to validity in test prioritization. We reimplemented 24 variant techniques of both the traditional and time-aware test prioritization, and investigated the impacts of software evolution on those techniques based on the version history of 8 real-world Java programs from GitHub. The results show that for both traditional and time-aware test prioritization, test suite augmentation significantly hampers their effectiveness, whereas source code changes alone do not influence their effectiveness much.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"67 1","pages":"535-546"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88188982","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}
引用次数: 102
Using (Bio)Metrics to Predict Code Quality Online 使用(生物)度量在线预测代码质量
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884803
Sebastian C. Müller, Thomas Fritz
Finding and fixing code quality concerns, such as defects or poor understandability of code, decreases software development and evolution costs. A common industrial practice to identify code quality concerns early on are code reviews. While code reviews help to identify problems early on, they also impose costs on development and only take place after a code change is already completed. The goal of our research is to automatically identify code quality concerns while a developer is making a change to the code. By using biometrics, such as heart rate variability, we aim to determine the difficulty a developer experiences working on a part of the code as well as identify and help to fix code quality concerns before they are even committed to the repository. In a field study with ten professional developers over a two-week period we investigated the use of biometrics to determine code quality concerns. Our results show that biometrics are indeed able to predict quality concerns of parts of the code while a developer is working on, improving upon a naive classifier by more than 26% and outperforming classifiers based on more traditional metrics. In a second study with five professional developers from a different country and company, we found evidence that some of our findings from our initial study can be replicated. Overall, the results from the presented studies suggest that biometrics have the potential to predict code quality concerns online and thus lower development and evolution costs.
查找并修复代码质量问题,例如代码的缺陷或难以理解性,可以降低软件开发和改进的成本。早期识别代码质量问题的常见工业实践是代码审查。虽然代码审查有助于及早识别问题,但它们也会增加开发成本,并且只会在代码更改完成后进行。我们研究的目标是在开发人员对代码进行更改时自动识别代码质量问题。通过使用生物识别技术,例如心率变异性,我们的目标是确定开发人员在处理部分代码时遇到的困难,以及在将代码提交到存储库之前识别并帮助修复代码质量问题。在与10名专业开发人员进行的为期两周的实地研究中,我们调查了生物识别技术的使用,以确定代码质量问题。我们的结果表明,当开发人员正在工作时,生物识别技术确实能够预测部分代码的质量问题,在原始分类器的基础上提高26%以上,并且优于基于更传统指标的分类器。在对来自不同国家和公司的五名专业开发人员进行的第二项研究中,我们发现有证据表明,我们在最初研究中的一些发现可以被复制。总的来说,所提出的研究结果表明,生物识别技术具有在线预测代码质量问题的潜力,从而降低开发和进化成本。
{"title":"Using (Bio)Metrics to Predict Code Quality Online","authors":"Sebastian C. Müller, Thomas Fritz","doi":"10.1145/2884781.2884803","DOIUrl":"https://doi.org/10.1145/2884781.2884803","url":null,"abstract":"Finding and fixing code quality concerns, such as defects or poor understandability of code, decreases software development and evolution costs. A common industrial practice to identify code quality concerns early on are code reviews. While code reviews help to identify problems early on, they also impose costs on development and only take place after a code change is already completed. The goal of our research is to automatically identify code quality concerns while a developer is making a change to the code. By using biometrics, such as heart rate variability, we aim to determine the difficulty a developer experiences working on a part of the code as well as identify and help to fix code quality concerns before they are even committed to the repository. In a field study with ten professional developers over a two-week period we investigated the use of biometrics to determine code quality concerns. Our results show that biometrics are indeed able to predict quality concerns of parts of the code while a developer is working on, improving upon a naive classifier by more than 26% and outperforming classifiers based on more traditional metrics. In a second study with five professional developers from a different country and company, we found evidence that some of our findings from our initial study can be replicated. Overall, the results from the presented studies suggest that biometrics have the potential to predict code quality concerns online and thus lower development and evolution costs.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"9 1","pages":"452-463"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87745389","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}
引用次数: 100
Probing for Requirements Knowledge to Stimulate Architectural Thinking 探索需求知识激发架构思维
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884801
Preethu Rose Anish, Balaji Balasubramaniam, A. Sainani, J. Cleland-Huang, M. Daneva, R. Wieringa, S. Ghaisas
Software requirements specifications (SRSs) often lack the detail needed to make informed architectural decisions. Architects therefore either make assumptions, which can lead to incorrect decisions, or conduct additional stakeholder interviews, resulting in potential project delays. We previously observed that software architects ask Probing Questions (PQs) to gather information crucial to architectural decision-making. Our goal is to equip Business Analysts with appropriate PQs so that they can ask these questions themselves. We report a new study with over 40 experienced architects to identify reusable PQs for five areas of functionality and organize them into structured flows. These PQflows can be used by Business Analysts to elicit and specify architecturally relevant information. Additionally, we leverage machine learning techniques to determine when a PQ-flow is appropriate for use in a project, and to annotate individual PQs with relevant information extracted from the existing SRS. We trained and evaluated our approach on over 8,000 individual requirements from 114 requirements specifications and also conducted a pilot study to validate its usefulness.
软件需求规范(sss)通常缺乏做出明智的体系结构决策所需的细节。因此,架构师要么做出可能导致错误决策的假设,要么进行额外的涉众访谈,从而导致潜在的项目延迟。我们之前观察到,软件架构师会询问试探性问题(PQs)来收集对架构决策至关重要的信息。我们的目标是为业务分析师提供适当的pq,以便他们能够自己提出这些问题。我们报告了一项由40多位经验丰富的架构师参与的新研究,以确定五个功能领域的可重用pq,并将它们组织到结构化流中。业务分析人员可以使用这些pqflow来引出和指定与体系结构相关的信息。此外,我们利用机器学习技术来确定pq流何时适合在项目中使用,并使用从现有SRS中提取的相关信息注释单个pq。我们对114个需求规范中的8000多个单独需求进行了培训和评估,并进行了试点研究以验证其有效性。
{"title":"Probing for Requirements Knowledge to Stimulate Architectural Thinking","authors":"Preethu Rose Anish, Balaji Balasubramaniam, A. Sainani, J. Cleland-Huang, M. Daneva, R. Wieringa, S. Ghaisas","doi":"10.1145/2884781.2884801","DOIUrl":"https://doi.org/10.1145/2884781.2884801","url":null,"abstract":"Software requirements specifications (SRSs) often lack the detail needed to make informed architectural decisions. Architects therefore either make assumptions, which can lead to incorrect decisions, or conduct additional stakeholder interviews, resulting in potential project delays. We previously observed that software architects ask Probing Questions (PQs) to gather information crucial to architectural decision-making. Our goal is to equip Business Analysts with appropriate PQs so that they can ask these questions themselves. We report a new study with over 40 experienced architects to identify reusable PQs for five areas of functionality and organize them into structured flows. These PQflows can be used by Business Analysts to elicit and specify architecturally relevant information. Additionally, we leverage machine learning techniques to determine when a PQ-flow is appropriate for use in a project, and to annotate individual PQs with relevant information extracted from the existing SRS. We trained and evaluated our approach on over 8,000 individual requirements from 114 requirements specifications and also conducted a pilot study to validate its usefulness.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"49 1","pages":"843-854"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90816162","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}
引用次数: 14
Floating-Point Precision Tuning Using Blame Analysis 使用故障分析进行浮点精度调优
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884850
Cindy Rubio-González, Cuong Nguyen, Ben Mehne, Koushik Sen, J. Demmel, W. Kahan, Costin Iancu, W. Lavrijsen, D. Bailey, David G. Hough
While tremendously useful, automated techniques for tuning the precision of floating-point programs face important scalability challenges. We present Blame Analysis, a novel dynamic approach that speeds up precision tuning. Blame Analysis performs floating-point instructions using different levels of accuracy for their operands. The analysis determines the precision of all operands such that a given precision is achieved in the final result of the program. Our evaluation on ten scientific programs shows that Blame Analysis is successful in lowering operand precision. As it executes the program only once, the analysis is particularly useful when targeting reductions in execution time. In such case, the analysis needs to be combined with search-based tools such as Precimonious. Our experiments show that combining Blame Analysis with Precimonious leads to obtaining better results with significant reduction in analysis time: the optimized programs execute faster (in three cases, we observe as high as 39.9% program speedup) and the combined analysis time is 9× faster on average, and up to 38× faster than Precimonious alone.
虽然非常有用,但用于调优浮点程序精度的自动化技术面临着重要的可伸缩性挑战。我们提出了责备分析,一种新的动态方法,加快了精度调整。责备分析使用不同精度级别的操作数执行浮点指令。分析确定所有操作数的精度,以便在程序的最终结果中达到给定的精度。我们对十个科学方案的评价表明,责备分析在降低操作数精度方面是成功的。由于它只执行一次程序,因此在以减少执行时间为目标时,该分析特别有用。在这种情况下,分析需要与基于搜索的工具(如Precimonious)相结合。我们的实验表明,将Blame Analysis与Precimonious相结合,可以获得更好的结果,并显著减少分析时间:优化后的程序执行速度更快(在三个案例中,我们观察到高达39.9%的程序加速),组合分析时间平均快9倍,比单独使用Precimonious快38倍。
{"title":"Floating-Point Precision Tuning Using Blame Analysis","authors":"Cindy Rubio-González, Cuong Nguyen, Ben Mehne, Koushik Sen, J. Demmel, W. Kahan, Costin Iancu, W. Lavrijsen, D. Bailey, David G. Hough","doi":"10.1145/2884781.2884850","DOIUrl":"https://doi.org/10.1145/2884781.2884850","url":null,"abstract":"While tremendously useful, automated techniques for tuning the precision of floating-point programs face important scalability challenges. We present Blame Analysis, a novel dynamic approach that speeds up precision tuning. Blame Analysis performs floating-point instructions using different levels of accuracy for their operands. The analysis determines the precision of all operands such that a given precision is achieved in the final result of the program. Our evaluation on ten scientific programs shows that Blame Analysis is successful in lowering operand precision. As it executes the program only once, the analysis is particularly useful when targeting reductions in execution time. In such case, the analysis needs to be combined with search-based tools such as Precimonious. Our experiments show that combining Blame Analysis with Precimonious leads to obtaining better results with significant reduction in analysis time: the optimized programs execute faster (in three cases, we observe as high as 39.9% program speedup) and the combined analysis time is 9× faster on average, and up to 38× faster than Precimonious alone.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"40 1","pages":"1074-1085"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91204383","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
"Jumping Through Hoops": Why do Java Developers Struggle with Cryptography APIs? “跳过重重障碍”:为什么Java开发人员在加密api上苦苦挣扎?
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884790
Sarah Nadi, Stefan Krüger, M. Mezini, E. Bodden
To protect sensitive data processed by current applications, developers, whether security experts or not, have to rely on cryptography. While cryptography algorithms have become increasingly advanced, many data breaches occur because developers do not correctly use the corresponding APIs. To guide future research into practical solutions to this problem, we perform an empirical investigation into the obstacles developers face while using the Java cryptography APIs, the tasks they use the APIs for, and the kind of (tool) support they desire. We triangulate data from four separate studies that include the analysis of 100 StackOverflow posts, 100 GitHub repositories, and survey input from 48 developers. We find that while developers find it difficult to use certain cryptographic algorithms correctly, they feel surprisingly confident in selecting the right cryptography concepts (e.g., encryption vs. signatures). We also find that the APIs are generally perceived to be too low-level and that developers prefer more task-based solutions.
为了保护当前应用程序处理的敏感数据,开发人员,无论是否安全专家,都必须依赖加密技术。虽然加密算法变得越来越先进,但由于开发人员没有正确使用相应的api,导致了许多数据泄露。为了指导对该问题的实际解决方案的未来研究,我们对开发人员在使用Java加密api时面临的障碍、他们使用api的任务以及他们希望的(工具)支持类型进行了实证调查。我们对四项独立研究的数据进行了三角测量,其中包括对100个StackOverflow帖子、100个GitHub存储库的分析,以及对48个开发人员的调查。我们发现,虽然开发人员发现很难正确使用某些加密算法,但他们在选择正确的加密概念(例如,加密与签名)方面却感到非常自信。我们还发现,api通常被认为过于低级,开发人员更喜欢基于任务的解决方案。
{"title":"\"Jumping Through Hoops\": Why do Java Developers Struggle with Cryptography APIs?","authors":"Sarah Nadi, Stefan Krüger, M. Mezini, E. Bodden","doi":"10.1145/2884781.2884790","DOIUrl":"https://doi.org/10.1145/2884781.2884790","url":null,"abstract":"To protect sensitive data processed by current applications, developers, whether security experts or not, have to rely on cryptography. While cryptography algorithms have become increasingly advanced, many data breaches occur because developers do not correctly use the corresponding APIs. To guide future research into practical solutions to this problem, we perform an empirical investigation into the obstacles developers face while using the Java cryptography APIs, the tasks they use the APIs for, and the kind of (tool) support they desire. We triangulate data from four separate studies that include the analysis of 100 StackOverflow posts, 100 GitHub repositories, and survey input from 48 developers. We find that while developers find it difficult to use certain cryptographic algorithms correctly, they feel surprisingly confident in selecting the right cryptography concepts (e.g., encryption vs. signatures). We also find that the APIs are generally perceived to be too low-level and that developers prefer more task-based solutions.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"935-946"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91313662","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}
引用次数: 214
Reference Hijacking: Patching, Protecting and Analyzing on Unmodified and Non-rooted Android Devices 参考劫持:补丁,保护和分析未修改和非根Android设备
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884863
Wei You, Bin Liang, Wenchang Shi, Shuyang Zhu, Peng Wang, S. Xie, X. Zhang
Many efforts have been paid to enhance the security of Android. However, less attention has been given to how to practically adopt the enhancements on off-the-shelf devices. In particular, securing Android devices often requires modifying their write-protected underlying system component files (especially the system libraries) by flashing or rooting devices, which is unacceptable in many realistic cases. In this paper, a novel technique, called reference hijacking, is presented to address the problem. By introducing a specially designed reset procedure, a new execution environment is constructed for the target application, in which the reference to the underlying system libraries will be redirected to the security-enhanced alternatives. The technique can be applicable to both the Dalvik and Android Runtime (ART) environments and to almost all mainstream Android versions (2.x to 5.x). To demonstrate the capability of reference hijacking, we develop three prototype systems, PatchMan, ControlMan, and TaintMan, to enforce specific security enhancements, involving patching vulnerabilities, protecting inter-component communications, and performing dynamic taint analysis for the target application. These three prototypes have been successfully deployed on a number of popular Android devices from different manufacturers, without modifying the underlying system. The evaluation results show that they are effective and do not introduce noticeable overhead. They strongly support that reference hijacking can substantially improve the practicability of many security enhancement efforts for Android.
为了增强Android的安全性,人们付出了很多努力。然而,很少有人关注如何在现成的设备上实际采用增强功能。特别是,保护Android设备通常需要通过闪存或根设备来修改其受写保护的底层系统组件文件(特别是系统库),这在许多实际情况下是不可接受的。本文提出了一种称为参考劫持的新技术来解决这一问题。通过引入一个专门设计的重置过程,为目标应用程序构建了一个新的执行环境,在这个环境中,对底层系统库的引用将被重定向到安全性增强的替代方案。该技术可以适用于Dalvik和Android Runtime (ART)环境以及几乎所有主流Android版本(2)。X到5.x)。为了演示引用劫持的能力,我们开发了三个原型系统,PatchMan, ControlMan和TaintMan,以加强特定的安全性增强,包括修补漏洞,保护组件间通信,并对目标应用程序执行动态污染分析。这三个原型已经成功地部署在来自不同制造商的许多流行的Android设备上,而没有修改底层系统。评价结果表明,该方法是有效的,并且没有引入明显的开销。他们强烈支持引用劫持可以大大提高Android许多安全增强工作的实用性。
{"title":"Reference Hijacking: Patching, Protecting and Analyzing on Unmodified and Non-rooted Android Devices","authors":"Wei You, Bin Liang, Wenchang Shi, Shuyang Zhu, Peng Wang, S. Xie, X. Zhang","doi":"10.1145/2884781.2884863","DOIUrl":"https://doi.org/10.1145/2884781.2884863","url":null,"abstract":"Many efforts have been paid to enhance the security of Android. However, less attention has been given to how to practically adopt the enhancements on off-the-shelf devices. In particular, securing Android devices often requires modifying their write-protected underlying system component files (especially the system libraries) by flashing or rooting devices, which is unacceptable in many realistic cases. In this paper, a novel technique, called reference hijacking, is presented to address the problem. By introducing a specially designed reset procedure, a new execution environment is constructed for the target application, in which the reference to the underlying system libraries will be redirected to the security-enhanced alternatives. The technique can be applicable to both the Dalvik and Android Runtime (ART) environments and to almost all mainstream Android versions (2.x to 5.x). To demonstrate the capability of reference hijacking, we develop three prototype systems, PatchMan, ControlMan, and TaintMan, to enforce specific security enhancements, involving patching vulnerabilities, protecting inter-component communications, and performing dynamic taint analysis for the target application. These three prototypes have been successfully deployed on a number of popular Android devices from different manufacturers, without modifying the underlying system. The evaluation results show that they are effective and do not introduce noticeable overhead. They strongly support that reference hijacking can substantially improve the practicability of many security enhancement efforts for Android.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"33 1","pages":"959-970"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84762928","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
MobiPlay: A Remote Execution Based Record-and-Replay Tool for Mobile Applications MobiPlay:基于远程执行的移动应用程序记录和重放工具
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884854
Zhengrui Qin, Yutao Tang, Ed Novak, Qun A. Li
The record-and-replay approach for software testing is important and valuable for developers in designing mobile applications. However, the existing solutions for recording and replaying Android applications are far from perfect. When considering the richness of mobile phones' input capabilities including touch screen, sensors, GPS, etc., existing approaches either fall short of covering all these different input types, or require elevated privileges that are not easily attained and can be dangerous. In this paper, we present a novel system, called MobiPlay, which aims to improve record-and-replay testing. By collaborating between a mobile phone and a server, we are the first to capture all possible inputs by doing so at the application layer, instead of at the Android framework layer or the Linux kernel layer, which would be infeasible without a server. MobiPlay runs the to-be-tested application on the server under exactly the same environment as the mobile phone, and displays the GUI of the application in real time on a thin client application installed on the mobile phone. From the perspective of the mobile phone user, the application appears to be local. We have implemented our system and evaluated it with tens of popular mobile applications showing that MobiPlay is efficient, flexible, and comprehensive. It can record all input data, including all sensor data, all touchscreen gestures, and GPS. It is able to record and replay on both the mobile phone and the server. Furthermore, it is suitable for both white-box and black-box testing.
软件测试的记录和回放方法对于开发人员设计移动应用程序非常重要和有价值。然而,现有的录制和重放Android应用程序的解决方案还远远不够完美。考虑到手机输入功能的丰富性,包括触摸屏、传感器、GPS等,现有的方法要么无法覆盖所有这些不同的输入类型,要么需要更高的特权,这些特权不容易获得,而且可能很危险。在本文中,我们提出了一个名为MobiPlay的新系统,旨在改进记录和重播测试。通过在移动电话和服务器之间进行协作,我们是第一个在应用层捕获所有可能输入的人,而不是在Android框架层或Linux内核层,如果没有服务器,这将是不可行的。MobiPlay在与手机完全相同的环境下,在服务器上运行待测应用程序,并在手机上安装瘦客户端应用程序上实时显示待测应用程序的GUI。从移动电话用户的角度来看,应用程序似乎是本地的。我们已经实施了我们的系统,并在数十个流行的移动应用程序中对其进行了评估,结果表明MobiPlay是高效、灵活和全面的。它可以记录所有输入数据,包括所有传感器数据,所有触摸屏手势和GPS。它可以在手机和服务器上进行录音和回放。此外,它适用于白盒和黑盒测试。
{"title":"MobiPlay: A Remote Execution Based Record-and-Replay Tool for Mobile Applications","authors":"Zhengrui Qin, Yutao Tang, Ed Novak, Qun A. Li","doi":"10.1145/2884781.2884854","DOIUrl":"https://doi.org/10.1145/2884781.2884854","url":null,"abstract":"The record-and-replay approach for software testing is important and valuable for developers in designing mobile applications. However, the existing solutions for recording and replaying Android applications are far from perfect. When considering the richness of mobile phones' input capabilities including touch screen, sensors, GPS, etc., existing approaches either fall short of covering all these different input types, or require elevated privileges that are not easily attained and can be dangerous. In this paper, we present a novel system, called MobiPlay, which aims to improve record-and-replay testing. By collaborating between a mobile phone and a server, we are the first to capture all possible inputs by doing so at the application layer, instead of at the Android framework layer or the Linux kernel layer, which would be infeasible without a server. MobiPlay runs the to-be-tested application on the server under exactly the same environment as the mobile phone, and displays the GUI of the application in real time on a thin client application installed on the mobile phone. From the perspective of the mobile phone user, the application appears to be local. We have implemented our system and evaluated it with tens of popular mobile applications showing that MobiPlay is efficient, flexible, and comprehensive. It can record all input data, including all sensor data, all touchscreen gestures, and GPS. It is able to record and replay on both the mobile phone and the server. Furthermore, it is suitable for both white-box and black-box testing.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"129 1","pages":"571-582"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86384377","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}
引用次数: 86
Code Anomalies Flock Together: Exploring Code Anomaly Agglomerations for Locating Design Problems 代码异常聚集在一起:探索代码异常聚集以定位设计问题
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884868
W. Oizumi, Alessandro F. Garcia, L. Sousa, B. Cafeo, Yixue Zhao
Design problems affect every software system. Diverse software systems have been discontinued or reengineered due to design problems. As design documentation is often informal or nonexistent, design problems need to be located in the source code. The main difficulty to identify a design problem in the implementation stems from the fact that such problem is often scattered through several program elements. Previous work assumed that code anomalies -- popularly known as code smells -- may provide sufficient hints about the location of a design problem. However, each code anomaly alone may represent only a partial embodiment of a design problem. In this paper, we hypothesize that code anomalies tend to ``flock together'' to realize a design problem. We analyze to what extent groups of inter-related code anomalies, named agglomerations, suffice to locate design problems. We analyze more than 2200 agglomerations found in seven software systems of different sizes and from different domains. Our analysis indicates that certain forms of agglomerations are consistent indicators of both congenital and evolutionary design problems, with accuracy often higher than 80%.
设计问题影响每一个软件系统。由于设计问题,许多软件系统已经停产或重新设计。由于设计文档通常是非正式的或不存在,设计问题需要在源代码中定位。在实现中识别设计问题的主要困难源于这样一个事实,即这样的问题通常分散在几个程序元素中。以前的工作假设代码异常——通常被称为代码气味——可以提供关于设计问题位置的足够提示。然而,每个代码异常单独可能只代表设计问题的部分体现。在本文中,我们假设代码异常倾向于“聚集在一起”来实现设计问题。我们分析相互关联的代码异常组(称为聚集)在多大程度上足以定位设计问题。我们分析了在7个不同规模和不同领域的软件系统中发现的2200多个聚集。我们的分析表明,某些形式的聚集是先天性和进化设计问题的一致指标,准确率通常高于80%。
{"title":"Code Anomalies Flock Together: Exploring Code Anomaly Agglomerations for Locating Design Problems","authors":"W. Oizumi, Alessandro F. Garcia, L. Sousa, B. Cafeo, Yixue Zhao","doi":"10.1145/2884781.2884868","DOIUrl":"https://doi.org/10.1145/2884781.2884868","url":null,"abstract":"Design problems affect every software system. Diverse software systems have been discontinued or reengineered due to design problems. As design documentation is often informal or nonexistent, design problems need to be located in the source code. The main difficulty to identify a design problem in the implementation stems from the fact that such problem is often scattered through several program elements. Previous work assumed that code anomalies -- popularly known as code smells -- may provide sufficient hints about the location of a design problem. However, each code anomaly alone may represent only a partial embodiment of a design problem. In this paper, we hypothesize that code anomalies tend to ``flock together'' to realize a design problem. We analyze to what extent groups of inter-related code anomalies, named agglomerations, suffice to locate design problems. We analyze more than 2200 agglomerations found in seven software systems of different sizes and from different domains. Our analysis indicates that certain forms of agglomerations are consistent indicators of both congenital and evolutionary design problems, with accuracy often higher than 80%.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"16 1","pages":"440-451"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76257162","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}
引用次数: 86
Automated Parameter Optimization of Classification Techniques for Defect Prediction Models 缺陷预测模型的自动参数优化分类技术
Pub Date : 2016-05-14 DOI: 10.1145/2884781.2884857
C. Tantithamthavorn, Shane McIntosh, A. Hassan, Ken-ichi Matsumoto
Defect prediction models are classifiers that are trained to identify defect-prone software modules. Such classifiers have configurable parameters that control their characteristics (e.g., the number of trees in a random forest classifier). Recent studies show that these classifiers may underperform due to the use of suboptimal default parameter settings. However, it is impractical to assess all of the possible settings in the parameter spaces. In this paper, we investigate the performance of defect prediction models where Caret — an automated parameter optimization technique - has been applied. Through a case study of 18 datasets from systems that span both proprietary and open source domains, we find that (1) Caret improves the AUC performance of defect prediction models by as much as 40 percentage points; (2) Caret-optimized classifiers are at least as stable as (with 35% of them being more stable than) classifiers that are trained using the default settings; and (3) Caret increases the likelihood of producing a top-performing classifier by as much as 83%. Hence, we conclude that parameter settings can indeed have a large impact on the performance of defect prediction models, suggesting that researchers should experiment with the parameters of the classification techniques. Since automated parameter optimization techniques like Caret yield substantially benefits in terms of performance improvement and stability, while incurring a manageable additional computational cost, they should be included in future defect prediction studies.
缺陷预测模型是经过训练以识别容易出现缺陷的软件模块的分类器。这样的分类器具有控制其特征的可配置参数(例如,随机森林分类器中的树的数量)。最近的研究表明,由于使用了次优的默认参数设置,这些分类器可能表现不佳。然而,评估参数空间中所有可能的设置是不切实际的。本文研究了采用自动参数优化技术Caret的缺陷预测模型的性能。通过对来自私有和开源领域的系统的18个数据集的案例研究,我们发现(1)Caret将缺陷预测模型的AUC性能提高了40个百分点;(2)插入符优化的分类器至少与使用默认设置训练的分类器一样稳定(其中35%的分类器比前者更稳定);(3)插入符号使生成性能最好的分类器的可能性提高了83%。因此,我们得出结论,参数设置确实会对缺陷预测模型的性能产生很大的影响,建议研究人员应该对分类技术的参数进行实验。由于像Caret这样的自动参数优化技术在性能改进和稳定性方面产生了实质性的好处,同时产生了可管理的额外计算成本,因此它们应该包括在未来的缺陷预测研究中。
{"title":"Automated Parameter Optimization of Classification Techniques for Defect Prediction Models","authors":"C. Tantithamthavorn, Shane McIntosh, A. Hassan, Ken-ichi Matsumoto","doi":"10.1145/2884781.2884857","DOIUrl":"https://doi.org/10.1145/2884781.2884857","url":null,"abstract":"Defect prediction models are classifiers that are trained to identify defect-prone software modules. Such classifiers have configurable parameters that control their characteristics (e.g., the number of trees in a random forest classifier). Recent studies show that these classifiers may underperform due to the use of suboptimal default parameter settings. However, it is impractical to assess all of the possible settings in the parameter spaces. In this paper, we investigate the performance of defect prediction models where Caret — an automated parameter optimization technique - has been applied. Through a case study of 18 datasets from systems that span both proprietary and open source domains, we find that (1) Caret improves the AUC performance of defect prediction models by as much as 40 percentage points; (2) Caret-optimized classifiers are at least as stable as (with 35% of them being more stable than) classifiers that are trained using the default settings; and (3) Caret increases the likelihood of producing a top-performing classifier by as much as 83%. Hence, we conclude that parameter settings can indeed have a large impact on the performance of defect prediction models, suggesting that researchers should experiment with the parameters of the classification techniques. Since automated parameter optimization techniques like Caret yield substantially benefits in terms of performance improvement and stability, while incurring a manageable additional computational cost, they should be included in future defect prediction studies.","PeriodicalId":6485,"journal":{"name":"2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)","volume":"49 1","pages":"321-332"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88116255","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}
引用次数: 309
期刊
2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)
全部 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