首页 > 最新文献

Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering最新文献

英文 中文
Integrating approaches for feature implementation 集成功能实现的方法
B. Behringer
Compositional and annotative approaches are two competing yet complementary candidates for implementing feature-oriented software product lines. While the former provides real modularity, the latter excels concerning expressiveness. To combine the respective advantages of compositional and annotative approaches, we aim at unifying their underlying representations by leveraging the snippet system instead of directories and files. In addition, to exploit this unification, we propose different editable views.
组合方法和注释方法是实现面向功能的软件产品线的两个相互竞争但又互补的候选方法。前者提供了真正的模块化,而后者在表达性方面更胜一筹。为了结合组合和注释方法各自的优势,我们的目标是通过利用片段系统而不是目录和文件来统一它们的底层表示。此外,为了利用这种统一,我们提出了不同的可编辑视图。
{"title":"Integrating approaches for feature implementation","authors":"B. Behringer","doi":"10.1145/2635868.2666605","DOIUrl":"https://doi.org/10.1145/2635868.2666605","url":null,"abstract":"Compositional and annotative approaches are two competing yet complementary candidates for implementing feature-oriented software product lines. While the former provides real modularity, the latter excels concerning expressiveness. To combine the respective advantages of compositional and annotative approaches, we aim at unifying their underlying representations by leveraging the snippet system instead of directories and files. In addition, to exploit this unification, we propose different editable views.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125457432","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}
引用次数: 8
Speculative reprogramming 投机重组
Marc Palyart, G. Murphy, E. Murphy-Hill, Xavier Blanc
Although software development involves making numerous decisions amongst alternatives, the design and implementation choices made typically become invisible; what a developer sees in the project's artifacts are the end result of all of the decisions. What if, instead, all of the choices made were tracked and it was easy for a developer to revisit a point where a decision was made and choose another alternative? What if the development environment could detect and suggest alternative choices? What if it was easy and low-cost to try another path? We explore the idea of speculative reprogramming that could support a what-if environment for the programming stages of software development.
尽管软件开发涉及在备选方案中做出许多决策,但所做的设计和实现选择通常是不可见的;开发人员在项目工件中看到的是所有决策的最终结果。相反,如果所有的选择都被跟踪,并且开发人员很容易重新审视做出决定的点并选择另一个替代方案,那会怎么样?如果开发环境可以检测并建议替代选择呢?如果尝试另一种方式既简单又低成本呢?我们探讨了推测性重编程的思想,它可以为软件开发的编程阶段提供一个假设环境。
{"title":"Speculative reprogramming","authors":"Marc Palyart, G. Murphy, E. Murphy-Hill, Xavier Blanc","doi":"10.1145/2635868.2666609","DOIUrl":"https://doi.org/10.1145/2635868.2666609","url":null,"abstract":"Although software development involves making numerous decisions amongst alternatives, the design and implementation choices made typically become invisible; what a developer sees in the project's artifacts are the end result of all of the decisions. What if, instead, all of the choices made were tracked and it was easy for a developer to revisit a point where a decision was made and choose another alternative? What if the development environment could detect and suggest alternative choices? What if it was easy and low-cost to try another path? We explore the idea of speculative reprogramming that could support a what-if environment for the programming stages of software development.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127496600","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
A path-sensitively sliced control flow graph 路径敏感的切片控制流图
J. Jaffar, V. Murali
We present a new graph representation of programs with specified target variables. These programs are intended to be processed by third-party applications querying target variables such as testers and verifiers. The representation embodies two concepts. First, it is path-sensitive in the sense that multiple nodes representing one program point may exist so that infeasible paths can be excluded. Second, and more importantly, it is sliced with respect to the target variables. This key step is founded on a novel idea introduced in this paper, called ``Tree Slicing'', and on the fact that slicing is more effective when there is path sensitivity. Compared to the traditional Control Flow Graph (CFG), the new graph may be bigger (due to path-sensitivity) or smaller (due to slicing). We show that it is not much bigger in practice, if at all. The main result however concerns its quality: third-party testers and verifiers perform substantially better on the new graph compared to the original CFG.
我们提出了具有指定目标变量的程序的一种新的图表示。这些程序旨在由第三方应用程序处理,这些应用程序查询目标变量,如测试人员和验证者。这种表示体现了两个概念。首先,它是路径敏感的,即可能存在代表一个程序点的多个节点,因此可以排除不可行的路径。其次,更重要的是,它是相对于目标变量的切片。这一关键步骤是建立在本文引入的一种称为“树切片”的新思想基础上的,并且当存在路径灵敏度时,切片更有效。与传统的控制流图(CFG)相比,新图可能更大(由于路径敏感性)或更小(由于切片)。我们表明,在实践中,如果有的话,它并没有大得多。然而,主要的结果与它的质量有关:第三方测试人员和验证者在新图形上的表现比原来的CFG要好得多。
{"title":"A path-sensitively sliced control flow graph","authors":"J. Jaffar, V. Murali","doi":"10.1145/2635868.2635884","DOIUrl":"https://doi.org/10.1145/2635868.2635884","url":null,"abstract":"We present a new graph representation of programs with specified target variables. These programs are intended to be processed by third-party applications querying target variables such as testers and verifiers. The representation embodies two concepts. First, it is path-sensitive in the sense that multiple nodes representing one program point may exist so that infeasible paths can be excluded. Second, and more importantly, it is sliced with respect to the target variables. This key step is founded on a novel idea introduced in this paper, called ``Tree Slicing'', and on the fact that slicing is more effective when there is path sensitivity. Compared to the traditional Control Flow Graph (CFG), the new graph may be bigger (due to path-sensitivity) or smaller (due to slicing). We show that it is not much bigger in practice, if at all. The main result however concerns its quality: third-party testers and verifiers perform substantially better on the new graph compared to the original CFG.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"38 16","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120855332","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}
引用次数: 8
XMLMate: evolutionary XML test generation XMLMate:进化的XML测试生成
Nikolas Havrikov, M. Höschele, Juan P. Galeotti, A. Zeller
Generating system inputs satisfying complex constraints is still a challenge for modern test generators. We present XMLMATE, a search-based test generator specially aimed at XML-based systems. XMLMATE leverages program structure, existing XML schemas, and XML inputs to generate, mutate, recombine, and evolve valid XML inputs. Over a set of seven XML-based systems, XMLMATE detected 31 new unique failures in production code, all triggered by system inputs and thus true alarms.
生成满足复杂约束的系统输入仍然是现代测试发生器面临的挑战。我们介绍XMLMATE,这是一个专门针对基于xml的系统的基于搜索的测试生成器。XMLMATE利用程序结构、现有XML模式和XML输入来生成、改变、重组和发展有效的XML输入。在一组7个基于xml的系统中,XMLMATE检测到生产代码中31个新的独特故障,所有这些故障都是由系统输入触发的,因此是真正的警报。
{"title":"XMLMate: evolutionary XML test generation","authors":"Nikolas Havrikov, M. Höschele, Juan P. Galeotti, A. Zeller","doi":"10.1145/2635868.2661666","DOIUrl":"https://doi.org/10.1145/2635868.2661666","url":null,"abstract":"Generating system inputs satisfying complex constraints is still a challenge for modern test generators. We present XMLMATE, a search-based test generator specially aimed at XML-based systems. XMLMATE leverages program structure, existing XML schemas, and XML inputs to generate, mutate, recombine, and evolve valid XML inputs. Over a set of seven XML-based systems, XMLMATE detected 31 new unique failures in production code, all triggered by system inputs and thus true alarms.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133867904","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
Methodology and culture: drivers of mediocrity in software engineering? 方法和文化:软件工程平庸的驱动因素?
M. Petre, D. Damian
Methodology implementation failure is attributed to developer mediocrity (by management) – not to organizational mediocrity (rigidity or control-driven, process-driven management), or to a lack of adaptation capability in the methodology. In supporting software construction as a creative process, however, we must promote excellence rather than conformity. We argue that we – through principled research -- must pay attention to the interplay between methodology and culture – the local adaptations needed to make things work, understand how the two co-evolve and how they may contribute together to software quality.
方法论实现的失败归因于开发人员的平庸(由管理层)——而不是组织的平庸(刚性或控制驱动的、过程驱动的管理),或者是方法论中缺乏适应能力。然而,在支持软件构建作为一个创造性过程的过程中,我们必须促进卓越而不是一致性。我们认为,通过有原则的研究,我们必须注意方法和文化之间的相互作用——使事情工作所需的局部适应,理解两者如何共同发展,以及它们如何共同促进软件质量。
{"title":"Methodology and culture: drivers of mediocrity in software engineering?","authors":"M. Petre, D. Damian","doi":"10.1145/2635868.2666607","DOIUrl":"https://doi.org/10.1145/2635868.2666607","url":null,"abstract":"Methodology implementation failure is attributed to developer mediocrity (by management) – not to organizational mediocrity (rigidity or control-driven, process-driven management), or to a lack of adaptation capability in the methodology. In supporting software construction as a creative process, however, we must promote excellence rather than conformity. We argue that we – through principled research -- must pay attention to the interplay between methodology and culture – the local adaptations needed to make things work, understand how the two co-evolve and how they may contribute together to software quality.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134142752","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}
引用次数: 2
An empirical analysis of flaky tests 薄片测试的实证分析
Q. Luo, Farah Hariri, Lamyaa Eloussi, D. Marinov
Regression testing is a crucial part of software development. It checks that software changes do not break existing functionality. An important assumption of regression testing is that test outcomes are deterministic: an unmodified test is expected to either always pass or always fail for the same code under test. Unfortunately, in practice, some tests often called flaky tests—have non-deterministic outcomes. Such tests undermine the regression testing as they make it difficult to rely on test results. We present the first extensive study of flaky tests. We study in detail a total of 201 commits that likely fix flaky tests in 51 open-source projects. We classify the most common root causes of flaky tests, identify approaches that could manifest flaky behavior, and describe common strategies that developers use to fix flaky tests. We believe that our insights and implications can help guide future research on the important topic of (avoiding) flaky tests.
回归测试是软件开发的关键部分。它检查软件更改不会破坏现有功能。回归测试的一个重要假设是测试结果是确定的:对于相同的测试代码,一个未修改的测试要么总是通过,要么总是失败。不幸的是,在实践中,一些测试(通常称为片状测试)具有不确定的结果。这样的测试破坏了回归测试,因为它们使依赖测试结果变得困难。我们提出了第一个片状测试的广泛研究。我们详细研究了51个开源项目中总共201个可能修复不可靠测试的提交。我们对不稳定测试最常见的根本原因进行了分类,确定了可能显示不稳定行为的方法,并描述了开发人员用于修复不稳定测试的通用策略。我们相信,我们的见解和启示可以帮助指导未来关于(避免)不可靠测试的重要主题的研究。
{"title":"An empirical analysis of flaky tests","authors":"Q. Luo, Farah Hariri, Lamyaa Eloussi, D. Marinov","doi":"10.1145/2635868.2635920","DOIUrl":"https://doi.org/10.1145/2635868.2635920","url":null,"abstract":"Regression testing is a crucial part of software development. It checks that software changes do not break existing functionality. An important assumption of regression testing is that test outcomes are deterministic: an unmodified test is expected to either always pass or always fail for the same code under test. Unfortunately, in practice, some tests often called flaky tests—have non-deterministic outcomes. Such tests undermine the regression testing as they make it difficult to rely on test results. We present the first extensive study of flaky tests. We study in detail a total of 201 commits that likely fix flaky tests in 51 open-source projects. We classify the most common root causes of flaky tests, identify approaches that could manifest flaky behavior, and describe common strategies that developers use to fix flaky tests. We believe that our insights and implications can help guide future research on the important topic of (avoiding) flaky tests.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132064964","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}
引用次数: 332
AI: a lightweight system for tolerating concurrency bugs AI:用于容忍并发错误的轻量级系统
Mingxing Zhang, Yongwei Wu, Shan Lu, Shanxiang Qi, Jinglei Ren, Weimin Zheng
Concurrency bugs are notoriously difficult to eradicate during software testing because of their non-deterministic nature. Moreover, fixing concurrency bugs is time-consuming and error-prone. Thus, tolerating concurrency bugs during production runs is an attractive complementary approach to bug detection and testing. Unfortunately, existing bug-tolerating tools are usually either 1) constrained in types of bugs they can handle or 2) requiring roll-back mechanism, which can hitherto not be fully achieved efficiently without hardware supports. This paper presents a novel program invariant, called Anticipating Invariant (AI), which can help anticipate bugs before any irreversible changes are made. Benefiting from this ability of anticipating bugs beforehand, our software-only system is able to forestall the failures with a simple thread stalling technique, which does not rely on execution roll-back and hence has good performance Experiments with 35 real-world concurrency bugs demonstrate that AI is capable of detecting and tolerating most types of concurrency bugs, including both atomicity and order violations. Two new bugs have been detected and confirmed by the corresponding developers. Performance evaluation with 6 representative parallel programs shows that AI incurs negligible overhead (<1%) for many nontrivial desktop and server applications.
众所周知,并发bug在软件测试期间很难根除,因为它们的不确定性。此外,修复并发错误既耗时又容易出错。因此,在生产运行期间容忍并发错误是对错误检测和测试的一种有吸引力的补充方法。不幸的是,现有的容错工具通常要么1)受限于它们可以处理的错误类型,要么2)需要回滚机制,如果没有硬件支持,这一点到目前为止还不能完全有效地实现。本文提出了一种新的程序不变量,称为预测不变量(AI),它可以帮助在做出任何不可逆的更改之前预测错误。得益于这种预先预测错误的能力,我们的纯软件系统能够通过简单的线程延迟技术来预防故障,这种技术不依赖于执行回滚,因此具有良好的性能。对35个现实世界并发错误的实验表明,人工智能能够检测和容忍大多数类型的并发错误,包括原子性和顺序违反。两个新的bug已经被相应的开发人员检测并确认。对6个具有代表性的并行程序的性能评估表明,对于许多重要的桌面和服务器应用程序,人工智能带来的开销可以忽略不计(<1%)。
{"title":"AI: a lightweight system for tolerating concurrency bugs","authors":"Mingxing Zhang, Yongwei Wu, Shan Lu, Shanxiang Qi, Jinglei Ren, Weimin Zheng","doi":"10.1145/2635868.2635885","DOIUrl":"https://doi.org/10.1145/2635868.2635885","url":null,"abstract":"Concurrency bugs are notoriously difficult to eradicate during software testing because of their non-deterministic nature. Moreover, fixing concurrency bugs is time-consuming and error-prone. Thus, tolerating concurrency bugs during production runs is an attractive complementary approach to bug detection and testing. Unfortunately, existing bug-tolerating tools are usually either 1) constrained in types of bugs they can handle or 2) requiring roll-back mechanism, which can hitherto not be fully achieved efficiently without hardware supports. This paper presents a novel program invariant, called Anticipating Invariant (AI), which can help anticipate bugs before any irreversible changes are made. Benefiting from this ability of anticipating bugs beforehand, our software-only system is able to forestall the failures with a simple thread stalling technique, which does not rely on execution roll-back and hence has good performance Experiments with 35 real-world concurrency bugs demonstrate that AI is capable of detecting and tolerating most types of concurrency bugs, including both atomicity and order violations. Two new bugs have been detected and confirmed by the corresponding developers. Performance evaluation with 6 representative parallel programs shows that AI incurs negligible overhead (<1%) for many nontrivial desktop and server applications.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116210973","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 17
CHOReOSynt: enforcing choreography realizability in the future internet CHOReOSynt:在未来的互联网中增强编排的可实现性
M. Autili, D. D. Ruscio, A. D. Salle, Alexander Perucci
Choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. A choreography formalizes the way business participants coordinate their interactions. The focus is not on orchestrations of the work performed within them, but rather on the exchange of messages between these participants. The problems usually addressed when considering a choreography-based specification of the system to be realized are realizability check, and conformance check. In this paper we describe the CHOReOSynt tool, which has been conceived to deal with an additional problem, namely, automated choreography enforcement. That is, when the goal is to actually realize a service choreography by reusing third-party services, their uncontrolled (or wrongly coordinated) composite behavior may show undesired interactions that preclude the choreography realization. CHOReOSynt solves this problem by automatically synthesizing additional software entities that, when interposed among the services, allow for preventing undesired interactions. Screencast: http://choreos.disim.univaq.it/downloads/
编排是一种紧急的服务工程(SE)方法,用于以分布式方式组合和协调服务。编排形式化了业务参与者协调其交互的方式。重点不在于在其中执行的工作的编排,而在于这些参与者之间的消息交换。在考虑要实现的基于编排的系统规范时,通常要解决的问题是可实现性检查和一致性检查。在本文中,我们描述了CHOReOSynt工具,该工具被设想用来处理另一个问题,即自动编排实施。也就是说,当目标是通过重用第三方服务来实际实现服务编排时,它们不受控制的(或错误协调的)组合行为可能会显示出不希望的交互,从而妨碍编排的实现。CHOReOSynt通过自动合成附加的软件实体来解决这个问题,当这些软件实体被插入到服务中时,可以防止不希望的交互。视频:http://choreos.disim.univaq.it/downloads/
{"title":"CHOReOSynt: enforcing choreography realizability in the future internet","authors":"M. Autili, D. D. Ruscio, A. D. Salle, Alexander Perucci","doi":"10.1145/2635868.2661667","DOIUrl":"https://doi.org/10.1145/2635868.2661667","url":null,"abstract":"Choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. A choreography formalizes the way business participants coordinate their interactions. The focus is not on orchestrations of the work performed within them, but rather on the exchange of messages between these participants. The problems usually addressed when considering a choreography-based specification of the system to be realized are realizability check, and conformance check. In this paper we describe the CHOReOSynt tool, which has been conceived to deal with an additional problem, namely, automated choreography enforcement. That is, when the goal is to actually realize a service choreography by reusing third-party services, their uncontrolled (or wrongly coordinated) composite behavior may show undesired interactions that preclude the choreography realization. CHOReOSynt solves this problem by automatically synthesizing additional software entities that, when interposed among the services, allow for preventing undesired interactions. Screencast: http://choreos.disim.univaq.it/downloads/","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130443658","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
Diagnose crashing faults on production software 诊断生产软件的崩溃故障
Rongxin Wu
Software crashes are severe manifestations of software faults. Especially, software crashes in production software usually result in bad user experiences. Therefore, crashing faults mostly are required to be fixed with a high priority. Diagnosing crashing faults on production software is non-trivial, due to the characteristics of production environment. In general, it is required to address two major challenges. First, crash reports in production software are usually numerous, since production software is used by a large number of end users in various environments and configurations. Especially, a single fault may manifest as different crash reports, which makes the prioritizing debugging and understanding faults difficult. Second, deployed software is required to run with minimal overhead and cannot afford a heavyweight instrumentation approach to collect program execution information. Furthermore, end users require that the logged information should not reveal sensitive production data. This thesis contributes for developing crashing fault diagnosis tools that can be used in production environment.
软件崩溃是软件故障的严重表现。特别是,生产软件中的软件崩溃通常会导致糟糕的用户体验。因此,崩溃故障大多需要高优先级修复。由于生产环境的特点,对生产软件的崩溃故障进行诊断是非常有意义的。总的来说,需要解决两大挑战。首先,生产软件中的崩溃报告通常很多,因为生产软件是由大量终端用户在各种环境和配置中使用的。特别是,单个故障可能表现为不同的崩溃报告,这给调试和理解故障的优先级排序带来了困难。其次,部署的软件需要以最小的开销运行,并且不能使用重量级的插装方法来收集程序执行信息。此外,终端用户要求记录的信息不应泄露敏感的生产数据。本文为开发可用于生产环境的崩溃故障诊断工具做出了贡献。
{"title":"Diagnose crashing faults on production software","authors":"Rongxin Wu","doi":"10.1145/2635868.2666601","DOIUrl":"https://doi.org/10.1145/2635868.2666601","url":null,"abstract":"Software crashes are severe manifestations of software faults. Especially, software crashes in production software usually result in bad user experiences. Therefore, crashing faults mostly are required to be fixed with a high priority. Diagnosing crashing faults on production software is non-trivial, due to the characteristics of production environment. In general, it is required to address two major challenges. First, crash reports in production software are usually numerous, since production software is used by a large number of end users in various environments and configurations. Especially, a single fault may manifest as different crash reports, which makes the prioritizing debugging and understanding faults difficult. Second, deployed software is required to run with minimal overhead and cannot afford a heavyweight instrumentation approach to collect program execution information. Furthermore, end users require that the logged information should not reveal sensitive production data. This thesis contributes for developing crashing fault diagnosis tools that can be used in production environment.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129454633","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}
引用次数: 5
Prioritizing the devices to test your app on: a case study of Android game apps 优先选择测试应用的设备:Android游戏应用的案例研究
Hammad Khalid, M. Nagappan, Emad Shihab, A. Hassan
Star ratings that are given by the users of mobile apps directly impact the revenue of its developers. At the same time, for popular platforms like Android, these apps must run on hundreds of devices increasing the chance for device-specific problems. Device-specific problems could impact the rating assigned to an app, given the varying capabilities of devices (e.g., hardware and software). To fix device-specific problems developers must test their apps on a large number of Android devices, which is costly and inefficient. Therefore, to help developers pick which devices to test their apps on, we propose using the devices that are mentioned in user reviews. We mine the user reviews of 99 free game apps and find that, apps receive user reviews from a large number of devices: between 38 to 132 unique devices. However, most of the reviews (80%) originate from a small subset of devices (on average, 33%). Furthermore, we find that developers of new game apps with no reviews can use the review data of similar game apps to select the devices that they should focus on first. Finally, among the set of devices that generate the most reviews for an app, we find that some devices tend to generate worse ratings than others. Our findings indicate that focusing on the devices with the most reviews (in particular the ones with negative ratings), developers can effectively prioritize their limited Quality Assurance (QA) efforts, since these devices have the greatest impact on ratings.
手机应用用户给出的星级评价直接影响着开发者的收益。与此同时,对于像Android这样的流行平台,这些应用必须在数百种设备上运行,这增加了出现特定设备问题的可能性。考虑到设备的不同功能(如硬件和软件),特定于设备的问题可能会影响分配给应用程序的评级。为了解决特定设备的问题,开发者必须在大量Android设备上测试他们的应用,这既昂贵又低效。因此,为了帮助开发者选择测试应用的设备,我们建议使用用户评论中提到的设备。我们对99款免费游戏应用的用户评论进行了分析,发现应用收到的用户评论来自38至132个不同设备。然而,大多数评论(80%)来自一小部分设备(平均33%)。此外,我们发现没有评论的新游戏应用的开发者可以使用类似游戏应用的评论数据来选择他们应该首先关注的设备。最后,在为应用产生最多评论的设备中,我们发现有些设备的评分往往比其他设备低。我们的研究结果表明,专注于评论最多的设备(特别是负面评价),开发者可以有效地优先考虑他们有限的质量保证(QA)工作,因为这些设备对评级的影响最大。
{"title":"Prioritizing the devices to test your app on: a case study of Android game apps","authors":"Hammad Khalid, M. Nagappan, Emad Shihab, A. Hassan","doi":"10.1145/2635868.2635909","DOIUrl":"https://doi.org/10.1145/2635868.2635909","url":null,"abstract":"Star ratings that are given by the users of mobile apps directly impact the revenue of its developers. At the same time, for popular platforms like Android, these apps must run on hundreds of devices increasing the chance for device-specific problems. Device-specific problems could impact the rating assigned to an app, given the varying capabilities of devices (e.g., hardware and software). To fix device-specific problems developers must test their apps on a large number of Android devices, which is costly and inefficient. Therefore, to help developers pick which devices to test their apps on, we propose using the devices that are mentioned in user reviews. We mine the user reviews of 99 free game apps and find that, apps receive user reviews from a large number of devices: between 38 to 132 unique devices. However, most of the reviews (80%) originate from a small subset of devices (on average, 33%). Furthermore, we find that developers of new game apps with no reviews can use the review data of similar game apps to select the devices that they should focus on first. Finally, among the set of devices that generate the most reviews for an app, we find that some devices tend to generate worse ratings than others. Our findings indicate that focusing on the devices with the most reviews (in particular the ones with negative ratings), developers can effectively prioritize their limited Quality Assurance (QA) efforts, since these devices have the greatest impact on ratings.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129775098","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}
引用次数: 90
期刊
Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
全部 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