首页 > 最新文献

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

英文 中文
Reducer-Based Construction of Conditional Verifiers 基于约简的条件验证器构造
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180259
Dirk Beyer, Marie-Christine Jakobs, T. Lemberger, H. Wehrheim
Despite recent advances, software verification remains challenging. To solve hard verification tasks, we need to leverage not just one but several different verifiers employing different technologies. To this end, we need to exchange information between verifiers. Conditional model checking was proposed as a solution to exactly this problem: The idea is to let the first verifier output a condition which describes the state space that it successfully verified and to instruct the second verifier to verify the yet unverified state space using this condition. However, most verifiers do not understand conditions as input. In this paper, we propose the usage of an off-the-shelf construction of a conditional verifier from a given traditional verifier and a reducer. The reducer takes as input the program to be verified and the condition, and outputs a residual program whose paths cover the unverified state space described by the condition. As a proof of concept, we designed and implemented one particular reducer and composed three conditional model checkers from the three best verifiers at SV-COMP 2017. We defined a set of claims and experimentally evaluated their validity. All experimental data and results are available for replication.
尽管最近取得了进展,软件验证仍然具有挑战性。为了解决困难的验证任务,我们需要利用的不仅仅是一个,而是几个使用不同技术的不同的验证器。为此,我们需要在验证者之间交换信息。条件模型检查被提出作为这个问题的解决方案:其思想是让第一个验证者输出一个描述它成功验证的状态空间的条件,并指示第二个验证者使用这个条件来验证尚未验证的状态空间。然而,大多数验证器不理解条件作为输入。在本文中,我们提出了一种由给定的传统验证器和减速器组成的条件验证器的现成结构的使用。减速机将待验证程序和条件作为输入,输出残差程序,残差程序的路径覆盖条件所描述的未验证状态空间。作为概念验证,我们设计并实现了一个特定的减速机,并从SV-COMP 2017上的三个最佳验证器中组成了三个条件模型检查器。我们定义了一组声明,并通过实验评估了它们的有效性。所有实验数据和结果可用于复制。
{"title":"Reducer-Based Construction of Conditional Verifiers","authors":"Dirk Beyer, Marie-Christine Jakobs, T. Lemberger, H. Wehrheim","doi":"10.1145/3180155.3180259","DOIUrl":"https://doi.org/10.1145/3180155.3180259","url":null,"abstract":"Despite recent advances, software verification remains challenging. To solve hard verification tasks, we need to leverage not just one but several different verifiers employing different technologies. To this end, we need to exchange information between verifiers. Conditional model checking was proposed as a solution to exactly this problem: The idea is to let the first verifier output a condition which describes the state space that it successfully verified and to instruct the second verifier to verify the yet unverified state space using this condition. However, most verifiers do not understand conditions as input. In this paper, we propose the usage of an off-the-shelf construction of a conditional verifier from a given traditional verifier and a reducer. The reducer takes as input the program to be verified and the condition, and outputs a residual program whose paths cover the unverified state space described by the condition. As a proof of concept, we designed and implemented one particular reducer and composed three conditional model checkers from the three best verifiers at SV-COMP 2017. We defined a set of claims and experimentally evaluated their validity. All experimental data and results are available for replication.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"1182-1193"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81156058","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}
引用次数: 27
Synthesizing Qualitative Research in Software Engineering: A Critical Review 软件工程中的综合定性研究:综述
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180235
Xin Huang, He Zhang, Xin Zhou, M. Babar, Song Yang
Synthesizing data extracted from primary studies is an integral component of the methodologies in support of Evidence Based Software Engineering (EBSE) such as System Literature Review (SLR). Since a large and increasing number of studies in Software Engineering (SE) incorporate qualitative data, it is important to systematically review and understand different aspects of the Qualitative Research Synthesis (QRS) being used in SE. We have reviewed the use of QRS methods in 328 SLRs published between 2005 and 2015. We also inquired the authors of 274 SLRs to confrm whether or not any QRS methods were used in their respective reviews. 116 of them provided the responses, which were included in our analysis. We found eight QRS methods applied in SE research, two of which, narrative synthesis and thematic synthesis, have been predominantly adopted by SE researchers for synthesizing qualitative data. Our study determines that a signifcant amount of missing knowledge and incomplete understanding of the defned QRS methods in the community. Our effort also identifes an initial set factors that may in?uence the selection and use of appropriate QRS methods in SE.
从原始研究中提取的综合数据是支持基于证据的软件工程(EBSE)如系统文献综述(SLR)的方法论的一个组成部分。由于软件工程(SE)中大量且不断增加的研究包含定性数据,系统地回顾和理解在SE中使用的定性研究综合(QRS)的不同方面是很重要的。我们回顾了2005年至2015年间发表的328份单反报告中QRS方法的使用情况。我们还询问了274篇单反的作者,以确认他们各自的综述中是否使用了QRS方法。其中116人提供了回复,这些回复被纳入我们的分析。我们发现在SE研究中使用了8种QRS方法,其中叙事综合和主题综合两种方法被SE研究者主要用于合成定性数据。我们的研究表明,社会上对QRS方法的定义存在大量的知识缺失和不完整的理解。我们的努力还确定了一组初始因素,这些因素可能在?在SE中选择和使用合适的QRS方法。
{"title":"Synthesizing Qualitative Research in Software Engineering: A Critical Review","authors":"Xin Huang, He Zhang, Xin Zhou, M. Babar, Song Yang","doi":"10.1145/3180155.3180235","DOIUrl":"https://doi.org/10.1145/3180155.3180235","url":null,"abstract":"Synthesizing data extracted from primary studies is an integral component of the methodologies in support of Evidence Based Software Engineering (EBSE) such as System Literature Review (SLR). Since a large and increasing number of studies in Software Engineering (SE) incorporate qualitative data, it is important to systematically review and understand different aspects of the Qualitative Research Synthesis (QRS) being used in SE. We have reviewed the use of QRS methods in 328 SLRs published between 2005 and 2015. We also inquired the authors of 274 SLRs to confrm whether or not any QRS methods were used in their respective reviews. 116 of them provided the responses, which were included in our analysis. We found eight QRS methods applied in SE research, two of which, narrative synthesis and thematic synthesis, have been predominantly adopted by SE researchers for synthesizing qualitative data. Our study determines that a signifcant amount of missing knowledge and incomplete understanding of the defned QRS methods in the community. Our effort also identifes an initial set factors that may in?uence the selection and use of appropriate QRS methods in SE.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"1207-1218"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82089617","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}
引用次数: 31
The Road to Live Programming: Insights from the Practice 现场编程之路:来自实践的见解
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180200
Juraj Kubelka, R. Robbes, Alexandre Bergel
Live Programming environments allow programmers to get feedback instantly while changing software. Liveness is gaining attention among industrial and open-source communities; several IDEs offer high degrees of liveness. While several studies looked at how programmers work during software evolution tasks, none of them consider live environments. We conduct such a study based on an analysis of 17 programming sessions of practitioners using Pharo, a mature Live Programming environment. The study is complemented by a survey and subsequent analysis of 16 programming sessions in additional languages, e.g., JavaScript. We document the approaches taken by developers during their work. We find that some liveness features are extensively used, and have an impact on the way developers navigate source code and objects in their work.
实时编程环境允许程序员在更改软件时立即获得反馈。lively正在吸引工业和开源社区的关注;有几个ide提供了高度的活跃性。虽然有几项研究着眼于程序员在软件开发任务中是如何工作的,但没有一项研究考虑到实际环境。我们基于对使用Pharo(一个成熟的实时编程环境)的从业者的17个编程会话的分析进行了这样的研究。这项研究还补充了对其他语言(例如JavaScript)的16次编程会议的调查和随后的分析。我们记录了开发人员在工作期间采用的方法。我们发现一些活跃特性被广泛使用,并且对开发人员在工作中导航源代码和对象的方式产生了影响。
{"title":"The Road to Live Programming: Insights from the Practice","authors":"Juraj Kubelka, R. Robbes, Alexandre Bergel","doi":"10.1145/3180155.3180200","DOIUrl":"https://doi.org/10.1145/3180155.3180200","url":null,"abstract":"Live Programming environments allow programmers to get feedback instantly while changing software. Liveness is gaining attention among industrial and open-source communities; several IDEs offer high degrees of liveness. While several studies looked at how programmers work during software evolution tasks, none of them consider live environments. We conduct such a study based on an analysis of 17 programming sessions of practitioners using Pharo, a mature Live Programming environment. The study is complemented by a survey and subsequent analysis of 16 programming sessions in additional languages, e.g., JavaScript. We document the approaches taken by developers during their work. We find that some liveness features are extensively used, and have an impact on the way developers navigate source code and objects in their work.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"305 1","pages":"1090-1101"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84833679","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}
引用次数: 24
Leveraging Program Analysis to Reduce User-Perceived Latency in Mobile Applications 利用程序分析减少移动应用程序中的用户感知延迟
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180249
Yixue Zhao, Marcelo Schmitt Laser, Yingjun Lyu, N. Medvidović
Reducing network latency in mobile applications is an effective way of improving the mobile user experience and has tangible economic benefits. This paper presents PALOMA, a novel client-centric technique for reducing the network latency by prefetching HTTP requests in Android apps. Our work leverages string analysis and callback control-flow analysis to automatically instrument apps using PALOMA's rigorous formulation of scenarios that address "what" and "when" to prefetch. PALOMA has been shown to incur significant runtime savings (several hundred milliseconds per prefetchable HTTP request), both when applied on a reusable evaluation benchmark we have developed and on real applications.
降低移动应用中的网络延迟是改善移动用户体验的有效途径,具有切实的经济效益。本文介绍了PALOMA,一种新颖的以客户端为中心的技术,通过在Android应用程序中预取HTTP请求来减少网络延迟。我们的工作利用字符串分析和回调控制流分析来自动测量应用程序,使用PALOMA严格的方案来解决“什么”和“什么时候”预取。PALOMA已被证明可以显著节省运行时(每个可预取的HTTP请求几百毫秒),无论是在我们开发的可重用评估基准测试上还是在实际应用程序上。
{"title":"Leveraging Program Analysis to Reduce User-Perceived Latency in Mobile Applications","authors":"Yixue Zhao, Marcelo Schmitt Laser, Yingjun Lyu, N. Medvidović","doi":"10.1145/3180155.3180249","DOIUrl":"https://doi.org/10.1145/3180155.3180249","url":null,"abstract":"Reducing network latency in mobile applications is an effective way of improving the mobile user experience and has tangible economic benefits. This paper presents PALOMA, a novel client-centric technique for reducing the network latency by prefetching HTTP requests in Android apps. Our work leverages string analysis and callback control-flow analysis to automatically instrument apps using PALOMA's rigorous formulation of scenarios that address \"what\" and \"when\" to prefetch. PALOMA has been shown to incur significant runtime savings (several hundred milliseconds per prefetchable HTTP request), both when applied on a reusable evaluation benchmark we have developed and on real applications.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"28 1","pages":"176-186"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87123646","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}
引用次数: 27
Understanding Developers' Needs on Deprecation as a Language Feature 理解开发人员对弃用作为语言特性的需求
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180170
A. Sawant, M. Aniche, A. Deursen, Alberto Bacchelli
Deprecation is a language feature that allows API producers to mark a feature as obsolete. We aim to gain a deep understanding of the needs of API producers and consumers alike regarding deprecation. To that end, we investigate why API producers deprecate features, whether they remove deprecated features, how they expect consumers to react, and what prompts an API consumer to react to deprecation. To achieve this goal we conduct semi-structured interviews with 17 third-party Java API producers and survey 170 Java developers. We observe that the current deprecation mechanism in Java and the proposal to enhance it does not address all the needs of a developer. This leads us to propose and evaluate three further enhancements to the deprecation mechanism.
弃用是一种语言特性,它允许API生产者将某个特性标记为过时。我们的目标是深入了解API生产者和消费者在弃用方面的需求。为此,我们将调查API生产者为何弃用特性,他们是否删除了弃用的特性,他们期望消费者如何反应,以及是什么促使API消费者对弃用做出反应。为了实现这一目标,我们对17家第三方Java API生产商进行了半结构化访谈,并调查了170名Java开发人员。我们注意到Java中当前的弃用机制和增强它的建议并不能满足开发人员的所有需求。这导致我们提出并评估弃用机制的三个进一步增强。
{"title":"Understanding Developers' Needs on Deprecation as a Language Feature","authors":"A. Sawant, M. Aniche, A. Deursen, Alberto Bacchelli","doi":"10.1145/3180155.3180170","DOIUrl":"https://doi.org/10.1145/3180155.3180170","url":null,"abstract":"Deprecation is a language feature that allows API producers to mark a feature as obsolete. We aim to gain a deep understanding of the needs of API producers and consumers alike regarding deprecation. To that end, we investigate why API producers deprecate features, whether they remove deprecated features, how they expect consumers to react, and what prompts an API consumer to react to deprecation. To achieve this goal we conduct semi-structured interviews with 17 third-party Java API producers and survey 170 Java developers. We observe that the current deprecation mechanism in Java and the proposal to enhance it does not address all the needs of a developer. This leads us to propose and evaluate three further enhancements to the deprecation mechanism.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"58 1","pages":"561-571"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88938562","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 23
GUILeak: Tracing Privacy Policy Claims on User Input Data for Android Applications 追踪Android应用程序用户输入数据的隐私政策索赔
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180196
Xiaoyin Wang, Xue Qin, M. Hosseini, Rocky Slavin, T. Breaux, Jianwei Niu
The Android mobile platform supports billions of devices across more than 190 countries around the world. This popularity coupled with user data collection by Android apps has made privacy protection a well-known challenge in the Android ecosystem. In practice, app producers provide privacy policies disclosing what information is collected and processed by the app. However, it is difficult to trace such claims to the corresponding app code to verify whether the implementation is consistent with the policy. Existing approaches for privacy policy alignment focus on information directly accessed through the Android platform (e.g., location and device ID), but are unable to handle user input, a major source of private information. In this paper, we propose a novel approach that automatically detects privacy leaks of user-entered data for a given Android app and determines whether such leakage may violate the app's privacy policy claims. For evaluation, we applied our approach to 120 popular apps from three privacy-relevant app categories: finance, health, and dating. The results show that our approach was able to detect 21 strong violations and 18 weak violations from the studied apps.
Android移动平台支持全球190多个国家的数十亿台设备。这种受欢迎程度加上Android应用收集用户数据,使得隐私保护成为Android生态系统中一个众所周知的挑战。在实践中,应用程序生产者提供了隐私政策,披露了应用程序收集和处理的信息。然而,很难将这些声明追溯到相应的应用程序代码,以验证其实现是否与政策一致。现有的隐私政策调整方法侧重于通过Android平台直接访问的信息(例如,位置和设备ID),但无法处理用户输入,这是私人信息的主要来源。在本文中,我们提出了一种新方法,可以自动检测给定Android应用程序的用户输入数据的隐私泄露,并确定这种泄漏是否可能违反应用程序的隐私政策声明。为了进行评估,我们将我们的方法应用于120个流行的应用程序,这些应用程序来自三个与隐私相关的应用程序类别:金融、健康和约会。结果表明,我们的方法能够从研究的应用程序中检测到21个强违规和18个弱违规。
{"title":"GUILeak: Tracing Privacy Policy Claims on User Input Data for Android Applications","authors":"Xiaoyin Wang, Xue Qin, M. Hosseini, Rocky Slavin, T. Breaux, Jianwei Niu","doi":"10.1145/3180155.3180196","DOIUrl":"https://doi.org/10.1145/3180155.3180196","url":null,"abstract":"The Android mobile platform supports billions of devices across more than 190 countries around the world. This popularity coupled with user data collection by Android apps has made privacy protection a well-known challenge in the Android ecosystem. In practice, app producers provide privacy policies disclosing what information is collected and processed by the app. However, it is difficult to trace such claims to the corresponding app code to verify whether the implementation is consistent with the policy. Existing approaches for privacy policy alignment focus on information directly accessed through the Android platform (e.g., location and device ID), but are unable to handle user input, a major source of private information. In this paper, we propose a novel approach that automatically detects privacy leaks of user-entered data for a given Android app and determines whether such leakage may violate the app's privacy policy claims. For evaluation, we applied our approach to 120 popular apps from three privacy-relevant app categories: finance, health, and dating. The results show that our approach was able to detect 21 strong violations and 18 weak violations from the studied apps.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"63 1","pages":"37-47"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81373377","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}
引用次数: 69
Are Mutation Scores Correlated with Real Fault Detection? A Large Scale Empirical Study on the Relationship Between Mutants and Real Faults 突变分数与真实故障检测相关吗?突变体与实际故障关系的大规模实证研究
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180183
Mike Papadakis, Donghwan Shin, S. Yoo, Doo-Hwan Bae
Empirical validation of software testing studies is increasingly relying on mutants. This practice is motivated by the strong correlation between mutant scores and real fault detection that is reported in the literature. In contrast, our study shows that correlations are the results of the confounding effects of the test suite size. In particular, we investigate the relation between two independent variables, mutation score and test suite size, with one dependent variable the detection of (real) faults. We use two data sets, CoreBench and De-fects4J, with large C and Java programs and real faults and provide evidence that all correlations between mutation scores and real fault detection are weak when controlling for test suite size. We also found that both independent variables significantly influence the dependent one, with significantly better fits, but overall with relative low prediction power. By measuring the fault detection capability of the top ranked, according to mutation score, test suites (opposed to randomly selected test suites of the same size), we found that achieving higher mutation scores improves significantly the fault detection. Taken together, our data suggest that mutants provide good guidance for improving the fault detection of test suites, but their correlation with fault detection are weak.
软件测试研究的实证验证越来越依赖于突变体。这种做法的动机是文献中报道的突变分数和真实故障检测之间的强相关性。相反,我们的研究表明相关性是测试套件大小的混淆效应的结果。特别地,我们研究了两个自变量,突变分数和测试套件大小之间的关系,其中一个因变量是(真实)故障的检测。我们使用两个数据集,CoreBench和De-fects4J,其中包含大型C和Java程序和真实故障,并提供证据表明,在控制测试套件大小时,突变分数和真实故障检测之间的所有相关性都很弱。我们还发现,两个自变量对因变量都有显著影响,拟合效果明显更好,但总体上预测能力相对较低。通过根据突变分数、测试套件(相对于随机选择的相同大小的测试套件)衡量排名靠前的测试套件的故障检测能力,我们发现获得更高的突变分数显著提高了故障检测能力。综上所述,我们的数据表明突变体为改进测试套件的故障检测提供了很好的指导,但它们与故障检测的相关性较弱。
{"title":"Are Mutation Scores Correlated with Real Fault Detection? A Large Scale Empirical Study on the Relationship Between Mutants and Real Faults","authors":"Mike Papadakis, Donghwan Shin, S. Yoo, Doo-Hwan Bae","doi":"10.1145/3180155.3180183","DOIUrl":"https://doi.org/10.1145/3180155.3180183","url":null,"abstract":"Empirical validation of software testing studies is increasingly relying on mutants. This practice is motivated by the strong correlation between mutant scores and real fault detection that is reported in the literature. In contrast, our study shows that correlations are the results of the confounding effects of the test suite size. In particular, we investigate the relation between two independent variables, mutation score and test suite size, with one dependent variable the detection of (real) faults. We use two data sets, CoreBench and De-fects4J, with large C and Java programs and real faults and provide evidence that all correlations between mutation scores and real fault detection are weak when controlling for test suite size. We also found that both independent variables significantly influence the dependent one, with significantly better fits, but overall with relative low prediction power. By measuring the fault detection capability of the top ranked, according to mutation score, test suites (opposed to randomly selected test suites of the same size), we found that achieving higher mutation scores improves significantly the fault detection. Taken together, our data suggest that mutants provide good guidance for improving the fault detection of test suites, but their correlation with fault detection are weak.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"23 1","pages":"537-548"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83283984","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
RFC-Directed Differential Testing of Certificate Validation in SSL/TLS Implementations SSL/TLS实现中rfc导向的证书验证差异测试
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180226
Chu Chen, Cong Tian, Zhenhua Duan, Liang Zhao
Certificate validation in Secure Socket Layer or Transport Layer Security protocol (SSL/TLS) is critical to Internet security. Thus, it is significant to check whether certificate validation in SSL/TLS is correctly implemented. With this motivation, we propose a novel differential testing approach which is directed by the standard Request For Comments (RFC). First, rules of certificates are extracted automatically from RFCs. Second, low-level test cases are generated through dynamic symbolic execution. Third, high-level test cases, i.e. certificates, are assembled automatically. Finally, with the assembled certificates being test cases, certificate validations in SSL/TLS implementations are tested to reveal latent vulnerabilities or bugs. Our approach named RFCcert has the following advantages: (1) certificates of RFCcert are discrepancy-targeted since they are assembled according to standards instead of genetics; (2) with the obtained certificates, RFCcert not only reveals the invalidity of traditional differential testing but also is able to conduct testing that traditional differential testing cannot do; and (3) the supporting tool of RFCcert has been implemented and extensive experiments show that the approach is effective in finding bugs of SSL/TLS implementations.
安全套接字层或传输层安全协议(SSL/TLS)中的证书验证对互联网安全至关重要。因此,检查SSL/TLS中的证书验证是否正确实现是非常重要的。基于这种动机,我们提出了一种新的差异测试方法,该方法由标准的征求意见(RFC)指导。首先,从rfc中自动提取证书规则。第二,低级测试用例是通过动态符号执行生成的。第三,高级测试用例,即证书,是自动组装的。最后,将组装的证书作为测试用例,对SSL/TLS实现中的证书验证进行测试,以揭示潜在的漏洞或错误。我们命名为RFCcert的方法有以下优点:(1)RFCcert证书是根据标准而不是基因来组装的,因此是针对差异的;(2)通过获得的证书,RFCcert不仅揭示了传统差分检测的无效性,而且能够进行传统差分检测无法完成的检测;(3)实现了RFCcert的支持工具,大量的实验表明,该方法可以有效地发现SSL/TLS实现中的错误。
{"title":"RFC-Directed Differential Testing of Certificate Validation in SSL/TLS Implementations","authors":"Chu Chen, Cong Tian, Zhenhua Duan, Liang Zhao","doi":"10.1145/3180155.3180226","DOIUrl":"https://doi.org/10.1145/3180155.3180226","url":null,"abstract":"Certificate validation in Secure Socket Layer or Transport Layer Security protocol (SSL/TLS) is critical to Internet security. Thus, it is significant to check whether certificate validation in SSL/TLS is correctly implemented. With this motivation, we propose a novel differential testing approach which is directed by the standard Request For Comments (RFC). First, rules of certificates are extracted automatically from RFCs. Second, low-level test cases are generated through dynamic symbolic execution. Third, high-level test cases, i.e. certificates, are assembled automatically. Finally, with the assembled certificates being test cases, certificate validations in SSL/TLS implementations are tested to reveal latent vulnerabilities or bugs. Our approach named RFCcert has the following advantages: (1) certificates of RFCcert are discrepancy-targeted since they are assembled according to standards instead of genetics; (2) with the obtained certificates, RFCcert not only reveals the invalidity of traditional differential testing but also is able to conduct testing that traditional differential testing cannot do; and (3) the supporting tool of RFCcert has been implemented and extensive experiments show that the approach is effective in finding bugs of SSL/TLS implementations.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"859-870"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81942155","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
Dataflow Tunneling: Mining Inter-Request Data Dependencies for Request-Based Applications 数据流隧道:为基于请求的应用程序挖掘请求间数据依赖关系
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180171
Xiao Yu, Guoliang Jin
Request-based applications, e.g., most server-side applications, expose services to users in a request-based paradigm, in which requests are served by request-handler methods. An important task for request-based applications is inter-request analysis, which analyzes request-handler methods that are related by inter-request data dependencies together. However, in the request-based paradigm, data dependencies between related request-handler methods are implicitly established by the underlying frameworks that execute these methods. As a result, existing analysis tools are usually limited to the scope of each single method without the knowledge of dependencies between different methods. In this paper, we design an approach called dataflow tunneling to capture inter-request data dependencies from concrete application executions and produce data-dependency specifications. Our approach answers two key questions: (1) what request-handler methods have data dependencies and (2) what these data dependencies are. Our evaluation using applications developed with two representative and popular frameworks shows that our approach is general and accurate. We also present a characteristic study and a use case of cache tuning based on the mined specifications. We envision that our approach can provide key information to enable future inter-request analysis techniques.
基于请求的应用程序(例如,大多数服务器端应用程序)以基于请求的范例向用户公开服务,其中请求由请求处理程序方法提供。基于请求的应用程序的一项重要任务是请求间分析,它分析由请求间数据依赖项关联在一起的请求处理程序方法。然而,在基于请求的范例中,相关请求处理程序方法之间的数据依赖关系是由执行这些方法的底层框架隐式建立的。因此,现有的分析工具通常局限于每个单一方法的范围,而不了解不同方法之间的依赖关系。在本文中,我们设计了一种称为数据流隧道的方法,从具体的应用程序执行中捕获请求间的数据依赖关系,并生成数据依赖规范。我们的方法回答了两个关键问题:(1)哪些请求处理程序方法具有数据依赖关系,以及(2)这些数据依赖关系是什么。我们使用使用两个代表性和流行框架开发的应用程序进行评估,表明我们的方法是通用的和准确的。我们还提出了一个特征研究和基于挖掘规范的缓存调优用例。我们设想我们的方法可以提供关键信息,以支持未来的请求间分析技术。
{"title":"Dataflow Tunneling: Mining Inter-Request Data Dependencies for Request-Based Applications","authors":"Xiao Yu, Guoliang Jin","doi":"10.1145/3180155.3180171","DOIUrl":"https://doi.org/10.1145/3180155.3180171","url":null,"abstract":"Request-based applications, e.g., most server-side applications, expose services to users in a request-based paradigm, in which requests are served by request-handler methods. An important task for request-based applications is inter-request analysis, which analyzes request-handler methods that are related by inter-request data dependencies together. However, in the request-based paradigm, data dependencies between related request-handler methods are implicitly established by the underlying frameworks that execute these methods. As a result, existing analysis tools are usually limited to the scope of each single method without the knowledge of dependencies between different methods. In this paper, we design an approach called dataflow tunneling to capture inter-request data dependencies from concrete application executions and produce data-dependency specifications. Our approach answers two key questions: (1) what request-handler methods have data dependencies and (2) what these data dependencies are. Our evaluation using applications developed with two representative and popular frameworks shows that our approach is general and accurate. We also present a characteristic study and a use case of cache tuning based on the mined specifications. We envision that our approach can provide key information to enable future inter-request analysis techniques.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"51 1","pages":"586-597"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80735004","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}
引用次数: 1
Redefining Prioritization: Continuous Prioritization for Continuous Integration 重新定义优先级:持续集成的持续优先级
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180213
Jingjing Liang, Sebastian G. Elbaum, G. Rothermel
Continuous integration (CI) development environments allow soft-ware engineers to frequently integrate and test their code. While CI environments provide advantages, they also utilize non-trivial amounts of time and resources. To address this issue, researchers have adapted techniques for test case prioritization (TCP) to CI environments. To date, however, the techniques considered have operated on test suites, and have not achieved substantial improvements. Moreover, they can be inappropriate to apply when system build costs are high. In this work we explore an alternative: prioritization of commits. We use a lightweight approach based on test suite failure and execution history that is highly effcient; our approach "continuously" prioritizes commits that are waiting for execution in response to the arrival of each new commit and the completion of each previously scheduled commit. We have evaluated our approach on three non-trivial CI data sets. Our results show that our approach can be more effective than prior techniques.
持续集成(CI)开发环境允许软件工程师频繁地集成和测试他们的代码。虽然CI环境提供了优势,但它们也占用了大量的时间和资源。为了解决这个问题,研究人员将测试用例优先级(TCP)技术应用于CI环境。然而,到目前为止,所考虑的技术都是在测试套件上运行的,并没有取得实质性的改进。此外,当系统构建成本很高时,它们可能不适合应用。在这项工作中,我们探索了另一种选择:提交的优先级。我们使用基于测试套件失败和执行历史的轻量级方法,这是非常高效的;我们的方法“连续地”对等待执行的提交进行优先级排序,以响应每个新提交的到来和每个先前计划的提交的完成。我们在三个非平凡CI数据集上评估了我们的方法。我们的结果表明,我们的方法可以比以前的技术更有效。
{"title":"Redefining Prioritization: Continuous Prioritization for Continuous Integration","authors":"Jingjing Liang, Sebastian G. Elbaum, G. Rothermel","doi":"10.1145/3180155.3180213","DOIUrl":"https://doi.org/10.1145/3180155.3180213","url":null,"abstract":"Continuous integration (CI) development environments allow soft-ware engineers to frequently integrate and test their code. While CI environments provide advantages, they also utilize non-trivial amounts of time and resources. To address this issue, researchers have adapted techniques for test case prioritization (TCP) to CI environments. To date, however, the techniques considered have operated on test suites, and have not achieved substantial improvements. Moreover, they can be inappropriate to apply when system build costs are high. In this work we explore an alternative: prioritization of commits. We use a lightweight approach based on test suite failure and execution history that is highly effcient; our approach \"continuously\" prioritizes commits that are waiting for execution in response to the arrival of each new commit and the completion of each previously scheduled commit. We have evaluated our approach on three non-trivial CI data sets. Our results show that our approach can be more effective than prior techniques.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"24 1","pages":"688-698"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74258531","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
期刊
2018 IEEE/ACM 40th 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