首页 > 最新文献

Proceedings of the 24th International Conference on Software Engineering. ICSE 2002最新文献

英文 中文
Verification support for workflow design with UML activity graphs 对使用UML活动图的工作流设计的验证支持
Rik Eshuis, R. Wieringa
We describe a tool that supports verification of workflow models specified in UML activity graphs. The tool translates an activity graph into an input format for a model checker according to a semantics we published earlier. With the model checker arbitrary propositional requirements can be checked against the input model. If a requirement fails to hold an error trace is returned by the model checker. The tool automatically translates such an error trace into an activity graph trace by highlighting a corresponding path in the activity graph. One of the problems that is dealt with is that model checkers require a finite state space whereas workflow models in general have an infinite state space. Another problem is that strong fairness is necessary to obtain realistic results. Only model checkers that use a special model checking algorithm for strong fairness are suitable for verifying workflow models. We analyse the structure of the state space. We illustrate our approach with some example verifications.
我们描述了一个支持验证UML活动图中指定的工作流模型的工具。该工具根据我们之前发布的语义将活动图转换为模型检查器的输入格式。使用模型检查器可以根据输入模型检查任意命题要求。如果需求不能满足,则模型检查器将返回一个错误跟踪。该工具通过突出显示活动图中的相应路径,自动将这样的错误跟踪转换为活动图跟踪。其中一个问题是模型检查器需要一个有限的状态空间,而工作流模型通常有一个无限的状态空间。另一个问题是,为了获得现实的结果,强烈的公平性是必要的。只有使用特殊的强公平性模型检查算法的模型检查器才适合用于工作流模型的验证。我们分析了状态空间的结构。我们用一些示例验证来说明我们的方法。
{"title":"Verification support for workflow design with UML activity graphs","authors":"Rik Eshuis, R. Wieringa","doi":"10.1145/581339.581362","DOIUrl":"https://doi.org/10.1145/581339.581362","url":null,"abstract":"We describe a tool that supports verification of workflow models specified in UML activity graphs. The tool translates an activity graph into an input format for a model checker according to a semantics we published earlier. With the model checker arbitrary propositional requirements can be checked against the input model. If a requirement fails to hold an error trace is returned by the model checker. The tool automatically translates such an error trace into an activity graph trace by highlighting a corresponding path in the activity graph. One of the problems that is dealt with is that model checkers require a finite state space whereas workflow models in general have an infinite state space. Another problem is that strong fairness is necessary to obtain realistic results. Only model checkers that use a special model checking algorithm for strong fairness are suitable for verifying workflow models. We analyse the structure of the state space. We illustrate our approach with some example verifications.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130633621","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}
引用次数: 145
Software engineering for large-scale multi-agent systems - SELMAS'2002 大规模多智能体系统的软件工程- SELMAS'2002
C. Lucena, Alessandro F. Garcia, Andrea Omicini, J. Castro, F. Zambonelli
Objects and agents are abstractions that exhibit points of similarity, but the development of agent-based software poses other challenges to software engineering since software agents are inherently more complex entities. In addition, a large-scale multi-agent system needs to satisfy multiple stringent requirements such as reliability, security, interoperability, scalability, reusability, and maintainability. This workshop brought together researchers and practitioners to discuss the current state and future direction of research in software engineering for large-scale multi-agent systems. A particular interest was to understand those issues in the agent technology that difficult and/or improve the production of large-scale distributed systems.
对象和代理是表现相似点的抽象,但是基于代理的软件的开发给软件工程带来了其他挑战,因为软件代理本质上是更复杂的实体。此外,大规模的多智能体系统还需要满足可靠性、安全性、互操作性、可扩展性、可重用性和可维护性等多方面的严格要求。本次研讨会将研究人员和实践者聚集在一起,讨论大规模多智能体系统软件工程的现状和未来研究方向。特别感兴趣的是理解代理技术中那些困难和/或改进大规模分布式系统生产的问题。
{"title":"Software engineering for large-scale multi-agent systems - SELMAS'2002","authors":"C. Lucena, Alessandro F. Garcia, Andrea Omicini, J. Castro, F. Zambonelli","doi":"10.1145/581339.581428","DOIUrl":"https://doi.org/10.1145/581339.581428","url":null,"abstract":"Objects and agents are abstractions that exhibit points of similarity, but the development of agent-based software poses other challenges to software engineering since software agents are inherently more complex entities. In addition, a large-scale multi-agent system needs to satisfy multiple stringent requirements such as reliability, security, interoperability, scalability, reusability, and maintainability. This workshop brought together researchers and practitioners to discuss the current state and future direction of research in software engineering for large-scale multi-agent systems. A particular interest was to understand those issues in the agent technology that difficult and/or improve the production of large-scale distributed systems.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114310081","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
A history-based test prioritization technique for regression testing in resource constrained environments 用于资源受限环境中回归测试的基于历史的测试优先级技术
Jung-Min Kim, A. Porter
Regression testing is an expensive and frequently executed maintenance process used to revalidate modified software. To improve it, regression test selection (RTS) techniques strive to lower costs without overly reducing effectiveness by carefully selecting a subset of the test suite. Under certain conditions, some can even guarantee that the selected test cases perform no worse than the original test suite. This ignores certain software development realities such as resource and time constraints that may prevent using RTS techniques as intended (e.g., regression testing must be done overnight, but RTS selection returns two days worth of tests). In practice, testers work around this by prioritizing the test cases and running only those that fit within existing constraints. Unfortunately this generally violates key RTS assumptions, voiding RTS technique guarantees and making regression testing performance unpredictable. Despite this, existing prioritization techniques are memoryless, implicitly assuming that local choices can ensure adequate long run performance. Instead, we propose a new technique that bases prioritization on historical execution data. We conducted an experiment to assess its effects on the long run performance of resource constrained regression testing. Our results expose essential tradeoffs that should be considered when using these techniques over a series of software releases.
回归测试是一种昂贵且经常执行的维护过程,用于重新验证修改后的软件。为了改进它,回归测试选择(RTS)技术努力通过仔细选择测试套件的子集来降低成本,而不会过度降低效率。在某些条件下,有些人甚至可以保证所选择的测试用例的性能不会比原始测试套件差。这忽略了某些软件开发现实,如资源和时间限制,这些可能会阻碍使用RTS技术(例如,回归测试必须在一夜之间完成,但RTS选择返回两天的测试值)。在实践中,测试人员通过对测试用例进行优先排序,并只运行那些符合现有约束的用例来解决这个问题。不幸的是,这通常违反了RTS的关键假设,使RTS技术无法保证,并使回归测试性能变得不可预测。尽管如此,现有的优先级技术是无内存的,隐含地假设本地选择可以确保足够的长期运行性能。相反,我们提出了一种基于历史执行数据的新技术。我们进行了一个实验来评估其对资源约束回归测试的长期性能的影响。我们的结果揭示了在一系列软件版本中使用这些技术时应该考虑的基本权衡。
{"title":"A history-based test prioritization technique for regression testing in resource constrained environments","authors":"Jung-Min Kim, A. Porter","doi":"10.1109/ICSE.2002.1007961","DOIUrl":"https://doi.org/10.1109/ICSE.2002.1007961","url":null,"abstract":"Regression testing is an expensive and frequently executed maintenance process used to revalidate modified software. To improve it, regression test selection (RTS) techniques strive to lower costs without overly reducing effectiveness by carefully selecting a subset of the test suite. Under certain conditions, some can even guarantee that the selected test cases perform no worse than the original test suite. This ignores certain software development realities such as resource and time constraints that may prevent using RTS techniques as intended (e.g., regression testing must be done overnight, but RTS selection returns two days worth of tests). In practice, testers work around this by prioritizing the test cases and running only those that fit within existing constraints. Unfortunately this generally violates key RTS assumptions, voiding RTS technique guarantees and making regression testing performance unpredictable. Despite this, existing prioritization techniques are memoryless, implicitly assuming that local choices can ensure adequate long run performance. Instead, we propose a new technique that bases prioritization on historical execution data. We conducted an experiment to assess its effects on the long run performance of resource constrained regression testing. Our results expose essential tradeoffs that should be considered when using these techniques over a series of software releases.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131550138","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}
引用次数: 447
Agent-based tactics for goal-oriented requirements elaboration 面向目标的需求细化的基于代理的策略
Emmanuel Letier, A. V. Lamsweerde
Goal orientation is an increasingly recognized paradigm for eliciting, structuring, analyzing and documenting system requirements. Goals are statements of intent ranging from high-level, strategic concerns to low-level, technical requirements on the software-to-be and assumptions on its environment. Achieving goals require the cooperation of agents such as software components, input/output devices and human agents. The assignment of responsibilities for goals to agents is a critical decision in the requirements engineering process as alternative agent assignments define alternative system proposals. The paper describes a systematic technique to support the process of refining goals, identifying agents, and exploring alternative responsibility assignments. The underlying principles are to refine goals until they are assignable to single agents, and to assign a goal to an agent only if the agent can realize the goal. There are various reasons why a goal may not be realizable by an agent, e.g., the goal may refer to variables that are not monitorable or controllable by the agent. The notion of goal realizability is first defined on formal grounds; it provides a basis for identifying a complete taxonomy of realizability problems. From this taxonomy we systematically derive a catalog of tactics for refining goals and identifying agents so as to resolve realizability problems. Each tactics corresponds to the application of a formal refinement pattern that relieves the specifier from verifying the correctness of refinements in temporal logic. Our techniques have been used in two case studies of significant size; excerpts are shown to illustrate the main ideas.
目标导向是一种越来越被认可的范例,用于引出、构建、分析和记录系统需求。目标是对意图的陈述,范围从高层次的战略关注到低层次的技术需求,以及对软件环境的假设。实现目标需要软件组件、输入/输出设备和人工代理等代理的合作。在需求工程过程中,将目标的责任分配给代理是一个关键的决策,因为可选择的代理分配定义了可选择的系统建议。本文描述了一种系统的技术来支持细化目标、识别代理和探索替代责任分配的过程。基本原则是细化目标,直到它们可以分配给单个代理,并且只有当代理能够实现目标时才将目标分配给代理。智能体无法实现目标的原因有很多,例如,目标可能涉及到智能体无法监控或控制的变量。目标可实现性的概念首先是在形式基础上定义的;它为确定可实现性问题的完整分类提供了基础。从这个分类法中,我们系统地导出了一套用于精炼目标和识别代理的策略目录,从而解决可实现性问题。每种策略都对应于正式细化模式的应用程序,该模式使说明符不必验证时态逻辑中细化的正确性。我们的技术已经在两个重要的案例研究中使用;下面是一些节选来说明主要思想。
{"title":"Agent-based tactics for goal-oriented requirements elaboration","authors":"Emmanuel Letier, A. V. Lamsweerde","doi":"10.1145/581352.581353","DOIUrl":"https://doi.org/10.1145/581352.581353","url":null,"abstract":"Goal orientation is an increasingly recognized paradigm for eliciting, structuring, analyzing and documenting system requirements. Goals are statements of intent ranging from high-level, strategic concerns to low-level, technical requirements on the software-to-be and assumptions on its environment. Achieving goals require the cooperation of agents such as software components, input/output devices and human agents. The assignment of responsibilities for goals to agents is a critical decision in the requirements engineering process as alternative agent assignments define alternative system proposals. The paper describes a systematic technique to support the process of refining goals, identifying agents, and exploring alternative responsibility assignments. The underlying principles are to refine goals until they are assignable to single agents, and to assign a goal to an agent only if the agent can realize the goal. There are various reasons why a goal may not be realizable by an agent, e.g., the goal may refer to variables that are not monitorable or controllable by the agent. The notion of goal realizability is first defined on formal grounds; it provides a basis for identifying a complete taxonomy of realizability problems. From this taxonomy we systematically derive a catalog of tactics for refining goals and identifying agents so as to resolve realizability problems. Each tactics corresponds to the application of a formal refinement pattern that relieves the specifier from verifying the correctness of refinements in temporal logic. Our techniques have been used in two case studies of significant size; excerpts are shown to illustrate the main ideas.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133504044","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}
引用次数: 163
Smartweaver: an agent-based approach for aspect-oriented development Smartweaver:面向方面开发的基于代理的方法
Federico Trilnik, J. A. D. Pace, M. Campo
Summary form only given. Proposes an approach for enhancing aspect-oriented software development considering aspects as first-class design entities. The proposal puts together lines of research coming from different fields, namely: aspect-oriented frameworks, aspect models extending UML models, knowledge-driven framework documentation and agent-based planning. The concept of smart-weaving promotes essentially an early incorporation of aspects in the development cycle, so that designers are able to specify their designs by means of aspect models, reuse parts of these models, and also provide different strategies to map generic aspect structures to specific implementations. With this purpose, we have built an experimental environment called Smartweaver aiming to support this process. The kind of assistance provided by the tool relies on the Smartbooks method, a method extending traditional techniques for framework documentation. Smartbooks includes a special planning agent that is able to derive the sequence of activities that should be executed to implement a given functionality from a target framework.
只提供摘要形式。提出了一种将方面作为一级设计实体来增强面向方面的软件开发的方法。该建议将来自不同领域的研究线放在一起,即:面向方面的框架、扩展UML模型的方面模型、知识驱动的框架文档和基于代理的计划。智能编织的概念从本质上促进了在开发周期中早期合并方面,这样设计人员就能够通过方面模型来指定他们的设计,重用这些模型的部分,并提供不同的策略来将通用的方面结构映射到特定的实现。为此,我们建立了一个名为Smartweaver的实验环境,旨在支持这一过程。该工具提供的辅助依赖于Smartbooks方法,这是一种扩展框架文档的传统技术的方法。智能本包括一个特殊的计划代理,它能够从目标框架中派生出应该执行的活动序列,以实现给定的功能。
{"title":"Smartweaver: an agent-based approach for aspect-oriented development","authors":"Federico Trilnik, J. A. D. Pace, M. Campo","doi":"10.1145/581339.581467","DOIUrl":"https://doi.org/10.1145/581339.581467","url":null,"abstract":"Summary form only given. Proposes an approach for enhancing aspect-oriented software development considering aspects as first-class design entities. The proposal puts together lines of research coming from different fields, namely: aspect-oriented frameworks, aspect models extending UML models, knowledge-driven framework documentation and agent-based planning. The concept of smart-weaving promotes essentially an early incorporation of aspects in the development cycle, so that designers are able to specify their designs by means of aspect models, reuse parts of these models, and also provide different strategies to map generic aspect structures to specific implementations. With this purpose, we have built an experimental environment called Smartweaver aiming to support this process. The kind of assistance provided by the tool relies on the Smartbooks method, a method extending traditional techniques for framework documentation. Smartbooks includes a special planning agent that is able to derive the sequence of activities that should be executed to implement a given functionality from a target framework.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114480020","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Efficient path conditions in dependence graphs 依赖图中的有效路径条件
T. Robschink, G. Snelting
Program slicing combined with constraint solving is a powerful tool for software analysis. Path conditions are generated for a slice or chop, which-when solved for the input variables-deliver compact "witnesses" for dependences or illegal influences between program points. We show how to make path conditions work for large programs. Aggressive engineering, based on interval analysis and BDDs, is shown to overcome the potential combinatoric explosion. Case studies and empirical data demonstrate the usefulness of path conditions for practical program analysis.
结合约束求解的程序切片是软件分析的有力工具。为切片或切块生成路径条件,当为输入变量求解时,为程序点之间的依赖或非法影响提供紧凑的“见证”。我们将展示如何使路径条件适用于大型程序。基于区间分析和bdd的积极工程可以克服潜在的组合爆炸。案例研究和经验数据证明了路径条件对实际程序分析的有效性。
{"title":"Efficient path conditions in dependence graphs","authors":"T. Robschink, G. Snelting","doi":"10.1145/581339.581398","DOIUrl":"https://doi.org/10.1145/581339.581398","url":null,"abstract":"Program slicing combined with constraint solving is a powerful tool for software analysis. Path conditions are generated for a slice or chop, which-when solved for the input variables-deliver compact \"witnesses\" for dependences or illegal influences between program points. We show how to make path conditions work for large programs. Aggressive engineering, based on interval analysis and BDDs, is shown to overcome the potential combinatoric explosion. Case studies and empirical data demonstrate the usefulness of path conditions for practical program analysis.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"76 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123539410","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}
引用次数: 43
Systems engineering: an essential engineering discipline for the 21st Century 系统工程:21世纪必不可少的工程学科
D. Rhodes
Summary form only given. The engineering of systems in the 21st Century demands robust use of the systems approach given the nature of our times, as well as the systems being created. The global marketplace, changing competition dynamics, shorter life cycles, and increasing complexity characterize our environment. We are building systems that are much larger than ever before and we are building systems that are infinitely smaller than ever before. Maturity of technical, management, and infrastructure processes are competitive discriminators. Systems engineering, both as a profession and as practiced by multi-discipline practitioners, is key to addressing these challenges. Over the past decade, there have been frequent debates on whether systems engineering is an approach or a formal field of engineering. Given the technical, management, and environmental challenges of this century, I believe that systems engineering must be an essential engineering discipline for the 21st Century. This talk discusses the state of the art and practice of systems engineering, and several initiatives focused on its evolution as a formal engineering discipline. Systems engineering and software engineering must each evolve as unique engineering disciplines to address the engineering problems of the 21st Century. We must ensure their evolution results in shared knowledge, and highly collaborative approaches and methods drawing on the unique strengths of each discipline.
只提供摘要形式。考虑到我们时代的性质,21世纪的系统工程要求系统方法的强大使用,以及正在创建的系统。全球市场、不断变化的竞争动态、更短的生命周期和日益增加的复杂性是我们环境的特征。我们正在构建比以往任何时候都大得多的系统,我们正在构建比以往任何时候都小得多的系统。技术、管理和基础设施过程的成熟度是竞争性的区别因素。系统工程,无论是作为一种专业还是作为多学科实践者的实践,都是解决这些挑战的关键。在过去的十年中,关于系统工程究竟是一种方法还是一个正式的工程领域,一直存在着频繁的争论。考虑到本世纪的技术、管理和环境挑战,我相信系统工程必须成为21世纪的基本工程学科。这次演讲讨论了系统工程的艺术和实践的状态,以及几个关注其作为正式工程学科的演变的倡议。系统工程和软件工程必须各自发展为独特的工程学科,以解决21世纪的工程问题。我们必须确保它们的发展导致共享知识,以及利用每个学科独特优势的高度协作的方法和方法。
{"title":"Systems engineering: an essential engineering discipline for the 21st Century","authors":"D. Rhodes","doi":"10.1145/581339.581342","DOIUrl":"https://doi.org/10.1145/581339.581342","url":null,"abstract":"Summary form only given. The engineering of systems in the 21st Century demands robust use of the systems approach given the nature of our times, as well as the systems being created. The global marketplace, changing competition dynamics, shorter life cycles, and increasing complexity characterize our environment. We are building systems that are much larger than ever before and we are building systems that are infinitely smaller than ever before. Maturity of technical, management, and infrastructure processes are competitive discriminators. Systems engineering, both as a profession and as practiced by multi-discipline practitioners, is key to addressing these challenges. Over the past decade, there have been frequent debates on whether systems engineering is an approach or a formal field of engineering. Given the technical, management, and environmental challenges of this century, I believe that systems engineering must be an essential engineering discipline for the 21st Century. This talk discusses the state of the art and practice of systems engineering, and several initiatives focused on its evolution as a formal engineering discipline. Systems engineering and software engineering must each evolve as unique engineering disciplines to address the engineering problems of the 21st Century. We must ensure their evolution results in shared knowledge, and highly collaborative approaches and methods drawing on the unique strengths of each discipline.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125998278","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
The impact of test suite granularity on the cost-effectiveness of regression testing 测试套件粒度对回归测试成本效益的影响
G. Rothermel, Sebastian G. Elbaum, Alexey G. Malishevsky, P. Kallakuri, B. Davia
Regression testing is an expensive testing process used to validate software following modifications. The cost-effectiveness of regression testing techniques varies with characteristics of test suites. One such characteristic, test suite granularity, involves the way in which test inputs are grouped into test cases within a test suite. Various cost-benefit tradeoffs have been attributed to choices of test suite granularity, but almost no research has formally examined these tradeoffs. To address this lack, we conducted several controlled experiments, examining the effects of test suite granularity on the costs and benefits of several regression testing methodologies across six releases of two non-trivial software systems. Our results expose essential tradeoffs to consider when designing test suites for use in regression testing evolving systems.
回归测试是一种昂贵的测试过程,用于验证修改后的软件。回归测试技术的成本效益随测试套件的特征而变化。其中一个特征,测试套件粒度,涉及到测试输入被分组到测试套件中的测试用例中的方式。各种成本效益的权衡都归因于测试套件粒度的选择,但是几乎没有研究正式地检查过这些权衡。为了解决这个不足,我们进行了几个控制实验,检查了测试套件粒度对两个重要软件系统的六个版本中几种回归测试方法的成本和收益的影响。我们的结果揭示了在设计用于回归测试演进系统的测试套件时需要考虑的基本权衡。
{"title":"The impact of test suite granularity on the cost-effectiveness of regression testing","authors":"G. Rothermel, Sebastian G. Elbaum, Alexey G. Malishevsky, P. Kallakuri, B. Davia","doi":"10.1145/581356.581358","DOIUrl":"https://doi.org/10.1145/581356.581358","url":null,"abstract":"Regression testing is an expensive testing process used to validate software following modifications. The cost-effectiveness of regression testing techniques varies with characteristics of test suites. One such characteristic, test suite granularity, involves the way in which test inputs are grouped into test cases within a test suite. Various cost-benefit tradeoffs have been attributed to choices of test suite granularity, but almost no research has formally examined these tradeoffs. To address this lack, we conducted several controlled experiments, examining the effects of test suite granularity on the costs and benefits of several regression testing methodologies across six releases of two non-trivial software systems. Our results expose essential tradeoffs to consider when designing test suites for use in regression testing evolving systems.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124827694","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}
引用次数: 92
Concern graphs: finding and describing concerns using structural program dependencies 关系图:使用结构化的程序依赖关系来发现和描述关系
M. Robillard, G. Murphy
Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Existing approaches available to help software developers locate and manage scattered concerns use a representation based on lines of source code, complicating the analysis of the concerns. In this paper, we introduce the concern graph representation that abstracts the implementation details of a concern and makes explicit the relationships between different parts of the concern. The abstraction used in a Concern Graph has been designed to allow an obvious and inexpensive mapping back to the corresponding source code. To investigate the practical tradeoffs related to this approach, we have built the feature exploration and analysis tool (FEAT) that allows a developer to manipulate a concern representation extracted from a Java system, and to analyze the relationships of that concern to the code base. We have used this tool to find and describe concerns related to software change tasks. We have performed case studies to evaluate the feasibility, usability, and scalability of the approach. Our results indicate that concern graphs can be used to document a concern for change, that developers unfamiliar with concern graphs can use them effectively, and that the underlying technology scales to industrial-sized programs.
许多维护任务处理的问题或特性在组成系统的源代码中没有很好地模块化。用于帮助软件开发人员定位和管理分散的关注点的现有方法使用基于源代码行的表示,使关注点的分析变得复杂。在本文中,我们引入了关注图表示,它抽象了关注的实现细节,并明确了关注的不同部分之间的关系。在关注图中使用的抽象被设计成允许明显且廉价的映射回相应的源代码。为了研究与此方法相关的实际权衡,我们构建了特性探索和分析工具(FEAT),该工具允许开发人员操作从Java系统中提取的关注点表示,并分析该关注点与代码库的关系。我们已经使用这个工具来发现和描述与软件变更任务相关的关注点。我们已经执行了案例研究,以评估该方法的可行性、可用性和可伸缩性。我们的结果表明,关注图可以用来记录对变更的关注,不熟悉关注图的开发人员可以有效地使用它们,并且底层技术可以扩展到工业规模的程序。
{"title":"Concern graphs: finding and describing concerns using structural program dependencies","authors":"M. Robillard, G. Murphy","doi":"10.1145/581339.581390","DOIUrl":"https://doi.org/10.1145/581339.581390","url":null,"abstract":"Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Existing approaches available to help software developers locate and manage scattered concerns use a representation based on lines of source code, complicating the analysis of the concerns. In this paper, we introduce the concern graph representation that abstracts the implementation details of a concern and makes explicit the relationships between different parts of the concern. The abstraction used in a Concern Graph has been designed to allow an obvious and inexpensive mapping back to the corresponding source code. To investigate the practical tradeoffs related to this approach, we have built the feature exploration and analysis tool (FEAT) that allows a developer to manipulate a concern representation extracted from a Java system, and to analyze the relationships of that concern to the code base. We have used this tool to find and describe concerns related to software change tasks. We have performed case studies to evaluate the feasibility, usability, and scalability of the approach. Our results indicate that concern graphs can be used to document a concern for change, that developers unfamiliar with concern graphs can use them effectively, and that the underlying technology scales to industrial-sized programs.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129401699","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}
引用次数: 380
Assuring and evolving concurrent programs: annotations and policy 保证并发程序的发展:注释和策略
Aaron Greenhouse, W. Scherlis
Assuring and evolving concurrent programs requires understanding the concurrency-related design decisions used in their implementation. In Java-style shared-memory programs, these decisions include which state is shared, how access to it is regulated, the roles of threads, and the policy that distinguishes desired concurrency from race conditions. We use case studies from production Java code to explore the costs and benefits of a new annotation-based approach for expressing design intent. Our intent is both to assist in establishing "thread safety" attributes in code and to support tools that safely restructure code. The annotations we use express "mechanical" properties such as lock-state associations, uniqueness of references, and encapsulation of state into named aggregations. Our analyses revealed race conditions in our case study samples, drawn from open-source projects and library code. The novel technical features of this approach include (1) flexible encapsulation via aggregations of state that can cross object boundaries, (2) the association of locks with state aggregations, (3) policy descriptions for allowable method interleavings, and (4) the incremental process for inserting, validating, and exploiting annotations.
确保和发展并发程序需要理解在其实现中使用的与并发相关的设计决策。在java风格的共享内存程序中,这些决策包括哪些状态是共享的、如何规范对状态的访问、线程的角色以及区分期望并发性和竞争条件的策略。我们使用产品Java代码中的案例研究来探索用于表达设计意图的基于注释的新方法的成本和收益。我们的目的是帮助在代码中建立“线程安全”属性,并支持安全重构代码的工具。我们使用的注释表达了“机械”属性,如锁状态关联、引用的唯一性以及将状态封装为命名聚合。我们的分析在我们的案例研究样本中揭示了竞争条件,这些样本来自开源项目和库代码。这种方法的新技术特征包括:(1)通过可以跨越对象边界的状态聚合灵活封装,(2)锁与状态聚合的关联,(3)允许的方法交叉的策略描述,以及(4)插入、验证和利用注释的增量过程。
{"title":"Assuring and evolving concurrent programs: annotations and policy","authors":"Aaron Greenhouse, W. Scherlis","doi":"10.1145/581339.581395","DOIUrl":"https://doi.org/10.1145/581339.581395","url":null,"abstract":"Assuring and evolving concurrent programs requires understanding the concurrency-related design decisions used in their implementation. In Java-style shared-memory programs, these decisions include which state is shared, how access to it is regulated, the roles of threads, and the policy that distinguishes desired concurrency from race conditions. We use case studies from production Java code to explore the costs and benefits of a new annotation-based approach for expressing design intent. Our intent is both to assist in establishing \"thread safety\" attributes in code and to support tools that safely restructure code. The annotations we use express \"mechanical\" properties such as lock-state associations, uniqueness of references, and encapsulation of state into named aggregations. Our analyses revealed race conditions in our case study samples, drawn from open-source projects and library code. The novel technical features of this approach include (1) flexible encapsulation via aggregations of state that can cross object boundaries, (2) the association of locks with state aggregations, (3) policy descriptions for allowable method interleavings, and (4) the incremental process for inserting, validating, and exploiting annotations.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128353889","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}
引用次数: 47
期刊
Proceedings of the 24th International Conference on Software Engineering. ICSE 2002
全部 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