首页 > 最新文献

2007 IEEE International Conference on Software Maintenance最新文献

英文 中文
Design recovery and maintenance of build systems 设计构建系统的恢复和维护
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362624
Bram Adams, H. Tromp, K. Schutter, W. Meuter
The build system forms an indispensable part of any software project. It needs to evolve in parallel with the source code in order to build, test and install the software. Unfortunately, little tool support exists to help maintainers gain insight into the build system, much less to refactor it. In this paper, we therefore present the design and implementation of a re(verse)-engineering framework for build systems named MAKAO. At its heart the framework makes the build's dependency graph available in a tangible way. Aside from visualisation, this enables powerful querying of all build-related data, as well as various filtering techniques to define views on the build architecture. If desired, all this gathered information can be put to use to write aspects for refactoring the build. Afterwards, validation rules can help in assessing failure or success. We applied our implementation on an industrial C system and the Linux 2.6.16.18 kernel, with good results.
构建系统是任何软件项目中不可或缺的一部分。为了构建、测试和安装软件,它需要与源代码并行发展。不幸的是,很少有工具支持可以帮助维护人员深入了解构建系统,更不用说重构它了。因此,在本文中,我们提出了一个名为MAKAO的构建系统的重构工程框架的设计和实现。该框架的核心是使构建的依赖关系图以一种有形的方式可用。除了可视化之外,它还支持对所有构建相关数据的强大查询,以及用于定义构建体系结构视图的各种过滤技术。如果需要,所有收集到的信息都可以用于编写重构构建的方面。然后,验证规则可以帮助评估失败或成功。我们在一个工业C系统和Linux 2.6.16.18内核上应用了我们的实现,取得了良好的效果。
{"title":"Design recovery and maintenance of build systems","authors":"Bram Adams, H. Tromp, K. Schutter, W. Meuter","doi":"10.1109/ICSM.2007.4362624","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362624","url":null,"abstract":"The build system forms an indispensable part of any software project. It needs to evolve in parallel with the source code in order to build, test and install the software. Unfortunately, little tool support exists to help maintainers gain insight into the build system, much less to refactor it. In this paper, we therefore present the design and implementation of a re(verse)-engineering framework for build systems named MAKAO. At its heart the framework makes the build's dependency graph available in a tangible way. Aside from visualisation, this enables powerful querying of all build-related data, as well as various filtering techniques to define views on the build architecture. If desired, all this gathered information can be put to use to write aspects for refactoring the build. Afterwards, validation rules can help in assessing failure or success. We applied our implementation on an industrial C system and the Linux 2.6.16.18 kernel, with good results.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115112637","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}
引用次数: 100
Package Surface Blueprints: Visually Supporting the Understanding of Package Relationships 包装表面蓝图:直观地支持对包装关系的理解
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362622
Stéphane Ducasse, Damien Pollet, Mathieu Suen, H. Abdeen, Ilham Alloui
Large object-oriented applications are structured over large number of packages. Packages are important but complex structural entities that may be difficult to understand since they play different development roles (i.e., class containers, code ownership basic structure, architectural elements...). Maintainers of large applications face the problem of understanding how packages are structured in general and how they relate to each others. In this paper, we present a compact visualization, named Package Surface Blueprint, that qualifies the relationships that a package has with its neighbours. A Package Surface Blueprint represents packages around the notion of package surfaces: groups of relationships according to the packages they refer to. We present two specific views one stressing the references made by a package and another showing the inheritance structure of a package. We applied the visualization on two large case studies: ArgoUML and Squeak.
大型面向对象的应用程序是由大量的包构成的。包是重要但复杂的结构实体,可能难以理解,因为它们扮演着不同的开发角色(例如,类容器、代码所有权基本结构、体系结构元素……)。大型应用程序的维护者面临着理解包的一般结构以及它们如何相互关联的问题。在本文中,我们提出了一个紧凑的可视化,称为包表面蓝图,它限定了包与其相邻包之间的关系。包表面蓝图表示围绕包表面概念的包:根据它们引用的包的关系组。我们提供了两个特定的视图,一个强调包所做的引用,另一个显示包的继承结构。我们将可视化应用于两个大型案例研究:ArgoUML和Squeak。
{"title":"Package Surface Blueprints: Visually Supporting the Understanding of Package Relationships","authors":"Stéphane Ducasse, Damien Pollet, Mathieu Suen, H. Abdeen, Ilham Alloui","doi":"10.1109/ICSM.2007.4362622","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362622","url":null,"abstract":"Large object-oriented applications are structured over large number of packages. Packages are important but complex structural entities that may be difficult to understand since they play different development roles (i.e., class containers, code ownership basic structure, architectural elements...). Maintainers of large applications face the problem of understanding how packages are structured in general and how they relate to each others. In this paper, we present a compact visualization, named Package Surface Blueprint, that qualifies the relationships that a package has with its neighbours. A Package Surface Blueprint represents packages around the notion of package surfaces: groups of relationships according to the packages they refer to. We present two specific views one stressing the references made by a package and another showing the inheritance structure of a package. We applied the visualization on two large case studies: ArgoUML and Squeak.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115651124","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}
引用次数: 57
JAT: A Test Automation Framework for Multi-Agent Systems JAT:多代理系统的测试自动化框架
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362655
Roberta Coelho, Elder Cirilo, U. Kulesza, Arndt von Staa, A. Rashid, C. Lucena
Automated tests have been widely used as a supporting mechanism during software development and maintenance activities. It improves the confidence on software releases as it seeks to uncover regression bugs, and serves as a live documentation which is very useful when evolving systems. Concerning multi agent systems (MASs), some characteristics such as agent autonomy and asynchronous message-based interaction bring a degree of non-determinism which presents new testing challenges. This paper proposes JAT, a framework for building and running MASs test scenarios, which relies on the use of aspect-oriented techniques to monitor the autonomous agents during tests and control the test input of asynchronous test cases. The tool has been developed on top of JADE, a widely used agent platform implemented in Java. We have used JAT on testing 3 different MASs. Our experience shows that JAT can be used to build test scenarios which can achieve high fault-detection effectiveness.
在软件开发和维护活动中,自动化测试作为一种支持机制被广泛使用。它提高了对软件发布的信心,因为它试图发现回归错误,并作为一个实时文档,在发展系统时非常有用。在多智能体系统(MASs)中,智能体自治和异步消息交互等特性带来了一定程度的不确定性,给测试带来了新的挑战。本文提出了JAT,一个用于构建和运行大规模测试场景的框架,它依赖于使用面向方面的技术来监控测试过程中的自治代理,并控制异步测试用例的测试输入。该工具是在JADE之上开发的,JADE是一个使用Java实现的广泛使用的代理平台。我们用JAT测试了3种不同的质量。我们的经验表明,JAT可以用于构建能够实现高故障检测效率的测试场景。
{"title":"JAT: A Test Automation Framework for Multi-Agent Systems","authors":"Roberta Coelho, Elder Cirilo, U. Kulesza, Arndt von Staa, A. Rashid, C. Lucena","doi":"10.1109/ICSM.2007.4362655","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362655","url":null,"abstract":"Automated tests have been widely used as a supporting mechanism during software development and maintenance activities. It improves the confidence on software releases as it seeks to uncover regression bugs, and serves as a live documentation which is very useful when evolving systems. Concerning multi agent systems (MASs), some characteristics such as agent autonomy and asynchronous message-based interaction bring a degree of non-determinism which presents new testing challenges. This paper proposes JAT, a framework for building and running MASs test scenarios, which relies on the use of aspect-oriented techniques to monitor the autonomous agents during tests and control the test input of asynchronous test cases. The tool has been developed on top of JADE, a widely used agent platform implemented in Java. We have used JAT on testing 3 different MASs. Our experience shows that JAT can be used to build test scenarios which can achieve high fault-detection effectiveness.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117122670","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}
引用次数: 38
Release Pattern Discovery: A Case Study of Database Systems 发布模式发现:数据库系统的案例研究
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362641
Abram Hindle, Michael W. Godfrey, R. Holt
Studying the release-time activities of a software project - that is, activities that occur around the time of a major or minor release - can provide insights into both the development processes used and the nature of the system itself. Although tools rarely record detailed logs of developer behavior, we can infer release-time activities from available data, such as logs from revision control systems, bug tracking systems, etc. In this paper, we discuss the results of a case study in mining patterns of release-time behavior from the revision control systems of four open source database systems. We partitioned the development artifacts into four classes - source code, tests, build files, and documentation - to be able to characterize the behavioral patterns more precisely. We found, for example, that there were consistent activity patterns around release time within each of the individual projects; we also found that these patterns did not persist across systems, leading us to hypothesize that the four projects follow different but consistent development patterns of activity around releases.
研究软件项目的发布时活动——也就是说,在主要或次要发布期间发生的活动——可以提供对所使用的开发过程和系统本身性质的洞察。虽然工具很少记录开发人员行为的详细日志,但是我们可以从可用的数据中推断出发布时的活动,例如来自修订控制系统、bug跟踪系统等的日志。在本文中,我们讨论了从四个开源数据库系统的版本控制系统中挖掘发布时行为模式的案例研究结果。我们将开发工件划分为四个类——源代码、测试、构建文件和文档——以便能够更精确地描述行为模式。例如,我们发现,在每个单独的项目中,围绕发布时间存在一致的活动模式;我们还发现这些模式并没有跨系统持续存在,这导致我们假设这四个项目遵循不同但一致的围绕发布活动的开发模式。
{"title":"Release Pattern Discovery: A Case Study of Database Systems","authors":"Abram Hindle, Michael W. Godfrey, R. Holt","doi":"10.1109/ICSM.2007.4362641","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362641","url":null,"abstract":"Studying the release-time activities of a software project - that is, activities that occur around the time of a major or minor release - can provide insights into both the development processes used and the nature of the system itself. Although tools rarely record detailed logs of developer behavior, we can infer release-time activities from available data, such as logs from revision control systems, bug tracking systems, etc. In this paper, we discuss the results of a case study in mining patterns of release-time behavior from the revision control systems of four open source database systems. We partitioned the development artifacts into four classes - source code, tests, build files, and documentation - to be able to characterize the behavioral patterns more precisely. We found, for example, that there were consistent activity patterns around release time within each of the individual projects; we also found that these patterns did not persist across systems, leading us to hypothesize that the four projects follow different but consistent development patterns of activity around releases.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116292863","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}
引用次数: 15
System-level Usage Dependency Analysis of Object-Oriented Systems 面向对象系统的系统级使用依赖分析
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362650
Xinyi Dong, Michael W. Godfrey
Uncovering, modelling, and understanding architectural level dependencies of software systems is a key task for software maintainers. However, current dependency analysis techniques for object-oriented software are targeted at the class or method level; this is because most dependencies - such as instantiates, references, and calls - must be interpreted in the context of one or more class hierarchies. In this paper, we propose an approach, called the high-level object dependency graph (HODG), that captures all possible usage dependencies among coarse-grained entities. Based on the new model, we further propose a set of dependency analysis methods. Finally, we present an exploratory case study using HODGs - supported by an automated analysis tool - of the Apache Ant build system; we show how HODG analysis can help maintainers capture external properties of coarse-grained entities, and better understand the nature of their interdependencies.
揭示、建模和理解软件系统的架构级依赖关系是软件维护人员的关键任务。然而,当前面向对象软件的依赖分析技术是针对类或方法级别的;这是因为大多数依赖关系(例如实例化、引用和调用)必须在一个或多个类层次结构的上下文中进行解释。在本文中,我们提出了一种称为高级对象依赖关系图(HODG)的方法,它捕获粗粒度实体之间所有可能的使用依赖关系。在新模型的基础上,我们进一步提出了一套依赖分析方法。最后,我们提出了一个使用Apache Ant构建系统的hodg(由自动化分析工具支持)的探索性案例研究;我们展示了HODG分析如何帮助维护人员捕获粗粒度实体的外部属性,并更好地理解它们相互依赖关系的本质。
{"title":"System-level Usage Dependency Analysis of Object-Oriented Systems","authors":"Xinyi Dong, Michael W. Godfrey","doi":"10.1109/ICSM.2007.4362650","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362650","url":null,"abstract":"Uncovering, modelling, and understanding architectural level dependencies of software systems is a key task for software maintainers. However, current dependency analysis techniques for object-oriented software are targeted at the class or method level; this is because most dependencies - such as instantiates, references, and calls - must be interpreted in the context of one or more class hierarchies. In this paper, we propose an approach, called the high-level object dependency graph (HODG), that captures all possible usage dependencies among coarse-grained entities. Based on the new model, we further propose a set of dependency analysis methods. Finally, we present an exploratory case study using HODGs - supported by an automated analysis tool - of the Apache Ant build system; we show how HODG analysis can help maintainers capture external properties of coarse-grained entities, and better understand the nature of their interdependencies.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127045222","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}
引用次数: 21
Re-computing Coverage Information to Assist Regression Testing 重新计算覆盖率信息以辅助回归测试
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362629
Pavan Kumar Chittimalli, M. J. Harrold
This paper presents a technique that leverages an existing regression test-selection algorithm to compute accurate, updated coverage data on a version of the software, Pi+1, without rerunning any test cases that do not execute the changes from the previous version of the software, Pi, to Pi+1-Users of our technique can avoid the expense of rerunning the entire test suite on Pi+1 or the inaccuracy produced by previous approaches that estimate coverage data for Pi+1 or reuse outdated coverage data from Pi. This paper also presents a tool, RECOVER, that implements our technique, along with a set of empirical studies. The studies show the inaccuracies that can exist when an application-regression-test selection-uses estimated and outdated coverage data. The studies also show that the overhead incurred by our technique is negligible.
本文展示了一种技术,它利用现有的回归测试选择算法来计算软件版本(Pi+1)上准确的、更新的覆盖率数据,而不需要重新运行任何不执行来自软件版本(Pi)的更改的测试用例。我们技术的用户可以避免在Pi+1上重新运行整个测试套件的费用,也可以避免以前估算Pi+1覆盖率数据的方法产生的不准确性,或者重用Pi中过时的覆盖率数据。本文还介绍了一个工具,RECOVER,它实现了我们的技术,以及一组实证研究。研究表明,当应用程序回归测试选择使用估计的和过时的覆盖率数据时,可能存在不准确性。研究还表明,我们的技术所带来的开销可以忽略不计。
{"title":"Re-computing Coverage Information to Assist Regression Testing","authors":"Pavan Kumar Chittimalli, M. J. Harrold","doi":"10.1109/ICSM.2007.4362629","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362629","url":null,"abstract":"This paper presents a technique that leverages an existing regression test-selection algorithm to compute accurate, updated coverage data on a version of the software, Pi+1, without rerunning any test cases that do not execute the changes from the previous version of the software, Pi, to Pi+1-Users of our technique can avoid the expense of rerunning the entire test suite on Pi+1 or the inaccuracy produced by previous approaches that estimate coverage data for Pi+1 or reuse outdated coverage data from Pi. This paper also presents a tool, RECOVER, that implements our technique, along with a set of empirical studies. The studies show the inaccuracies that can exist when an application-regression-test selection-uses estimated and outdated coverage data. The studies also show that the overhead incurred by our technique is negligible.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132472830","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
Feature Location and Extraction using Landmarks and Barriers 使用地标和障碍的特征定位和提取
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362618
Neil Walkinshaw, M. Roper, M. Wood
Identifying and isolating the source code associated with a particular feature is a problem that frequently arises in many maintenance tasks. The delocalised nature of object-oriented systems, where the code associated with a feature is distributed across many interrelated objects, makes this problem particularly challenging. This paper presents an approach that combines landmark' methods that have a key role in the execution of a particular feature with slicing to create a call graph of related code. The size of this call graph is constrained by the identification of 'barrier' methods which exclude parts of the graph that are not of interest. The approach is supported by a tool, and the evaluation on three open-source systems yields encouraging results and demonstrates the practical applicability of the technique.
识别和隔离与特定功能相关的源代码是许多维护任务中经常出现的问题。面向对象系统的离域特性(与特性相关的代码分布在许多相互关联的对象上)使得这个问题特别具有挑战性。本文提出了一种方法,该方法结合了在特定功能的执行中起关键作用的地标方法和切片,以创建相关代码的调用图。这个调用图的大小受到“屏障”方法的识别的限制,这些方法排除了图中不感兴趣的部分。该方法得到了一个工具的支持,在三个开源系统上的评估产生了令人鼓舞的结果,并证明了该技术的实际适用性。
{"title":"Feature Location and Extraction using Landmarks and Barriers","authors":"Neil Walkinshaw, M. Roper, M. Wood","doi":"10.1109/ICSM.2007.4362618","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362618","url":null,"abstract":"Identifying and isolating the source code associated with a particular feature is a problem that frequently arises in many maintenance tasks. The delocalised nature of object-oriented systems, where the code associated with a feature is distributed across many interrelated objects, makes this problem particularly challenging. This paper presents an approach that combines landmark' methods that have a key role in the execution of a particular feature with slicing to create a call graph of related code. The size of this call graph is constrained by the identification of 'barrier' methods which exclude parts of the graph that are not of interest. The approach is supported by a tool, and the evaluation on three open-source systems yields encouraging results and demonstrates the practical applicability of the technique.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"79 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133229568","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 27
Combinatorial Interaction Regression Testing: A Study of Test Case Generation and Prioritization 组合交互回归测试:测试用例生成和优先级的研究
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362638
Xiao Qu, Myra B. Cohen, Katherine M. Woolf
Regression testing is an expensive part of the software maintenance process. Effective regression testing techniques select and order (or prioritize) test cases between successive releases of a program. However, selection and prioritization are dependent on the quality of the initial test suite. An effective and cost efficient test generation technique is combinatorial interaction testing, CIT, which systematically samples all t-way combinations of input parameters. Research on CIT, to date, has focused on single version software systems. There has been little work that empirically assesses the use of CIT test generation as the basis for selection or prioritization. In this paper we examine the effectiveness of CIT across multiple versions of two software subjects. Our results show that CIT performs well in finding seeded faults when compared with an exhaustive test set. We examine several CIT prioritization techniques and compare them with a re-generation/prioritization technique. We find that prioritized and re-generated/prioritized CIT test suites may find faults earlier than unordered CIT test suites, although the re-generated/prioritized test suites sometimes exhibit decreased fault detection.
回归测试是软件维护过程中昂贵的一部分。有效的回归测试技术在程序的连续版本之间选择和排序(或优先排序)测试用例。然而,选择和优先级取决于初始测试套件的质量。组合交互测试(CIT)是一种有效且经济的测试生成技术,它系统地对输入参数的所有t向组合进行采样。迄今为止,对CIT的研究主要集中在单版本软件系统上。很少有经验地评估使用CIT测试生成作为选择或优先级的基础的工作。在本文中,我们研究了跨两个软件主题的多个版本的CIT的有效性。结果表明,与穷举测试集相比,CIT在发现种子故障方面表现良好。我们研究了几种CIT优先级技术,并将它们与再生/优先级技术进行了比较。我们发现,优先级和重新生成/优先级的CIT测试套件可能比无序的CIT测试套件更早发现错误,尽管重新生成/优先级的测试套件有时表现出更少的错误检测。
{"title":"Combinatorial Interaction Regression Testing: A Study of Test Case Generation and Prioritization","authors":"Xiao Qu, Myra B. Cohen, Katherine M. Woolf","doi":"10.1109/ICSM.2007.4362638","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362638","url":null,"abstract":"Regression testing is an expensive part of the software maintenance process. Effective regression testing techniques select and order (or prioritize) test cases between successive releases of a program. However, selection and prioritization are dependent on the quality of the initial test suite. An effective and cost efficient test generation technique is combinatorial interaction testing, CIT, which systematically samples all t-way combinations of input parameters. Research on CIT, to date, has focused on single version software systems. There has been little work that empirically assesses the use of CIT test generation as the basis for selection or prioritization. In this paper we examine the effectiveness of CIT across multiple versions of two software subjects. Our results show that CIT performs well in finding seeded faults when compared with an exhaustive test set. We examine several CIT prioritization techniques and compare them with a re-generation/prioritization technique. We find that prioritized and re-generated/prioritized CIT test suites may find faults earlier than unordered CIT test suites, although the re-generated/prioritized test suites sometimes exhibit decreased fault detection.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129342305","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}
引用次数: 168
Maintaining Multi-Tier Web Applications 维护多层Web应用程序
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362648
Xiaoyu Zheng, Mei-Hwa Chen
Large-scale multi-tier web applications are inherently dynamic, complex, heterogeneous and constantly evolving. Maintaining such applications is important yet inevitably expensive. First, the size of the test suite of an evolving system will be continuously growing. Second, to ensure that the changes will not affect the quality of the systems, regression testing is frequently performed. To effectively and efficiently maintain web applications after each change, obsolete test cases must be removed and regression testing should selectively re-test. To this end there is a need for an inter-tier change impact analysis, which requires a coherent model rendering inter-tier dependence information. We present a technique that makes use of an integrated inter-connection dependence model to analyze cross-tier change impacts. These are then used to select affected test cases for regression testing and to identify repairable test cases for reuse, or to discard obsolete non-repairable test cases. Our empirical study shows that with this technique, the maintenance cost of the target system can be significantly reduced.
大规模的多层web应用程序本质上是动态的、复杂的、异构的和不断发展的。维护这样的应用程序很重要,但不可避免地代价高昂。首先,演进系统的测试套件的大小将不断增长。其次,为了确保变更不会影响系统的质量,经常执行回归测试。为了在每次更改后有效地维护web应用程序,必须删除过时的测试用例,并且回归测试应该有选择地重新测试。为此,需要进行层间变更影响分析,这需要一个连贯的模型来呈现层间依赖信息。我们提出了一种利用集成的互连依赖模型来分析跨层变化影响的技术。然后使用它们来选择受影响的测试用例进行回归测试,并确定可修复的测试用例以进行重用,或者丢弃过时的不可修复的测试用例。我们的实证研究表明,采用该技术可以显著降低目标系统的维护成本。
{"title":"Maintaining Multi-Tier Web Applications","authors":"Xiaoyu Zheng, Mei-Hwa Chen","doi":"10.1109/ICSM.2007.4362648","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362648","url":null,"abstract":"Large-scale multi-tier web applications are inherently dynamic, complex, heterogeneous and constantly evolving. Maintaining such applications is important yet inevitably expensive. First, the size of the test suite of an evolving system will be continuously growing. Second, to ensure that the changes will not affect the quality of the systems, regression testing is frequently performed. To effectively and efficiently maintain web applications after each change, obsolete test cases must be removed and regression testing should selectively re-test. To this end there is a need for an inter-tier change impact analysis, which requires a coherent model rendering inter-tier dependence information. We present a technique that makes use of an integrated inter-connection dependence model to analyze cross-tier change impacts. These are then used to select affected test cases for regression testing and to identify repairable test cases for reuse, or to discard obsolete non-repairable test cases. Our empirical study shows that with this technique, the maintenance cost of the target system can be significantly reduced.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131553424","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}
引用次数: 10
Evidence-Based Analysis and Inferring Preconditions for Bug Detection 基于证据的分析和推断Bug检测的前提条件
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362617
D. Brand, M. Buss, V. Sreedhar
An important part of software maintenance is fixing software errors and bugs. Static analysis based tools can tremendously help and ease software maintenance. In order to gain user acceptance, a static analysis tool for detecting bugs has to minimize the incidence of false alarms. A common cause of false alarms is the uncertainty over which inputs into a program are considered legal. In this paper we introduce evidence-based analysis to address this problem. Evidence-based analysis allows one to infer legal preconditions over inputs, without having users to explicitly specify those preconditions. We have found that the approach drastically improves the usability of such static analysis tools. In this paper we report our experience with the analysis in an industrial deployment.
软件维护的一个重要部分是修复软件错误和bug。基于静态分析的工具可以极大地帮助和简化软件维护。为了获得用户的认可,用于检测bug的静态分析工具必须将假警报的发生率降到最低。假警报的一个常见原因是不确定哪些输入被认为是合法的。本文引入循证分析来解决这一问题。基于证据的分析允许人们从输入中推断出合法的先决条件,而无需用户明确指定这些先决条件。我们发现该方法极大地提高了此类静态分析工具的可用性。在本文中,我们报告了我们在工业部署中进行分析的经验。
{"title":"Evidence-Based Analysis and Inferring Preconditions for Bug Detection","authors":"D. Brand, M. Buss, V. Sreedhar","doi":"10.1109/ICSM.2007.4362617","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362617","url":null,"abstract":"An important part of software maintenance is fixing software errors and bugs. Static analysis based tools can tremendously help and ease software maintenance. In order to gain user acceptance, a static analysis tool for detecting bugs has to minimize the incidence of false alarms. A common cause of false alarms is the uncertainty over which inputs into a program are considered legal. In this paper we introduce evidence-based analysis to address this problem. Evidence-based analysis allows one to infer legal preconditions over inputs, without having users to explicitly specify those preconditions. We have found that the approach drastically improves the usability of such static analysis tools. In this paper we report our experience with the analysis in an industrial deployment.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"165 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131007452","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}
引用次数: 4
期刊
2007 IEEE International Conference on Software Maintenance
全部 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