首页 > 最新文献

ESEC/FSE '11最新文献

英文 中文
SMutant: a tool for type-sensitive mutation testing in a dynamic language SMutant:一个动态语言中类型敏感的突变测试工具
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025181
Miloš Gligorić, Sandro Badame, Ralph E. Johnson
A mutation testing tool takes as input a system under test and a test suite and produces as output the mutation score of the test suite. The tool systematically creates mutants by making small syntactic changes to the system under test and executes the test suite to determine which mutants give different results from the original system. Almost all mutation testing tools have been developed for statically typed languages. The lack of tools for dynamically typed languages may be rooted in additional challenges that are caused by the lack of precise type information until the program is executed. Existing tools for dynamically typed languages mostly focus on mutation of literals because the type of literals are known statically. This paper presents SMutant, the first mutation testing tool for Smalltalk programs. In addition to literal replacement, SMutant supports many mutation operators that are commonly seen in tools for statically typed languages, such as operator replacement. Instead of applying mutations statically, SMutant postpones mutating until execution and applies mutations dynamically, when the types are available. Also, SMutant enables the user to define new mutation operators by sending a single message. The tool automatically generates code to support new mutation operators.
突变测试工具将被测系统和测试套件作为输入,并产生测试套件的突变分数作为输出。该工具通过对被测系统进行小的语法更改来系统地创建突变,并执行测试套件以确定哪些突变会给出与原始系统不同的结果。几乎所有的突变测试工具都是为静态类型语言开发的。动态类型语言缺乏工具的根源可能是由于在程序执行之前缺乏精确的类型信息而造成的额外挑战。现有的动态类型语言工具主要关注文字的变异,因为文字的类型是静态已知的。本文介绍了SMutant, Smalltalk程序的第一个突变测试工具。除了文字替换之外,SMutant还支持许多在静态类型语言的工具中常见的突变操作符,例如操作符替换。SMutant不是静态地应用突变,而是将突变推迟到执行时,并在类型可用时动态地应用突变。此外,SMutant允许用户通过发送一条消息来定义新的突变操作符。该工具自动生成代码以支持新的突变操作符。
{"title":"SMutant: a tool for type-sensitive mutation testing in a dynamic language","authors":"Miloš Gligorić, Sandro Badame, Ralph E. Johnson","doi":"10.1145/2025113.2025181","DOIUrl":"https://doi.org/10.1145/2025113.2025181","url":null,"abstract":"A mutation testing tool takes as input a system under test and a test suite and produces as output the mutation score of the test suite. The tool systematically creates mutants by making small syntactic changes to the system under test and executes the test suite to determine which mutants give different results from the original system. Almost all mutation testing tools have been developed for statically typed languages. The lack of tools for dynamically typed languages may be rooted in additional challenges that are caused by the lack of precise type information until the program is executed. Existing tools for dynamically typed languages mostly focus on mutation of literals because the type of literals are known statically.\u0000 This paper presents SMutant, the first mutation testing tool for Smalltalk programs. In addition to literal replacement, SMutant supports many mutation operators that are commonly seen in tools for statically typed languages, such as operator replacement. Instead of applying mutations statically, SMutant postpones mutating until execution and applies mutations dynamically, when the types are available. Also, SMutant enables the user to define new mutation operators by sending a single message. The tool automatically generates code to support new mutation operators.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117350034","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}
引用次数: 11
Cross-library API recommendation using web search engines 使用web搜索引擎推荐跨库API
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025197
Wujie Zheng, Qirun Zhang, Michael R. Lyu
Software systems are often built upon third party libraries. Developers may replace an old library with a new library, for the consideration of functionality, performance, security, and so on. It is tedious to learn the often complex APIs in the new library from the scratch. Instead, developers may identify the suitable APIs in the old library, and then find counterparts of these APIs in the new library. However, there is typically no such cross-references for APIs in different libraries. Previous work on automatic API recommendation often recommends related APIs in the same library. In this paper, we propose to mine search results of Web search engines to recommend related APIs of different libraries. In particular, we use Web search engines to collect relevant Web search results of a given API in the old library, and then recommend API candidates in the new library that are frequently appeared in the Web search results. Preliminary results of generating related C# APIs for the APIs in JDK show the feasibility of our approach.
软件系统通常建立在第三方库的基础上。出于对功能、性能、安全性等方面的考虑,开发人员可能会用新库替换旧库。从头开始学习新库中通常很复杂的api是很乏味的。相反,开发人员可以在旧库中识别合适的api,然后在新库中找到这些api的对应物。但是,不同库中的api通常没有这样的交叉引用。以前关于自动API推荐的工作通常会推荐同一库中的相关API。本文提出通过挖掘Web搜索引擎的搜索结果来推荐不同库的相关api。特别是,我们使用Web搜索引擎收集旧库中给定API的相关Web搜索结果,然后推荐在Web搜索结果中频繁出现的新库中的候选API。为JDK中的api生成相关c# api的初步结果显示了我们方法的可行性。
{"title":"Cross-library API recommendation using web search engines","authors":"Wujie Zheng, Qirun Zhang, Michael R. Lyu","doi":"10.1145/2025113.2025197","DOIUrl":"https://doi.org/10.1145/2025113.2025197","url":null,"abstract":"Software systems are often built upon third party libraries. Developers may replace an old library with a new library, for the consideration of functionality, performance, security, and so on. It is tedious to learn the often complex APIs in the new library from the scratch. Instead, developers may identify the suitable APIs in the old library, and then find counterparts of these APIs in the new library. However, there is typically no such cross-references for APIs in different libraries. Previous work on automatic API recommendation often recommends related APIs in the same library. In this paper, we propose to mine search results of Web search engines to recommend related APIs of different libraries. In particular, we use Web search engines to collect relevant Web search results of a given API in the old library, and then recommend API candidates in the new library that are frequently appeared in the Web search results. Preliminary results of generating related C# APIs for the APIs in JDK show the feasibility of our approach.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"137 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122435499","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}
引用次数: 41
Modeling the HTML DOM and browser API in static analysis of JavaScript web applications 在JavaScript web应用程序的静态分析中对HTML DOM和浏览器API进行建模
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025125
S. Jensen, Magnus Madsen, Anders Møller
Developers of JavaScript web applications have little tool support for catching errors early in development. In comparison, an abundance of tools exist for statically typed languages, including sophisticated integrated development environments and specialized static analyses. Transferring such technologies to the domain of JavaScript web applications is challenging. In this paper, we discuss the challenges, which include the dynamic aspects of JavaScript and the complex interactions between JavaScript, HTML, and the browser. From this, we present the first static analysis that is capable of reasoning about the flow of control and data in modern JavaScript applications that interact with the HTML DOM and browser API. One application of such a static analysis is to detect type-related and dataflow-related programming errors. We report on experiments with a range of modern web applications, including Chrome Experiments and IE Test Drive applications, to measure the precision and performance of the technique. The experiments indicate that the analysis is able to show absence of errors related to missing object properties and to identify dead and unreachable code. By measuring the precision of the types inferred for object properties, the analysis is precise enough to show that most expressions have unique types. By also producing precise call graphs, the analysis additionally shows that most invocations in the programs are monomorphic. We furthermore study the usefulness of the analysis to detect spelling errors in the code. Despite the encouraging results, not all problems are solved and some of the experiments indicate a potential for improvement, which allows us to identify central remaining challenges and outline directions for future work.
JavaScript web应用程序的开发人员很少有工具支持在开发早期捕获错误。相比之下,针对静态类型语言存在大量的工具,包括复杂的集成开发环境和专门的静态分析。将这些技术转移到JavaScript web应用程序领域是具有挑战性的。在本文中,我们讨论了挑战,包括JavaScript的动态方面以及JavaScript、HTML和浏览器之间复杂的交互。由此,我们提出了第一个静态分析,它能够推理出与HTML DOM和浏览器API交互的现代JavaScript应用程序中的控制流和数据流。这种静态分析的一个应用是检测与类型相关和与数据流相关的编程错误。我们报告了一系列现代web应用程序的实验,包括Chrome实验和IE测试驱动应用程序,以衡量该技术的精度和性能。实验表明,该分析能够显示缺少与对象属性相关的错误,并识别出死代码和不可达代码。通过测量为对象属性推断的类型的精度,分析足够精确,可以显示大多数表达式具有唯一的类型。通过生成精确的调用图,分析还表明程序中的大多数调用都是单态的。我们进一步研究了分析在检测代码中的拼写错误方面的有用性。尽管取得了令人鼓舞的结果,但并非所有问题都得到了解决,一些实验表明有改进的潜力,这使我们能够确定仍然存在的主要挑战并概述未来工作的方向。
{"title":"Modeling the HTML DOM and browser API in static analysis of JavaScript web applications","authors":"S. Jensen, Magnus Madsen, Anders Møller","doi":"10.1145/2025113.2025125","DOIUrl":"https://doi.org/10.1145/2025113.2025125","url":null,"abstract":"Developers of JavaScript web applications have little tool support for catching errors early in development. In comparison, an abundance of tools exist for statically typed languages, including sophisticated integrated development environments and specialized static analyses. Transferring such technologies to the domain of JavaScript web applications is challenging. In this paper, we discuss the challenges, which include the dynamic aspects of JavaScript and the complex interactions between JavaScript, HTML, and the browser. From this, we present the first static analysis that is capable of reasoning about the flow of control and data in modern JavaScript applications that interact with the HTML DOM and browser API.\u0000 One application of such a static analysis is to detect type-related and dataflow-related programming errors. We report on experiments with a range of modern web applications, including Chrome Experiments and IE Test Drive applications, to measure the precision and performance of the technique. The experiments indicate that the analysis is able to show absence of errors related to missing object properties and to identify dead and unreachable code. By measuring the precision of the types inferred for object properties, the analysis is precise enough to show that most expressions have unique types. By also producing precise call graphs, the analysis additionally shows that most invocations in the programs are monomorphic. We furthermore study the usefulness of the analysis to detect spelling errors in the code. Despite the encouraging results, not all problems are solved and some of the experiments indicate a potential for improvement, which allows us to identify central remaining challenges and outline directions for future work.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114276705","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}
引用次数: 119
On the congruence of modularity and code coupling 论模块化与代码耦合的同余性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025162
Fabian Beck, S. Diehl
Software systems are modularized to make their inherent complexity manageable. While there exists a set of well-known principles that may guide software engineers to design the modules of a software system, we do not know which principles are followed in practice. In a study based on 16 open source projects, we look at different kinds of coupling concepts between source code entities, including structural dependencies, fan-out similarity, evolutionary coupling, code ownership, code clones, and semantic similarity. The congruence between these coupling concepts and the modularization of the system hints at the modularity principles used in practice. Furthermore, the results provide insights on how to support developers to modularize software systems.
软件系统是模块化的,以使其固有的复杂性易于管理。虽然存在一组众所周知的原则,可以指导软件工程师设计软件系统的模块,但我们不知道在实践中遵循哪些原则。在一项基于16个开源项目的研究中,我们研究了源代码实体之间不同类型的耦合概念,包括结构依赖性、扇形相似性、进化耦合、代码所有权、代码克隆和语义相似性。这些耦合概念与系统模块化之间的一致性暗示了实践中使用的模块化原则。此外,结果提供了如何支持开发人员模块化软件系统的见解。
{"title":"On the congruence of modularity and code coupling","authors":"Fabian Beck, S. Diehl","doi":"10.1145/2025113.2025162","DOIUrl":"https://doi.org/10.1145/2025113.2025162","url":null,"abstract":"Software systems are modularized to make their inherent complexity manageable. While there exists a set of well-known principles that may guide software engineers to design the modules of a software system, we do not know which principles are followed in practice. In a study based on 16 open source projects, we look at different kinds of coupling concepts between source code entities, including structural dependencies, fan-out similarity, evolutionary coupling, code ownership, code clones, and semantic similarity. The congruence between these coupling concepts and the modularization of the system hints at the modularity principles used in practice. Furthermore, the results provide insights on how to support developers to modularize software systems.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130220214","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}
引用次数: 73
PASTE'11: Proceedings of the 10th ACM sigplan-sigsoft workshop on program analysis for software tools and engineering 第10届ACM sigplan-sigsoft软件工具与工程程序分析研讨会论文集
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025210
Jeff Foster, L. Pollock
The ACM SIGPLAN-SIGSOFT PASTE Workshop presents exciting research, empirical results, and new directions in Program Analysis for Software Tools and Engineering. The program includes two technical sessions as well as a keynote talk on program synthesis for automating end-user programming and education.
ACM SIGPLAN-SIGSOFT PASTE研讨会在软件工具和工程的程序分析方面展示了令人兴奋的研究、实证结果和新方向。该计划包括两个技术会议,以及一个关于自动化最终用户编程和教育的程序合成的主题演讲。
{"title":"PASTE'11: Proceedings of the 10th ACM sigplan-sigsoft workshop on program analysis for software tools and engineering","authors":"Jeff Foster, L. Pollock","doi":"10.1145/2025113.2025210","DOIUrl":"https://doi.org/10.1145/2025113.2025210","url":null,"abstract":"The ACM SIGPLAN-SIGSOFT PASTE Workshop presents exciting research, empirical results, and new directions in Program Analysis for Software Tools and Engineering. The program includes two technical sessions as well as a keynote talk on program synthesis for automating end-user programming and education.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129611073","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Inferring data polymorphism in systems code 推断系统代码中的数据多态性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025159
Brian Hackett, A. Aiken
We describe techniques for analyzing data polymorphism in C, and show that understanding data polymorphism is important for statically verifying type casts in the Linux kernel, where our techniques prove the safety of 75% of downcasts to structure types, out of a population of 28767. We also discuss prevalent patterns of data polymorphism in Linux, including code patterns we can handle and those we cannot.
我们描述了在C语言中分析数据多态性的技术,并展示了理解数据多态性对于在Linux内核中静态验证类型强制转换非常重要,在Linux内核中,我们的技术证明了在28767个类型中,75%的向下强制转换为结构类型是安全的。我们还讨论了Linux中流行的数据多态性模式,包括我们可以处理和不能处理的代码模式。
{"title":"Inferring data polymorphism in systems code","authors":"Brian Hackett, A. Aiken","doi":"10.1145/2025113.2025159","DOIUrl":"https://doi.org/10.1145/2025113.2025159","url":null,"abstract":"We describe techniques for analyzing data polymorphism in C, and show that understanding data polymorphism is important for statically verifying type casts in the Linux kernel, where our techniques prove the safety of 75% of downcasts to structure types, out of a population of 28767. We also discuss prevalent patterns of data polymorphism in Linux, including code patterns we can handle and those we cannot.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117258617","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
Path exploration based on symbolic output 基于符号输出的路径探索
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025152
Dawei Qi, Hoang D. T. Nguyen, Abhik Roychoudhury
Efficient program path exploration is important for many software engineering activities such as testing, debugging and verification. However, enumerating all paths of a program is prohibitively expensive. In this paper, we develop a partitioning of program paths based on the program output. Two program paths are placed in the same partition if they derive the output similarly, that is, the symbolic expression connecting the output with the inputs is the same in both paths. Our grouping of paths is gradually created by a smart path exploration. Our experiments show the benefits of the proposed pathexploration in test-suite construction. Our path partitioning produces a semantic signature of a program --- describing all the different symbolic expressions that the output can assume along different program paths. To reason about changes between program versions, we can therefore analyze their semantic signatures. In particular, we demonstrate the applications of our path partitioning in debugging of software regressions.
有效的程序路径探索对于许多软件工程活动,如测试、调试和验证是重要的。然而,枚举程序的所有路径是非常昂贵的。本文提出了一种基于程序输出的程序路径划分方法。如果两个程序路径导出的输出相似,即连接输出和输入的符号表达式在两个路径中是相同的,则将它们放在同一个分区中。我们的路径分组是通过智能路径探索逐步创建的。我们的实验显示了在测试套件构建中提出的路径探索的好处。我们的路径划分产生一个程序的语义签名——描述沿着不同的程序路径输出的所有不同的符号表达式。因此,为了推断程序版本之间的变化,我们可以分析它们的语义签名。特别地,我们演示了我们的路径划分在软件回归调试中的应用。
{"title":"Path exploration based on symbolic output","authors":"Dawei Qi, Hoang D. T. Nguyen, Abhik Roychoudhury","doi":"10.1145/2025113.2025152","DOIUrl":"https://doi.org/10.1145/2025113.2025152","url":null,"abstract":"Efficient program path exploration is important for many software engineering activities such as testing, debugging and verification. However, enumerating all paths of a program is prohibitively expensive. In this paper, we develop a partitioning of program paths based on the program output. Two program paths are placed in the same partition if they derive the output similarly, that is, the symbolic expression connecting the output with the inputs is the same in both paths. Our grouping of paths is gradually created by a smart path exploration. Our experiments show the benefits of the proposed pathexploration in test-suite construction.\u0000 Our path partitioning produces a semantic signature of a program --- describing all the different symbolic expressions that the output can assume along different program paths. To reason about changes between program versions, we can therefore analyze their semantic signatures. In particular, we demonstrate the applications of our path partitioning in debugging of software regressions.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126585435","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}
引用次数: 42
Testing software in age of data privacy: a balancing act 在数据隐私时代测试软件:一种平衡行为
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025143
Kunal Taneja, M. Grechanik, R. Ghani, Tao Xie
Database-centric applications (DCAs) are common in enterprise computing, and they use nontrivial databases. Testing of DCAs is increasingly outsourced to test centers in order to achieve lower cost and higher quality. When proprietary DCAs are released, their databases should also be made available to test engineers. However, different data privacy laws prevent organizations from sharing this data with test centers because databases contain sensitive information. Currently, testing is performed with anonymized data, which often leads to worse test coverage (such as code coverage) and fewer uncovered faults, thereby reducing the quality of DCAs and obliterating benefits of test outsourcing. To address this issue, we offer a novel approach that combines program analysis with a new data privacy framework that we design to address constraints of software testing. With our approach, organizations can balance the level of privacy with needs of testing. We have built a tool for our approach and applied it to nontrivial Java DCAs. Our results show that test coverage can be preserved at a higher level by anonymizing data based on their effect on corresponding DCAs.
以数据库为中心的应用程序(dca)在企业计算中很常见,它们使用重要的数据库。为了降低成本和提高质量,dca的测试越来越多地外包给测试中心。当专有dca发布时,它们的数据库也应该提供给测试工程师。然而,不同的数据隐私法律禁止组织与测试中心共享这些数据,因为数据库包含敏感信息。目前,测试是使用匿名数据执行的,这通常会导致较差的测试覆盖率(例如代码覆盖率)和较少的未发现的错误,从而降低dca的质量并消除测试外包的好处。为了解决这个问题,我们提供了一种新颖的方法,将程序分析与我们设计的新的数据隐私框架相结合,以解决软件测试的约束。使用我们的方法,组织可以在隐私级别和测试需求之间取得平衡。我们已经为我们的方法构建了一个工具,并将其应用于重要的Java dca。我们的结果表明,通过基于数据对相应dca的影响对数据进行匿名化,可以将测试覆盖率保持在更高的水平。
{"title":"Testing software in age of data privacy: a balancing act","authors":"Kunal Taneja, M. Grechanik, R. Ghani, Tao Xie","doi":"10.1145/2025113.2025143","DOIUrl":"https://doi.org/10.1145/2025113.2025143","url":null,"abstract":"Database-centric applications (DCAs) are common in enterprise computing, and they use nontrivial databases. Testing of DCAs is increasingly outsourced to test centers in order to achieve lower cost and higher quality. When proprietary DCAs are released, their databases should also be made available to test engineers. However, different data privacy laws prevent organizations from sharing this data with test centers because databases contain sensitive information. Currently, testing is performed with anonymized data, which often leads to worse test coverage (such as code coverage) and fewer uncovered faults, thereby reducing the quality of DCAs and obliterating benefits of test outsourcing. To address this issue, we offer a novel approach that combines program analysis with a new data privacy framework that we design to address constraints of software testing. With our approach, organizations can balance the level of privacy with needs of testing. We have built a tool for our approach and applied it to nontrivial Java DCAs. Our results show that test coverage can be preserved at a higher level by anonymizing data based on their effect on corresponding DCAs.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123157839","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}
引用次数: 34
Social sensing: when users become monitors 社会感知:当用户成为监视器时
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025196
Raian Ali, C. Solís, M. Salehie, Inah Omoronyia, B. Nuseibeh, W. Maalej
Adaptation requires a system to monitor its operational context to ensure that when changes occur, a suitable adaptation action is planned and taken at runtime. The ultimate goal of adaptation is that users get their dynamic requirements met efficiently and correctly. Context changes and users' judgment of the role of the system in meeting their requirements are drivers for adaptation. In many cases, these drivers are hard to identify by designers at design time and hard to monitor by the use of exclusively technological means by the system at runtime. In this paper, we propose Social Sensing as the activity performed by users who act as monitors and provide information needed for adaptation at runtime. Such information helps the system cope with technology limitations and designers' uncertainty. We discuss the motivation and foundations of Social Sensing and outline a set of research challenges to address in future work.
适应需要系统监视其操作上下文,以确保在发生更改时,计划并在运行时采取适当的适应操作。自适应的最终目的是使用户的动态需求得到有效、正确的满足。环境变化和用户对系统在满足其需求方面的作用的判断是适应的驱动因素。在许多情况下,这些驱动程序在设计时很难被设计者识别,在运行时也很难被系统使用专门的技术手段来监控。在本文中,我们提出社会感知作为由用户执行的活动,用户充当监视器并在运行时提供适应所需的信息。这些信息有助于系统应对技术限制和设计人员的不确定性。我们讨论了社会感知的动机和基础,并概述了未来工作中需要解决的一系列研究挑战。
{"title":"Social sensing: when users become monitors","authors":"Raian Ali, C. Solís, M. Salehie, Inah Omoronyia, B. Nuseibeh, W. Maalej","doi":"10.1145/2025113.2025196","DOIUrl":"https://doi.org/10.1145/2025113.2025196","url":null,"abstract":"Adaptation requires a system to monitor its operational context to ensure that when changes occur, a suitable adaptation action is planned and taken at runtime. The ultimate goal of adaptation is that users get their dynamic requirements met efficiently and correctly. Context changes and users' judgment of the role of the system in meeting their requirements are drivers for adaptation. In many cases, these drivers are hard to identify by designers at design time and hard to monitor by the use of exclusively technological means by the system at runtime. In this paper, we propose Social Sensing as the activity performed by users who act as monitors and provide information needed for adaptation at runtime. Such information helps the system cope with technology limitations and designers' uncertainty. We discuss the motivation and foundations of Social Sensing and outline a set of research challenges to address in future work.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117178319","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}
引用次数: 60
Taming uncertainty in self-adaptive software 自适应软件中的不确定性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025147
N. Esfahani, Ehsan Kouroshfar, S. Malek
Self-adaptation endows a software system with the ability to satisfy certain objectives by automatically modifying its behavior. While many promising approaches for the construction of self-adaptive software systems have been developed, the majority of them ignore the uncertainty underlying the adaptation decisions. This has been one of the key obstacles to wide-spread adoption of self-adaption techniques in risk-averse real-world settings. In this paper, we describe an approach, called POssIbilistic SElf-aDaptation (POISED), for tackling the challenge posed by uncertainty in making adaptation decisions. POISED builds on possibility theory to assess both the positive and negative consequences of uncertainty. It makes adaptation decisions that result in the best range of potential behavior. We demonstrate POISED's application to the problem of improving a software system's quality of service via runtime reconfiguration of its customizable software components. We have extensively evaluated POISED using a prototype of a robotic software system.
自适应赋予软件系统通过自动修改其行为来满足某些目标的能力。虽然已经开发了许多有前途的方法来构建自适应软件系统,但它们中的大多数都忽略了适应决策背后的不确定性。这一直是在规避风险的现实环境中广泛采用自适应技术的主要障碍之一。在本文中,我们描述了一种称为“可能性自我适应”的方法,用于解决做出适应决策时不确定性带来的挑战。《平衡》建立在可能性理论的基础上,以评估不确定性的积极和消极后果。它做出适应决策,从而产生最佳的潜在行为范围。我们演示了通过运行时重新配置可定制的软件组件来改善软件系统服务质量的问题。我们使用机器人软件系统的原型广泛评估了泰克。
{"title":"Taming uncertainty in self-adaptive software","authors":"N. Esfahani, Ehsan Kouroshfar, S. Malek","doi":"10.1145/2025113.2025147","DOIUrl":"https://doi.org/10.1145/2025113.2025147","url":null,"abstract":"Self-adaptation endows a software system with the ability to satisfy certain objectives by automatically modifying its behavior. While many promising approaches for the construction of self-adaptive software systems have been developed, the majority of them ignore the uncertainty underlying the adaptation decisions. This has been one of the key obstacles to wide-spread adoption of self-adaption techniques in risk-averse real-world settings. In this paper, we describe an approach, called POssIbilistic SElf-aDaptation (POISED), for tackling the challenge posed by uncertainty in making adaptation decisions. POISED builds on possibility theory to assess both the positive and negative consequences of uncertainty. It makes adaptation decisions that result in the best range of potential behavior. We demonstrate POISED's application to the problem of improving a software system's quality of service via runtime reconfiguration of its customizable software components. We have extensively evaluated POISED using a prototype of a robotic software system.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"65 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126631402","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}
引用次数: 141
期刊
ESEC/FSE '11
全部 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学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1