首页 > 最新文献

ESEC/FSE '11最新文献

英文 中文
On software component co-installability 关于软件组件的可共安装性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025149
R. D. Cosmo, Jérôme Vouillon
Modern software systems are built by composing components drawn from large repositories, whose size and complexity is increasing at a very fast pace. A fundamental challenge for the maintainability and the scalability of such software systems is the ability to quickly identify the components that can or cannot be installed together: this is the co-installability problem, which is related to boolean satisfiability and is known to be algorithmically hard. This paper develops a novel theoretical framework, based on formally certified. semantic preserving graph-theoretic transformations, that allows to associate to each concrete component repository a much smaller one with a simpler structure, but with equivalent co-installability properties. This smaller repository can be represented graphically, giving a concise view of the co-installability issues in the original repository, or used as a basis for various algorithms related to co-installability, like the efficient computation of strong conflicts between components. The proofs contained in this work have been machine checked in Coq.
现代软件系统是通过组合从大型存储库中提取的组件来构建的,这些存储库的大小和复杂性正在以非常快的速度增长。这种软件系统的可维护性和可伸缩性面临的一个基本挑战是快速识别可以或不可以一起安装的组件的能力:这是可共同安装性问题,它与布尔可满足性有关,并且已知在算法上是困难的。本文在正式认证的基础上,提出了一个新的理论框架。保持语义的图论转换,它允许将具有更简单结构的更小的组件存储库与每个具体的组件存储库关联,但具有等效的可共同安装属性。这个较小的存储库可以用图形表示,给出原始存储库中可共同安装性问题的简明视图,或者用作与可共同安装性相关的各种算法的基础,例如组件之间强冲突的有效计算。这项工作中包含的证明已经在Coq中进行了机器检查。
{"title":"On software component co-installability","authors":"R. D. Cosmo, Jérôme Vouillon","doi":"10.1145/2025113.2025149","DOIUrl":"https://doi.org/10.1145/2025113.2025149","url":null,"abstract":"Modern software systems are built by composing components drawn from large repositories, whose size and complexity is increasing at a very fast pace. A fundamental challenge for the maintainability and the scalability of such software systems is the ability to quickly identify the components that can or cannot be installed together: this is the co-installability problem, which is related to boolean satisfiability and is known to be algorithmically hard. This paper develops a novel theoretical framework, based on formally certified. semantic preserving graph-theoretic transformations, that allows to associate to each concrete component repository a much smaller one with a simpler structure, but with equivalent co-installability properties. This smaller repository can be represented graphically, giving a concise view of the co-installability issues in the original repository, or used as a basis for various algorithms related to co-installability, like the efficient computation of strong conflicts between components. The proofs contained in this work have been machine checked in Coq.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"9 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":"134299289","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}
引用次数: 36
Does adding manpower also affect quality?: an empirical, longitudinal analysis
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025128
Andrew Meneely, Pete Rotella, L. Williams
With each new developer to a software development team comes a greater challenge to manage the communication, coordination, and knowledge transfer amongst teammates. Fred Brooks discusses this challenge in The Mythical Man-Month by arguing that rapid team expansion can lead to a complex team organization structure. While Brooks focuses on productivity loss as the negative outcome, poor product quality is also a substantial concern. But if team expansion is unavoidable, can any quality impacts be mitigated? Our objective is to guide software engineering managers by empirically analyzing the effects of team size, expansion, and structure on product quality. We performed an empirical, longitudinal case study of a large Cisco networking product over a five year history. Over that time, the team underwent periods of no expansion, steady expansion, and accelerated expansion. Using team-level metrics, we quantified characteristics of team expansion, including team size, expansion rate, expansion acceleration, and modularity with respect to department designations. We examined statistical correlations between our monthly team-level metrics and monthly product-level metrics. Our results indicate that increased team size and linear growth are correlated with later periods of better product quality. However, periods of accelerated team expansion are correlated with later periods of reduced software quality. Furthermore, our linear regression prediction model based on team metrics was able to predict the product's post-release failure rate within a 95% prediction interval for 38 out of 40 months. Our analysis provides insight for project managers into how the expansion of development teams can impact product quality.
随着软件开发团队中每个新开发人员的加入,管理团队成员之间的沟通、协调和知识转移将面临更大的挑战。Fred Brooks在《人月神话》中讨论了这个挑战,他认为快速的团队扩张会导致复杂的团队组织结构。虽然布鲁克斯将生产力损失作为负面结果,但糟糕的产品质量也是一个重大问题。但是,如果团队扩张是不可避免的,质量影响是否可以减轻?我们的目标是通过经验分析团队规模、扩展和结构对产品质量的影响来指导软件工程经理。我们对一个大型思科网络产品进行了长达五年的纵向实证案例研究。在此期间,团队经历了不扩张、稳定扩张和加速扩张的时期。使用团队级别的度量,我们量化了团队扩展的特征,包括团队规模、扩展率、扩展加速和与部门指定相关的模块化。我们检查了每月团队级别指标和每月产品级别指标之间的统计相关性。我们的研究结果表明,团队规模的增加和线性增长与后期更好的产品质量相关。然而,加速团队扩张的时期与后期软件质量下降的时期是相关的。此外,我们基于团队指标的线性回归预测模型能够在95%的预测区间内预测40个月中的38个产品发布后的故障率。我们的分析为项目经理提供了关于开发团队的扩展如何影响产品质量的见解。
{"title":"Does adding manpower also affect quality?: an empirical, longitudinal analysis","authors":"Andrew Meneely, Pete Rotella, L. Williams","doi":"10.1145/2025113.2025128","DOIUrl":"https://doi.org/10.1145/2025113.2025128","url":null,"abstract":"With each new developer to a software development team comes a greater challenge to manage the communication, coordination, and knowledge transfer amongst teammates. Fred Brooks discusses this challenge in The Mythical Man-Month by arguing that rapid team expansion can lead to a complex team organization structure. While Brooks focuses on productivity loss as the negative outcome, poor product quality is also a substantial concern. But if team expansion is unavoidable, can any quality impacts be mitigated? Our objective is to guide software engineering managers by empirically analyzing the effects of team size, expansion, and structure on product quality. We performed an empirical, longitudinal case study of a large Cisco networking product over a five year history. Over that time, the team underwent periods of no expansion, steady expansion, and accelerated expansion. Using team-level metrics, we quantified characteristics of team expansion, including team size, expansion rate, expansion acceleration, and modularity with respect to department designations. We examined statistical correlations between our monthly team-level metrics and monthly product-level metrics. Our results indicate that increased team size and linear growth are correlated with later periods of better product quality. However, periods of accelerated team expansion are correlated with later periods of reduced software quality. Furthermore, our linear regression prediction model based on team metrics was able to predict the product's post-release failure rate within a 95% prediction interval for 38 out of 40 months. Our analysis provides insight for project managers into how the expansion of development teams can impact product quality.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"16 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":"130783044","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Tool support for UML-based specification and verification of role-based access control properties 工具支持基于uml的规范和基于角色的访问控制属性验证
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025190
Lionel Montrieux, M. Wermelinger, Y. Yu
It has been argued that security perspectives, of which access control is one, should be taken into account as early as possible in the software development process. Towards that goal, we present in this paper a tool supporting our modelling approach to specify and verify access control in accordance to the NIST standard Role-Based Access Control (RBAC). RBAC is centred on mapping users to their roles in an organisation, to make access control permissions easier to set and maintain. Our modelling approach uses only standard UML mechanisms, like metamodels and OCL constraints, and improves on existing approaches in various ways: designers don't have to learn new languages or adopt new tools or methodologies; user-role and role-permission assignments can be specified separately to be reused across models; access control is specified over class and activity diagrams, including 'anti-scenarios'; access control is automatically verified. The tool is built on top of an existing modelling IDE and allows for automatic verification of models according to our RBAC modelling approach, while providing users with the ability to easily identify and correct errors in the model when they are detected.
有人认为,在软件开发过程中应该尽早考虑安全角度(访问控制就是其中之一)。为了实现这一目标,我们在本文中提出了一个工具,支持我们的建模方法,根据NIST标准的基于角色的访问控制(RBAC)来指定和验证访问控制。RBAC的核心是将用户映射到他们在组织中的角色,使访问控制权限更容易设置和维护。我们的建模方法只使用标准的UML机制,如元模型和OCL约束,并以各种方式改进现有的方法:设计人员不必学习新的语言或采用新的工具或方法;用户角色和角色权限分配可以单独指定,以便跨模型重用;访问控制是在类和活动图上指定的,包括“反场景”;自动验证访问控制。该工具建立在现有的建模IDE之上,允许根据我们的RBAC建模方法自动验证模型,同时为用户提供在检测到模型错误时轻松识别和纠正模型错误的能力。
{"title":"Tool support for UML-based specification and verification of role-based access control properties","authors":"Lionel Montrieux, M. Wermelinger, Y. Yu","doi":"10.1145/2025113.2025190","DOIUrl":"https://doi.org/10.1145/2025113.2025190","url":null,"abstract":"It has been argued that security perspectives, of which access control is one, should be taken into account as early as possible in the software development process. Towards that goal, we present in this paper a tool supporting our modelling approach to specify and verify access control in accordance to the NIST standard Role-Based Access Control (RBAC). RBAC is centred on mapping users to their roles in an organisation, to make access control permissions easier to set and maintain. Our modelling approach uses only standard UML mechanisms, like metamodels and OCL constraints, and improves on existing approaches in various ways: designers don't have to learn new languages or adopt new tools or methodologies; user-role and role-permission assignments can be specified separately to be reused across models; access control is specified over class and activity diagrams, including 'anti-scenarios'; access control is automatically verified. The tool is built on top of an existing modelling IDE and allows for automatic verification of models according to our RBAC modelling approach, while providing users with the ability to easily identify and correct errors in the model when they are detected.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"6 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":"127844968","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}
引用次数: 9
Mitigating the confounding effects of program dependences for effective fault localization 减轻程序依赖的混淆效应,实现有效的故障定位
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025136
George K. Baah, Andy Podgurski, M. J. Harrold
Dynamic program dependences are recognized as important factors in software debugging because they contribute to triggering the effects of faults and propagating the effects to a program's output. The effects of dynamic dependences also produce significant confounding bias when statistically estimating the causal effect of a statement on the occurrence of program failures, which leads to poor fault localization results. This paper presents a novel causal-inference technique for fault localization that accounts for the effects of dynamic data and control dependences and thus, significantly reduces confounding bias during fault localization. The technique employs a new dependence-based causal model together with matching of test executions based on their dynamic dependences. The paper also presents empirical results indicating that the new technique performs significantly better than existing statistical fault-localization techniques as well as our previous fault localization technique based on causal-inference methodology.
动态程序依赖关系被认为是软件调试中的重要因素,因为它们有助于触发错误的影响并将影响传播到程序的输出。在统计估计语句对程序故障发生的因果关系时,动态依赖的影响也会产生显著的混淆偏差,从而导致较差的故障定位结果。本文提出了一种新的故障定位因果推理技术,该技术考虑了动态数据和控制依赖的影响,从而显著降低了故障定位过程中的混杂偏差。该技术采用了一种新的基于依赖的因果模型,并根据它们的动态依赖对测试执行进行匹配。实验结果表明,新方法的性能明显优于现有的统计故障定位技术和基于因果推理方法的故障定位技术。
{"title":"Mitigating the confounding effects of program dependences for effective fault localization","authors":"George K. Baah, Andy Podgurski, M. J. Harrold","doi":"10.1145/2025113.2025136","DOIUrl":"https://doi.org/10.1145/2025113.2025136","url":null,"abstract":"Dynamic program dependences are recognized as important factors in software debugging because they contribute to triggering the effects of faults and propagating the effects to a program's output. The effects of dynamic dependences also produce significant confounding bias when statistically estimating the causal effect of a statement on the occurrence of program failures, which leads to poor fault localization results. This paper presents a novel causal-inference technique for fault localization that accounts for the effects of dynamic data and control dependences and thus, significantly reduces confounding bias during fault localization. The technique employs a new dependence-based causal model together with matching of test executions based on their dynamic dependences. The paper also presents empirical results indicating that the new technique performs significantly better than existing statistical fault-localization techniques as well as our previous fault localization technique based on causal-inference methodology.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"9 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":"122110195","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}
引用次数: 70
Cross-layer modeler: a tool for flexible multilevel modeling with consistency checking 跨层建模器:具有一致性检查的灵活多级建模工具
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025189
Andreas Demuth, R. Lopez-Herrejon, Alexander Egyed
Model-driven engineering has become a popular methodology in software engineering. Most available modeling tools support the creation of models based on a fixed metamodel. Typically, tool users cannot change the metamodel to reflect domain changes or newly emerged requirements. As a consequence, an updated version of the tool with an evolved metamodel must be developed and models as well as constraints that ensure model consistency have to be co-evolved, often manually, to conform to the new metamodel. Both, tool evolution and the necessary co-evolutions, are time consuming and error prone tasks. Furthermore, common tools often restrict the number of metalevels that can be modeled and force modelers to use workarounds to express certain facts. To overcome these issues we present the Cross-Layer Modeler (XLM), a modeling tool that supports multilevel modeling and allows co-evolution of metamodels and models. The XLM automatically performs co-evolution of constraints and gives instant feedback about model consistency. We illustrate the novel modeling approach of our tool and discuss its main capabilities.
模型驱动工程已经成为软件工程中一种流行的方法。大多数可用的建模工具都支持基于固定元模型创建模型。通常,工具用户不能更改元模型以反映领域更改或新出现的需求。因此,必须开发具有演化元模型的工具的更新版本,并且必须共同演化模型以及确保模型一致性的约束,通常是手动的,以符合新的元模型。工具进化和必要的协同进化都是耗时且容易出错的任务。此外,常用工具通常会限制可以建模的元级别的数量,并迫使建模者使用变通方法来表达某些事实。为了克服这些问题,我们提出了跨层建模器(XLM),这是一种支持多层建模并允许元模型和模型协同进化的建模工具。XLM自动执行约束的协同演化,并提供关于模型一致性的即时反馈。我们举例说明了我们的工具的新颖建模方法,并讨论了它的主要功能。
{"title":"Cross-layer modeler: a tool for flexible multilevel modeling with consistency checking","authors":"Andreas Demuth, R. Lopez-Herrejon, Alexander Egyed","doi":"10.1145/2025113.2025189","DOIUrl":"https://doi.org/10.1145/2025113.2025189","url":null,"abstract":"Model-driven engineering has become a popular methodology in software engineering. Most available modeling tools support the creation of models based on a fixed metamodel. Typically, tool users cannot change the metamodel to reflect domain changes or newly emerged requirements. As a consequence, an updated version of the tool with an evolved metamodel must be developed and models as well as constraints that ensure model consistency have to be co-evolved, often manually, to conform to the new metamodel. Both, tool evolution and the necessary co-evolutions, are time consuming and error prone tasks. Furthermore, common tools often restrict the number of metalevels that can be modeled and force modelers to use workarounds to express certain facts. To overcome these issues we present the Cross-Layer Modeler (XLM), a modeling tool that supports multilevel modeling and allows co-evolution of metamodels and models. The XLM automatically performs co-evolution of constraints and gives instant feedback about model consistency. We illustrate the novel modeling approach of our tool and discuss its main capabilities.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"9 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":"117091745","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
CSSL: a logic for specifying conditional scenarios csl:用于指定条件场景的逻辑
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025123
Shoham Ben-David, M. Chechik, A. Gurfinkel, Sebastián Uchitel
Scenarios and use cases are popular means of describing the intended system behaviour. They support a variety of features and, notably, allow for two different interpretations: existential and universal. These modalities allow a progressive shift from examples to general rules about the expected system behaviour. The combination of modalities in a scenario-based specification poses technical challenges when automated reasoning is to be provided. In particular, the use of conditional existential scenarios, of which use cases with preconditions are a common example, require reasoning in branching time. Yet, formally grounded approaches to requirements engineering and industrial verification approaches shy away from branching-time logics due to their relatively unintuitive semantics. In this paper, we define an extension of an (industry standard) linear-time logic with sufficient branching expressiveness to allow capturing conditional existential statements. The resulting logic, called CSSL (Conditional Scenario Specification Language), has an efficient model-checking procedure. It supports reasoning about heterogeneous requirements specifications that include universal and existential statements in the form of use cases and conditional existential scenarios, and other sequence chart variants, in addition to general (linear) liveness and safety properties. We report on two industrial case studies in which the logic was used to specify and verify scenarios and properties.
场景和用例是描述预期系统行为的常用方法。它们支持多种功能,值得注意的是,它们允许两种不同的解释:存在的和普遍的。这些模式允许从示例逐步转变为关于预期系统行为的一般规则。当要提供自动推理时,基于场景的规范中的模式组合会带来技术挑战。特别是,条件存在场景的使用需要在分支时间内进行推理,其中带有先决条件的用例是一个常见的例子。然而,需求工程和工业验证方法的正式基础方法由于其相对不直观的语义而回避了分支时间逻辑。在本文中,我们定义了一个(工业标准)线性时间逻辑的扩展,它具有足够的分支表达性,以允许捕获条件存在语句。生成的逻辑称为CSSL(条件场景规范语言),具有有效的模型检查过程。它支持对异质需求规范的推理,这些需求规范包括用例和条件存在场景形式的通用和存在陈述,以及其他序列图变体,以及一般(线性)活动性和安全性属性。我们报告了两个工业案例研究,其中使用逻辑来指定和验证场景和属性。
{"title":"CSSL: a logic for specifying conditional scenarios","authors":"Shoham Ben-David, M. Chechik, A. Gurfinkel, Sebastián Uchitel","doi":"10.1145/2025113.2025123","DOIUrl":"https://doi.org/10.1145/2025113.2025123","url":null,"abstract":"Scenarios and use cases are popular means of describing the intended system behaviour. They support a variety of features and, notably, allow for two different interpretations: existential and universal. These modalities allow a progressive shift from examples to general rules about the expected system behaviour. The combination of modalities in a scenario-based specification poses technical challenges when automated reasoning is to be provided. In particular, the use of conditional existential scenarios, of which use cases with preconditions are a common example, require reasoning in branching time. Yet, formally grounded approaches to requirements engineering and industrial verification approaches shy away from branching-time logics due to their relatively unintuitive semantics.\u0000 In this paper, we define an extension of an (industry standard) linear-time logic with sufficient branching expressiveness to allow capturing conditional existential statements. The resulting logic, called CSSL (Conditional Scenario Specification Language), has an efficient model-checking procedure. It supports reasoning about heterogeneous requirements specifications that include universal and existential statements in the form of use cases and conditional existential scenarios, and other sequence chart variants, in addition to general (linear) liveness and safety properties. We report on two industrial case studies in which the logic was used to specify and verify scenarios and properties.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"1 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":"128496478","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}
引用次数: 12
Micro interaction metrics for defect prediction 用于缺陷预测的微交互度量
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025156
Taek Lee, Jaechang Nam, Donggyun Han, Sunghun Kim, H. In
There is a common belief that developers' behavioral interaction patterns may affect software quality. However, widely used defect prediction metrics such as source code metrics, change churns, and the number of previous defects do not capture developers' direct interactions. We propose 56 novel micro interaction metrics (MIMs) that leverage developers' interaction information stored in the Mylyn data. Mylyn is an Eclipse plug-in, which captures developers' interactions such as file editing and selection events with time spent. To evaluate the performance of MIMs in defect prediction, we build defect prediction (classification and regression) models using MIMs, traditional metrics, and their combinations. Our experimental results show that MIMs significantly improve defect classification and regression accuracy.
人们普遍认为开发人员的行为交互模式可能会影响软件质量。然而,广泛使用的缺陷预测度量,如源代码度量、变更搅动和先前缺陷的数量,并不能捕获开发人员的直接交互。我们提出了56个新的微交互指标(mim),它们利用存储在Mylyn数据中的开发人员交互信息。Mylyn是一个Eclipse插件,它捕获开发人员的交互,如文件编辑和选择事件。为了评估mim在缺陷预测中的性能,我们使用mim、传统度量以及它们的组合来构建缺陷预测(分类和回归)模型。实验结果表明,MIMs显著提高了缺陷分类和回归精度。
{"title":"Micro interaction metrics for defect prediction","authors":"Taek Lee, Jaechang Nam, Donggyun Han, Sunghun Kim, H. In","doi":"10.1145/2025113.2025156","DOIUrl":"https://doi.org/10.1145/2025113.2025156","url":null,"abstract":"There is a common belief that developers' behavioral interaction patterns may affect software quality. However, widely used defect prediction metrics such as source code metrics, change churns, and the number of previous defects do not capture developers' direct interactions. We propose 56 novel micro interaction metrics (MIMs) that leverage developers' interaction information stored in the Mylyn data. Mylyn is an Eclipse plug-in, which captures developers' interactions such as file editing and selection events with time spent. To evaluate the performance of MIMs in defect prediction, we build defect prediction (classification and regression) models using MIMs, traditional metrics, and their combinations. Our experimental results show that MIMs significantly improve defect classification and regression accuracy.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"180 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":"123189079","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}
引用次数: 125
Exploiting software architecture to support requirements satisfaction testing 利用软件架构来支持需求满意度测试
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025198
P. Clements, María José Escalona Cuaresma, P. Inverardi, I. Malavolta, E. Marchetti
Currently, software testing is mainly carried on independently from software architecture-related information. Some approaches propose to perform integration and regression testing with respect to software architecture descriptions, but less attention has been paid to analysing software architecture in order to develop a less costly and time-consuming test plan that covers the requirements of the system of interest. If on one side, it is well known that providing an effective test plan is crucial to software quality, on the other side software testing is extremely difficult because it stems from the complexity of current software systems. In this paper we (i) elaborate on how a new architectural analysis can help in producing better test plans and (ii) identify a set of corresponding research challenges. We believe that considering and analysing architectural information for requirements satisfaction testing purposes will provide substantial benefits in terms of test plan specification process, test plan effectiveness, and test cases understandability.
目前,软件测试主要是独立于软件架构相关信息进行的。一些方法建议执行关于软件架构描述的集成和回归测试,但是很少注意分析软件架构,以便开发一个成本更低、耗时更少的测试计划,覆盖感兴趣的系统的需求。一方面,众所周知,提供有效的测试计划对软件质量至关重要,另一方面,软件测试是极其困难的,因为它源于当前软件系统的复杂性。在本文中,我们(i)详细说明新的架构分析如何能够帮助生成更好的测试计划,以及(ii)确定一组相应的研究挑战。我们相信考虑和分析需求满足测试目的的架构信息将在测试计划规范过程、测试计划有效性和测试用例可理解性方面提供实质性的好处。
{"title":"Exploiting software architecture to support requirements satisfaction testing","authors":"P. Clements, María José Escalona Cuaresma, P. Inverardi, I. Malavolta, E. Marchetti","doi":"10.1145/2025113.2025198","DOIUrl":"https://doi.org/10.1145/2025113.2025198","url":null,"abstract":"Currently, software testing is mainly carried on independently from software architecture-related information. Some approaches propose to perform integration and regression testing with respect to software architecture descriptions, but less attention has been paid to analysing software architecture in order to develop a less costly and time-consuming test plan that covers the requirements of the system of interest. If on one side, it is well known that providing an effective test plan is crucial to software quality, on the other side software testing is extremely difficult because it stems from the complexity of current software systems.\u0000 In this paper we (i) elaborate on how a new architectural analysis can help in producing better test plans and (ii) identify a set of corresponding research challenges. We believe that considering and analysing architectural information for requirements satisfaction testing purposes will provide substantial benefits in terms of test plan specification process, test plan effectiveness, and test cases understandability.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"66 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":"125118511","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
Partial replay of long-running applications 长时间运行的应用程序的部分重播
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025135
Alvin Cheung, Armando Solar-Lezama, S. Madden
Bugs in deployed software can be extremely difficult to track down. Invasive logging techniques, such as logging all non-deterministic inputs, can incur substantial runtime overheads. This paper shows how symbolic analysis can be used to re-create path equivalent executions for very long running programs such as databases and web servers. The goal is to help developers debug such long-running programs by allowing them to walk through an execution of the last few requests or transactions leading up to an error. The challenge is to provide this functionality without the high runtime overheads associated with traditional replay techniques based on input logging or memory snapshots. Our approach achieves this by recording a small amount of information about program execution, such as the direction of branches taken, and then using symbolic analysis to reconstruct the execution of the last few inputs processed by the application, as well as the state of memory before these inputs were executed. We implemented our technique in a new tool called bbr. In this paper, we show that it can be used to replay bugs in long-running single-threaded programs starting from the middle of an execution. We show that bbr incurs low recording overhead (avg. of 10%) during program execution, which is much less than existing replay schemes. We also show that it can reproduce real bugs from web servers, database systems, and other common utilities.
已部署软件中的bug可能极其难以追踪。侵入式日志记录技术,比如记录所有不确定的输入,会导致大量的运行时开销。本文展示了符号分析如何用于为数据库和web服务器等长时间运行的程序重新创建路径等效执行。目标是通过允许开发人员遍历导致错误的最后几个请求或事务的执行,帮助开发人员调试此类长时间运行的程序。我们面临的挑战是,如何在不增加与基于输入日志记录或内存快照的传统重播技术相关的高运行时开销的情况下提供此功能。我们的方法通过记录关于程序执行的少量信息来实现这一点,例如所采取的分支的方向,然后使用符号分析来重建应用程序处理的最后几个输入的执行,以及这些输入执行之前的内存状态。我们在一个叫做bbr的新工具中实现了我们的技术。在本文中,我们展示了它可以用于从执行中间开始重播长时间运行的单线程程序中的错误。我们表明,bbr在程序执行期间会产生较低的记录开销(平均为10%),这比现有的重播方案要少得多。我们还展示了它可以从web服务器、数据库系统和其他常用工具中重现真正的bug。
{"title":"Partial replay of long-running applications","authors":"Alvin Cheung, Armando Solar-Lezama, S. Madden","doi":"10.1145/2025113.2025135","DOIUrl":"https://doi.org/10.1145/2025113.2025135","url":null,"abstract":"Bugs in deployed software can be extremely difficult to track down. Invasive logging techniques, such as logging all non-deterministic inputs, can incur substantial runtime overheads. This paper shows how symbolic analysis can be used to re-create path equivalent executions for very long running programs such as databases and web servers. The goal is to help developers debug such long-running programs by allowing them to walk through an execution of the last few requests or transactions leading up to an error. The challenge is to provide this functionality without the high runtime overheads associated with traditional replay techniques based on input logging or memory snapshots. Our approach achieves this by recording a small amount of information about program execution, such as the direction of branches taken, and then using symbolic analysis to reconstruct the execution of the last few inputs processed by the application, as well as the state of memory before these inputs were executed.\u0000 We implemented our technique in a new tool called bbr. In this paper, we show that it can be used to replay bugs in long-running single-threaded programs starting from the middle of an execution. We show that bbr incurs low recording overhead (avg. of 10%) during program execution, which is much less than existing replay schemes. We also show that it can reproduce real bugs from web servers, database systems, and other common utilities.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"50 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":"122517718","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}
引用次数: 16
Strong higher order mutation-based test data generation 强大的高阶基于突变的测试数据生成
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025144
M. Harman, Yue Jia, W. Langdon
This paper introduces SHOM, a mutation-based test data generation approach that combines Dynamic Symbolic Execution and Search Based Software Testing. SHOM targets strong mutation adequacy and is capable of killing both first and higher order mutants. We report the results of an empirical study using 17 programs, including production industrial code from ABB and Daimler and open source code as well as previously studied subjects. SHOM achieved higher strong mutation adequacy than two recent mutation-based test data generation approaches, killing between 8% and 38% of those mutants left unkilled by the best performing previous approach.
本文介绍了基于动态符号执行和基于搜索的软件测试相结合的基于突变的测试数据生成方法SHOM。SHOM靶向强突变充足性,能够杀死一级和高阶突变体。我们报告了使用17个程序的实证研究结果,包括ABB和戴姆勒的生产工业代码和开源代码以及先前研究的主题。与最近的两种基于突变的测试数据生成方法相比,SHOM获得了更高的强突变充分性,杀死了8%至38%的未被先前最佳方法杀死的突变体。
{"title":"Strong higher order mutation-based test data generation","authors":"M. Harman, Yue Jia, W. Langdon","doi":"10.1145/2025113.2025144","DOIUrl":"https://doi.org/10.1145/2025113.2025144","url":null,"abstract":"This paper introduces SHOM, a mutation-based test data generation approach that combines Dynamic Symbolic Execution and Search Based Software Testing. SHOM targets strong mutation adequacy and is capable of killing both first and higher order mutants. We report the results of an empirical study using 17 programs, including production industrial code from ABB and Daimler and open source code as well as previously studied subjects. SHOM achieved higher strong mutation adequacy than two recent mutation-based test data generation approaches, killing between 8% and 38% of those mutants left unkilled by the best performing previous approach.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"145 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":"133564640","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}
引用次数: 150
期刊
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学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1