首页 > 最新文献

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

英文 中文
Unsupervised Software-Specific Morphological Forms Inference from Informal Discussions 从非正式讨论中推断非监督软件特定的形态形式
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.48
Chunyang Chen, Zhenchang Xing, Ximing Wang
Informal discussions on social platforms (e.g., Stack Overflow) accumulates a large body of programming knowledge in natural language text. Natural language process (NLP) techniques can be exploited to harvest this knowledge base for software engineering tasks. To make an effective use of NLP techniques, consistent vocabulary is essential. Unfortunately, the same concepts are often intentionally or accidentally mentioned in many different morphological forms in informal discussions, such as abbreviations, synonyms and misspellings. Existing techniques to deal with such morphological forms are either designed for general English or predominantly rely on domain-specific lexical rules. A thesaurus of software-specific terms and commonly-used morphological forms is desirable for normalizing software engineering text, but very difficult to build manually. In this work, we propose an automatic approach to build such a thesaurus. Our approach identifies software-specific terms by contrasting software-specific and general corpuses, and infers morphological forms of software-specific terms by combining distributed word semantics, domain-specific lexical rules and transformations, and graph analysis of morphological relations. We evaluate the coverage and accuracy of the resulting thesaurus against community-curated lists of software-specific terms, abbreviations and synonyms. We also manually examine the correctness of the identified abbreviations and synonyms in our thesaurus. We demonstrate the usefulness of our thesaurus in a case study of normalizing questions from Stack Overflow and CodeProject.
社交平台上的非正式讨论(例如Stack Overflow)以自然语言文本积累了大量的编程知识。可以利用自然语言过程(NLP)技术来获取软件工程任务的知识库。为了有效地使用NLP技术,一致的词汇是必不可少的。不幸的是,在非正式的讨论中,相同的概念经常被有意或无意地以许多不同的形态提到,比如缩写、同义词和拼写错误。处理这种形态形式的现有技术要么是为通用英语设计的,要么主要依赖于特定领域的词汇规则。一个包含特定于软件的术语和常用的形态形式的同义词库对于规范化软件工程文本是非常必要的,但是手工构建非常困难。在这项工作中,我们提出了一种自动构建这样一个词库的方法。我们的方法通过对比特定于软件的语料库和一般语料库来识别特定于软件的术语,并通过结合分布式词语义、特定于领域的词汇规则和转换以及形态关系的图分析来推断特定于软件的术语的形态。我们对软件特定的术语、缩写和同义词的社区策划的列表评估结果同义词典的覆盖范围和准确性。我们还手动检查同义词库中已识别的缩写和同义词的正确性。通过对Stack Overflow和CodeProject的问题进行规范化的案例研究,我们展示了同义词库的有用性。
{"title":"Unsupervised Software-Specific Morphological Forms Inference from Informal Discussions","authors":"Chunyang Chen, Zhenchang Xing, Ximing Wang","doi":"10.1109/ICSE.2017.48","DOIUrl":"https://doi.org/10.1109/ICSE.2017.48","url":null,"abstract":"Informal discussions on social platforms (e.g., Stack Overflow) accumulates a large body of programming knowledge in natural language text. Natural language process (NLP) techniques can be exploited to harvest this knowledge base for software engineering tasks. To make an effective use of NLP techniques, consistent vocabulary is essential. Unfortunately, the same concepts are often intentionally or accidentally mentioned in many different morphological forms in informal discussions, such as abbreviations, synonyms and misspellings. Existing techniques to deal with such morphological forms are either designed for general English or predominantly rely on domain-specific lexical rules. A thesaurus of software-specific terms and commonly-used morphological forms is desirable for normalizing software engineering text, but very difficult to build manually. In this work, we propose an automatic approach to build such a thesaurus. Our approach identifies software-specific terms by contrasting software-specific and general corpuses, and infers morphological forms of software-specific terms by combining distributed word semantics, domain-specific lexical rules and transformations, and graph analysis of morphological relations. We evaluate the coverage and accuracy of the resulting thesaurus against community-curated lists of software-specific terms, abbreviations and synonyms. We also manually examine the correctness of the identified abbreviations and synonyms in our thesaurus. We demonstrate the usefulness of our thesaurus in a case study of normalizing questions from Stack Overflow and CodeProject.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"920 1","pages":"450-461"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85533259","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}
引用次数: 51
The Evolution of Continuous Experimentation in Software Product Development: From Data to a Data-Driven Organization at Scale 软件产品开发中持续实验的演变:从数据到大规模的数据驱动组织
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.76
Aleksander Fabijan, Pavel A. Dmitriev, H. H. Olsson, J. Bosch
Software development companies are increasingly aiming to become data-driven by trying to continuously experiment with the products used by their customers. Although familiar with the competitive edge that the A/B testing technology delivers, they seldom succeed in evolving and adopting the methodology. In this paper, and based on an exhaustive and collaborative case study research in a large software-intense company with highly developed experimentation culture, we present the evolution process of moving from ad-hoc customer data analysis towards continuous controlled experimentation at scale. Our main contribution is the "Experimentation Evolution Model" in which we detail three phases of evolution: technical, organizational and business evolution. With our contribution, we aim to provide guidance to practitioners on how to develop and scale continuous experimentation in software organizations with the purpose of becoming data-driven at scale.
软件开发公司越来越倾向于通过不断尝试客户使用的产品来实现数据驱动。虽然熟悉A/B测试技术带来的竞争优势,但他们很少成功地发展和采用这种方法。在本文中,基于对一家大型软件密集型公司的详尽和协作案例研究,该公司具有高度发达的实验文化,我们展示了从临时客户数据分析转向大规模连续控制实验的演变过程。我们的主要贡献是“实验进化模型”,其中我们详细描述了进化的三个阶段:技术、组织和业务进化。通过我们的贡献,我们的目标是为实践者提供关于如何在软件组织中开发和扩展持续实验的指导,以实现大规模的数据驱动。
{"title":"The Evolution of Continuous Experimentation in Software Product Development: From Data to a Data-Driven Organization at Scale","authors":"Aleksander Fabijan, Pavel A. Dmitriev, H. H. Olsson, J. Bosch","doi":"10.1109/ICSE.2017.76","DOIUrl":"https://doi.org/10.1109/ICSE.2017.76","url":null,"abstract":"Software development companies are increasingly aiming to become data-driven by trying to continuously experiment with the products used by their customers. Although familiar with the competitive edge that the A/B testing technology delivers, they seldom succeed in evolving and adopting the methodology. In this paper, and based on an exhaustive and collaborative case study research in a large software-intense company with highly developed experimentation culture, we present the evolution process of moving from ad-hoc customer data analysis towards continuous controlled experimentation at scale. Our main contribution is the \"Experimentation Evolution Model\" in which we detail three phases of evolution: technical, organizational and business evolution. With our contribution, we aim to provide guidance to practitioners on how to develop and scale continuous experimentation in software organizations with the purpose of becoming data-driven at scale.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"481 1","pages":"770-780"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76374741","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}
引用次数: 91
Analysis and Testing of Notifications in Android Wear Applications Android穿戴应用中通知的分析与测试
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.39
Hailong Zhang, A. Rountev
Android Wear (AW) is Google's platform for developing applications for wearable devices. Our goal is to make a first step toward a foundation for analysis and testing of AW apps. We focus on a core feature of such apps: notifications issued by a handheld device (e.g., a smartphone) and displayed on a wearable device (e.g., a smartwatch). We first define a formal semantics of AW notifications in order to capture the core features and behavior of the notification mechanism. Next, we describe a constraint-based static analysis to build a model of this run-time behavior. We then use this model to develop a novel testing tool for AW apps. The tool contains a testing framework together with components to support AW-specific coverage criteria and to automate the generation of GUI events on the wearable. These contributions advance the state of the art in the increasingly important area of software for wearable devices.
Android Wear是谷歌为可穿戴设备开发应用程序的平台。我们的目标是为分析和测试AW应用程序的基础迈出第一步。我们专注于这些应用的核心功能:由手持设备(如智能手机)发出并显示在可穿戴设备(如智能手表)上的通知。我们首先定义AW通知的正式语义,以便捕获通知机制的核心特性和行为。接下来,我们将描述基于约束的静态分析,以构建此运行时行为的模型。然后,我们使用该模型开发了一种用于AW应用程序的新型测试工具。该工具包含一个测试框架和组件,以支持特定于aw的覆盖标准,并自动生成可穿戴设备上的GUI事件。这些贡献推动了可穿戴设备软件这一日益重要的领域的发展。
{"title":"Analysis and Testing of Notifications in Android Wear Applications","authors":"Hailong Zhang, A. Rountev","doi":"10.1109/ICSE.2017.39","DOIUrl":"https://doi.org/10.1109/ICSE.2017.39","url":null,"abstract":"Android Wear (AW) is Google's platform for developing applications for wearable devices. Our goal is to make a first step toward a foundation for analysis and testing of AW apps. We focus on a core feature of such apps: notifications issued by a handheld device (e.g., a smartphone) and displayed on a wearable device (e.g., a smartwatch). We first define a formal semantics of AW notifications in order to capture the core features and behavior of the notification mechanism. Next, we describe a constraint-based static analysis to build a model of this run-time behavior. We then use this model to develop a novel testing tool for AW apps. The tool contains a testing framework together with components to support AW-specific coverage criteria and to automate the generation of GUI events on the wearable. These contributions advance the state of the art in the increasingly important area of software for wearable devices.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"34 1","pages":"347-357"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83736068","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
RADAR: A Lightweight Tool for Requirements and Architecture Decision Analysis RADAR:用于需求和架构决策分析的轻量级工具
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.57
Saheed A. Busari, Emmanuel Letier
Uncertainty and conflicting stakeholders' objectives make many requirements and architecture decisions particularly hard. Quantitative probabilistic models allow software architects to analyse such decisions using stochastic simulation and multi-objective optimisation, but the difficulty of elaborating the models is an obstacle to the wider adoption of such techniques. To reduce this obstacle, this paper presents a novel modelling language and analysis tool, called RADAR, intended to facilitate requirements and architecture decision analysis. The language has relations to quantitative AND/OR goal models used in requirements engineering and to feature models used in software product lines. However, it simplifies such models to a minimum set of language constructs essential for decision analysis. The paper presents RADAR's modelling language, automated support for decision analysis, and evaluates its application to four real-world examples.
不确定性和冲突的涉众目标使得许多需求和架构决策特别困难。定量概率模型允许软件架构师使用随机模拟和多目标优化来分析这些决策,但是详细阐述模型的困难是更广泛采用此类技术的障碍。为了减少这一障碍,本文提出了一种新的建模语言和分析工具,称为RADAR,旨在促进需求和体系结构决策分析。该语言与需求工程中使用的定量AND/OR目标模型以及软件产品线中使用的特性模型有关系。然而,它将这些模型简化为决策分析所必需的最小语言结构集。本文介绍了RADAR的建模语言,对决策分析的自动化支持,并评估了它在四个实际例子中的应用。
{"title":"RADAR: A Lightweight Tool for Requirements and Architecture Decision Analysis","authors":"Saheed A. Busari, Emmanuel Letier","doi":"10.1109/ICSE.2017.57","DOIUrl":"https://doi.org/10.1109/ICSE.2017.57","url":null,"abstract":"Uncertainty and conflicting stakeholders' objectives make many requirements and architecture decisions particularly hard. Quantitative probabilistic models allow software architects to analyse such decisions using stochastic simulation and multi-objective optimisation, but the difficulty of elaborating the models is an obstacle to the wider adoption of such techniques. To reduce this obstacle, this paper presents a novel modelling language and analysis tool, called RADAR, intended to facilitate requirements and architecture decision analysis. The language has relations to quantitative AND/OR goal models used in requirements engineering and to feature models used in software product lines. However, it simplifies such models to a minimum set of language constructs essential for decision analysis. The paper presents RADAR's modelling language, automated support for decision analysis, and evaluates its application to four real-world examples.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"125 1","pages":"552-562"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75812844","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
An Efficient, Robust, and Scalable Approach for Analyzing Interacting Android Apps 一个有效的,健壮的,可扩展的方法来分析交互Android应用程序
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.37
Yutaka Tsutano, Shakthi Bachala, W. Srisa-an, G. Rothermel, Jackson Dinh
When multiple apps on an Android platform interact, faults and security vulnerabilities can occur. Software engineers need to be able to analyze interacting apps to detect such problems. Current approaches for performing such analyses, however, do not scale to the numbers of apps that may need to be considered, and thus, are impractical for application to real-world scenarios. In this paper, we introduce JITANA, a program analysis framework designed to analyze multiple Android apps simultaneously. By using a classloader-based approach instead of a compiler-based approach such as SOOT, JITANA is able to simultaneously analyze large numbers of interacting apps, perform on-demand analysis of large libraries, and effectively analyze dynamically generated code. Empirical studies of JITANA show that it is substantially more efficient than a state-of-the-art approach, and that it can effectively and efficiently analyze complex apps including Facebook, Pokemon Go, and Pandora that the state-of-the-art approach cannot handle.
当Android平台上的多个应用程序交互时,可能会出现故障和安全漏洞。软件工程师需要能够分析交互应用程序以发现此类问题。然而,执行这种分析的当前方法不能扩展到可能需要考虑的应用程序的数量,因此,对于应用于实际场景来说是不切实际的。在本文中,我们介绍了JITANA,一个旨在同时分析多个Android应用程序的程序分析框架。通过使用基于类加载器的方法而不是基于编译器的方法(如SOOT), JITANA能够同时分析大量交互应用程序,对大型库执行按需分析,并有效地分析动态生成的代码。对JITANA的实证研究表明,它比最先进的方法要有效得多,而且它可以有效地分析最先进的方法无法处理的复杂应用程序,包括Facebook、Pokemon Go和Pandora。
{"title":"An Efficient, Robust, and Scalable Approach for Analyzing Interacting Android Apps","authors":"Yutaka Tsutano, Shakthi Bachala, W. Srisa-an, G. Rothermel, Jackson Dinh","doi":"10.1109/ICSE.2017.37","DOIUrl":"https://doi.org/10.1109/ICSE.2017.37","url":null,"abstract":"When multiple apps on an Android platform interact, faults and security vulnerabilities can occur. Software engineers need to be able to analyze interacting apps to detect such problems. Current approaches for performing such analyses, however, do not scale to the numbers of apps that may need to be considered, and thus, are impractical for application to real-world scenarios. In this paper, we introduce JITANA, a program analysis framework designed to analyze multiple Android apps simultaneously. By using a classloader-based approach instead of a compiler-based approach such as SOOT, JITANA is able to simultaneously analyze large numbers of interacting apps, perform on-demand analysis of large libraries, and effectively analyze dynamically generated code. Empirical studies of JITANA show that it is substantially more efficient than a state-of-the-art approach, and that it can effectively and efficiently analyze complex apps including Facebook, Pokemon Go, and Pandora that the state-of-the-art approach cannot handle.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"19 1","pages":"324-334"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82426998","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}
引用次数: 25
Code Defenders: Crowdsourcing Effective Tests and Subtle Mutants with a Mutation Testing Game 代码捍卫者:用突变测试游戏众包有效测试和微妙突变
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.68
J. Rojas, Thomas D. White, Benjamin S. Clegg, G. Fraser
Writing good software tests is difficult and not every developer's favorite occupation. Mutation testing aims to help by seeding artificial faults (mutants) that good tests should identify, and test generation tools help by providing automatically generated tests. However, mutation tools tend to produce huge numbers of mutants, many of which are trivial, redundant, or semantically equivalent to the original program, automated test generation tools tend to produce tests that achieve good code coverage, but are otherwise weak and have no clear purpose. In this paper, we present an approach based on gamification and crowdsourcing to produce better software tests and mutants: The Code Defenders web-based game lets teams of players compete over a program, where attackers try to create subtle mutants, which the defenders try to counter by writing strong tests. Experiments in controlled and crowdsourced scenarios reveal that writing tests as part of the game is more enjoyable, and that playing Code Defenders results in stronger test suites and mutants than those produced by automated tools.
编写好的软件测试是困难的,并且不是每个开发人员都喜欢的职业。突变测试的目的是通过播种好的测试应该识别的人工错误(突变)来提供帮助,而测试生成工具通过提供自动生成的测试来提供帮助。然而,突变工具倾向于产生大量的突变,其中许多是琐碎的,冗余的,或者在语义上等同于原始程序,自动化的测试生成工具倾向于产生实现良好代码覆盖的测试,但是在其他方面很弱并且没有明确的目的。在本文中,我们提出了一种基于游戏化和众包的方法来产生更好的软件测试和变种:基于网页的游戏《代码捍卫者》让玩家团队在程序中竞争,攻击者试图创造微妙的变种,防御者试图通过编写强大的测试来反击。在受控和众包场景中进行的实验表明,将编写测试作为游戏的一部分更令人愉快,并且与使用自动化工具生成的测试套件和变体相比,使用代码防御器会产生更强大的测试套件和变体。
{"title":"Code Defenders: Crowdsourcing Effective Tests and Subtle Mutants with a Mutation Testing Game","authors":"J. Rojas, Thomas D. White, Benjamin S. Clegg, G. Fraser","doi":"10.1109/ICSE.2017.68","DOIUrl":"https://doi.org/10.1109/ICSE.2017.68","url":null,"abstract":"Writing good software tests is difficult and not every developer's favorite occupation. Mutation testing aims to help by seeding artificial faults (mutants) that good tests should identify, and test generation tools help by providing automatically generated tests. However, mutation tools tend to produce huge numbers of mutants, many of which are trivial, redundant, or semantically equivalent to the original program, automated test generation tools tend to produce tests that achieve good code coverage, but are otherwise weak and have no clear purpose. In this paper, we present an approach based on gamification and crowdsourcing to produce better software tests and mutants: The Code Defenders web-based game lets teams of players compete over a program, where attackers try to create subtle mutants, which the defenders try to counter by writing strong tests. Experiments in controlled and crowdsourced scenarios reveal that writing tests as part of the game is more enjoyable, and that playing Code Defenders results in stronger test suites and mutants than those produced by automated tools.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"44 1","pages":"677-688"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80259615","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
How Do Developers Fix Cross-Project Correlated Bugs? A Case Study on the GitHub Scientific Python Ecosystem 开发者如何修复跨项目相关的bug ?GitHub科学Python生态系统案例研究
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.42
Wanwangying Ma, Lin Chen, X. Zhang, Yuming Zhou, Baowen Xu
GitHub, a popular social-software-development platform, has fostered a variety of software ecosystems where projects depend on one another and practitioners interact with each other. Projects within an ecosystem often have complex inter-dependencies that impose new challenges in bug reporting and fixing. In this paper, we conduct an empirical study on cross-project correlated bugs, i.e., causally related bugs reported to different projects, focusing on two aspects: 1) how developers track the root causes across projects, and 2) how the downstream developers coordinate to deal with upstream bugs. Through manual inspection of bug reports collected from the scientific Python ecosystem and an online survey with developers, this study reveals the common practices of developers and the various factors in fixing cross-project bugs. These findings provide implications for future software bug analysis in the scope of ecosystem, as well as shed light on the requirements of issue trackers for such bugs.
GitHub是一个流行的社交软件开发平台,它培育了各种各样的软件生态系统,项目相互依赖,从业者相互交流。生态系统中的项目通常具有复杂的相互依赖关系,这给bug报告和修复带来了新的挑战。在本文中,我们对跨项目相关bug(即报告给不同项目的因果相关bug)进行了实证研究,重点关注两个方面:1)开发人员如何跨项目跟踪根源,2)下游开发人员如何协调处理上游bug。通过手工检查从科学Python生态系统中收集的bug报告和对开发人员的在线调查,本研究揭示了开发人员的常见做法以及修复跨项目bug的各种因素。这些发现为未来在生态系统范围内的软件缺陷分析提供了启示,同时也阐明了对此类缺陷进行问题跟踪的需求。
{"title":"How Do Developers Fix Cross-Project Correlated Bugs? A Case Study on the GitHub Scientific Python Ecosystem","authors":"Wanwangying Ma, Lin Chen, X. Zhang, Yuming Zhou, Baowen Xu","doi":"10.1109/ICSE.2017.42","DOIUrl":"https://doi.org/10.1109/ICSE.2017.42","url":null,"abstract":"GitHub, a popular social-software-development platform, has fostered a variety of software ecosystems where projects depend on one another and practitioners interact with each other. Projects within an ecosystem often have complex inter-dependencies that impose new challenges in bug reporting and fixing. In this paper, we conduct an empirical study on cross-project correlated bugs, i.e., causally related bugs reported to different projects, focusing on two aspects: 1) how developers track the root causes across projects, and 2) how the downstream developers coordinate to deal with upstream bugs. Through manual inspection of bug reports collected from the scientific Python ecosystem and an online survey with developers, this study reveals the common practices of developers and the various factors in fixing cross-project bugs. These findings provide implications for future software bug analysis in the scope of ecosystem, as well as shed light on the requirements of issue trackers for such bugs.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"29 1","pages":"381-392"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75295897","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}
引用次数: 59
Software Development Waste 软件开发浪费
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.20
Todd Sedano, P. Ralph, Cécile Péraire
Context: Since software development is a complex socio-technical activity that involves coordinating different disciplines and skill sets, it provides ample opportunities for waste to emerge. Waste is any activity that produces no value for the customer or user. Objective: The purpose of this paper is to identify and describe different types of waste in software development. Method: Following Constructivist Grounded Theory, we conducted a two-year five-month participant-observation study of eight software development projects at Pivotal, a software development consultancy. We also interviewed 33 software engineers, interaction designers, and product managers, and analyzed one year of retrospection topics. We iterated between analysis and theoretical sampling until achieving theoretical saturation. Results: This paper introduces the first empirical waste taxonomy. It identifies nine wastes and explores their causes, underlying tensions, and overall relationship to the waste taxonomy found in Lean Software Development. Limitations: Grounded Theory does not support statistical generalization. While the proposed taxonomy appears widely applicable, organizations with different software development cultures may experience different waste types. Conclusion: Software development projects manifest nine types of waste: building the wrong feature or product, mismanaging the backlog, rework, unnecessarily complex solutions, extraneous cognitive load, psychological distress, waiting/multitasking, knowledge loss, and ineffective communication.
上下文:由于软件开发是一项复杂的社会技术活动,涉及到协调不同的规程和技能集,因此它为浪费提供了大量出现的机会。浪费是指不为顾客或用户创造价值的任何活动。目的:本文的目的是识别和描述软件开发中不同类型的浪费。方法:遵循建构主义扎根理论,我们在Pivotal(一家软件开发咨询公司)对八个软件开发项目进行了为期两年、为期五个月的参与者观察研究。我们还采访了33位软件工程师、交互设计师和产品经理,并分析了一年的回顾主题。我们在分析和理论采样之间反复迭代,直到达到理论饱和。结果:介绍了第一个经验废物分类方法。它确定了九种浪费,并探讨了它们的原因、潜在的紧张关系,以及与精益软件开发中发现的浪费分类的总体关系。局限性:扎根理论不支持统计泛化。虽然建议的分类法似乎广泛适用,但是具有不同软件开发文化的组织可能会遇到不同的浪费类型。结论:软件开发项目显示了九种类型的浪费:构建错误的特性或产品,对待办事项管理不当,返工,不必要的复杂解决方案,无关的认知负荷,心理困扰,等待/多任务处理,知识损失,以及无效的沟通。
{"title":"Software Development Waste","authors":"Todd Sedano, P. Ralph, Cécile Péraire","doi":"10.1109/ICSE.2017.20","DOIUrl":"https://doi.org/10.1109/ICSE.2017.20","url":null,"abstract":"Context: Since software development is a complex socio-technical activity that involves coordinating different disciplines and skill sets, it provides ample opportunities for waste to emerge. Waste is any activity that produces no value for the customer or user. Objective: The purpose of this paper is to identify and describe different types of waste in software development. Method: Following Constructivist Grounded Theory, we conducted a two-year five-month participant-observation study of eight software development projects at Pivotal, a software development consultancy. We also interviewed 33 software engineers, interaction designers, and product managers, and analyzed one year of retrospection topics. We iterated between analysis and theoretical sampling until achieving theoretical saturation. Results: This paper introduces the first empirical waste taxonomy. It identifies nine wastes and explores their causes, underlying tensions, and overall relationship to the waste taxonomy found in Lean Software Development. Limitations: Grounded Theory does not support statistical generalization. While the proposed taxonomy appears widely applicable, organizations with different software development cultures may experience different waste types. Conclusion: Software development projects manifest nine types of waste: building the wrong feature or product, mismanaging the backlog, rework, unnecessarily complex solutions, extraneous cognitive load, psychological distress, waiting/multitasking, knowledge loss, and ineffective communication.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"130-140"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88314778","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}
引用次数: 87
A Guided Genetic Algorithm for Automated Crash Reproduction 自动崩溃再现的引导遗传算法
Pub Date : 2017-05-20 DOI: 10.1109/ICSE.2017.27
Mozhan Soltani, Annibale Panichella, A. van Deursen
To reduce the effort developers have to make for crash debugging, researchers have proposed several solutions for automatic failure reproduction. Recent advances proposed the use of symbolic execution, mutation analysis, and directed model checking as underling techniques for post-failure analysis of crash stack traces. However, existing approaches still cannot reproduce many real-world crashes due to such limitations as environment dependencies, path explosion, and time complexity. To address these challenges, we present EvoCrash, a post-failure approach which uses a novel Guided Genetic Algorithm (GGA) to cope with the large search space characterizing real-world software programs. Our empirical study on three open-source systems shows that EvoCrash can replicate 41 (82%) of real-world crashes, 34 (89%) of which are useful reproductions for debugging purposes, outperforming the state-of-the-art in crash replication.
为了减少开发人员进行崩溃调试的工作量,研究人员提出了几种自动故障再现的解决方案。最近的进展提出使用符号执行、突变分析和定向模型检查作为崩溃堆栈轨迹失效后分析的基础技术。然而,由于环境依赖性、路径爆炸和时间复杂性等限制,现有的方法仍然无法重现许多现实世界的崩溃。为了解决这些挑战,我们提出了EvoCrash,这是一种失败后的方法,它使用一种新的引导遗传算法(GGA)来处理现实世界软件程序的大型搜索空间。我们对三个开源系统的实证研究表明,EvoCrash可以复制41个(82%)真实世界的崩溃,其中34个(89%)是用于调试目的的有用的复制,在崩溃复制方面优于最先进的技术。
{"title":"A Guided Genetic Algorithm for Automated Crash Reproduction","authors":"Mozhan Soltani, Annibale Panichella, A. van Deursen","doi":"10.1109/ICSE.2017.27","DOIUrl":"https://doi.org/10.1109/ICSE.2017.27","url":null,"abstract":"To reduce the effort developers have to make for crash debugging, researchers have proposed several solutions for automatic failure reproduction. Recent advances proposed the use of symbolic execution, mutation analysis, and directed model checking as underling techniques for post-failure analysis of crash stack traces. However, existing approaches still cannot reproduce many real-world crashes due to such limitations as environment dependencies, path explosion, and time complexity. To address these challenges, we present EvoCrash, a post-failure approach which uses a novel Guided Genetic Algorithm (GGA) to cope with the large search space characterizing real-world software programs. Our empirical study on three open-source systems shows that EvoCrash can replicate 41 (82%) of real-world crashes, 34 (89%) of which are useful reproductions for debugging purposes, outperforming the state-of-the-art in crash replication.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"4 1","pages":"209-220"},"PeriodicalIF":0.0,"publicationDate":"2017-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89561794","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}
引用次数: 44
Adaptive Coverage and Operational Profile-Based Testing for Reliability Improvement 自适应覆盖和基于操作概要的可靠性改进测试
Pub Date : 2017-05-01 DOI: 10.1109/ICSE.2017.56
A. Bertolino, Breno Miranda, R. Pietrantuono, S. Russo
We introduce covrel, an adaptive software testing approach based on the combined use of operational profile and coverage spectrum, with the ultimate goal of improving the delivered reliability of the program under test. Operational profile-based testing is a black-box technique that selects test cases having the largest impact on failure probability in operation, as such, it is considered well suited when reliability is a major concern. Program spectrum is a characterization of a program's behavior in terms of the code entities (e.g., branches, statements, functions) that are covered as the program executes. The driving idea of covrel is to complement operational profile information with white-box coverage measures based on count spectra, so as to dynamically select the most effective test cases for reliability improvement. In particular, we bias operational profile-based test selection towards those entities covered less frequently. We assess the approach by experiments with 18 versions from 4 subjects commonly used in software testing research, comparing results with traditional operational and coverage testing. Results show that exploiting operational and coverage data in a combined adaptive way actually pays in terms of reliability improvement, with covrel overcoming conventional operational testing in more than 80% of the cases.
我们介绍了covrel,一种基于操作概要和覆盖范围组合使用的自适应软件测试方法,其最终目标是提高被测程序的交付可靠性。基于操作概要文件的测试是一种黑盒技术,它选择对操作中失败概率影响最大的测试用例,因此,当可靠性是主要关注点时,它被认为非常适合。程序谱是根据程序执行时所涵盖的代码实体(例如,分支、语句、函数)来描述程序行为的特征。covrel的驱动思想是用基于计数谱的白盒覆盖度量来补充运行剖面信息,从而动态选择最有效的测试用例来提高可靠性。特别是,我们将基于操作概要文件的测试选择偏向于那些较少覆盖的实体。我们通过软件测试研究中常用的4个主题的18个版本的实验来评估该方法,并将结果与传统的操作测试和覆盖测试进行比较。结果表明,以组合自适应方式开发运行和覆盖数据实际上在可靠性提高方面是有回报的,在80%以上的情况下,covrel克服了常规的运行测试。
{"title":"Adaptive Coverage and Operational Profile-Based Testing for Reliability Improvement","authors":"A. Bertolino, Breno Miranda, R. Pietrantuono, S. Russo","doi":"10.1109/ICSE.2017.56","DOIUrl":"https://doi.org/10.1109/ICSE.2017.56","url":null,"abstract":"We introduce covrel, an adaptive software testing approach based on the combined use of operational profile and coverage spectrum, with the ultimate goal of improving the delivered reliability of the program under test. Operational profile-based testing is a black-box technique that selects test cases having the largest impact on failure probability in operation, as such, it is considered well suited when reliability is a major concern. Program spectrum is a characterization of a program's behavior in terms of the code entities (e.g., branches, statements, functions) that are covered as the program executes. The driving idea of covrel is to complement operational profile information with white-box coverage measures based on count spectra, so as to dynamically select the most effective test cases for reliability improvement. In particular, we bias operational profile-based test selection towards those entities covered less frequently. We assess the approach by experiments with 18 versions from 4 subjects commonly used in software testing research, comparing results with traditional operational and coverage testing. Results show that exploiting operational and coverage data in a combined adaptive way actually pays in terms of reliability improvement, with covrel overcoming conventional operational testing in more than 80% of the cases.","PeriodicalId":6505,"journal":{"name":"2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)","volume":"101 1","pages":"541-551"},"PeriodicalIF":0.0,"publicationDate":"2017-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80605621","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
期刊
2017 IEEE/ACM 39th 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