Precisely Detecting Runtime Change Interactions for Evolving Software

Precisely Detecting Runtime Change Interactions for Evolving Software
复制标题

精确检测不断发展的软件的运行时更改交互

DOI:
--
复制
发表时间:
2010
期刊:
2010 Third International Conference on Software Testing, Verification and Validation
影响因子:
--
通讯作者:
A. Orso
A. Orso
中科院分区:
--
文献类型:
--
作者:
Raúl A. Santelices;M. J. Harrold;A. Orso

文献摘要

被引文献

相似文献

开发人员经常对软件进行多次更改。引入这些变化是为了协同工作或实现单独的目标。然而,变化可能不会如预期那样相互作用,或者可能会产生不期望的副作用。因此,对于软件开发任务来说,准确地知道哪些变化是相互作用的是至关重要的。例如,测试人员需要这些信息来确保回归测试套件测试变更的组合行为。再举一个例子,开发人员团队必须确定合并并行修改的程序的变体是否安全。现有的技术可以用来检测在运行时的变化之间的潜在的相互作用,但这些报告往往是粗糙和不精确的。为了解决这个问题,在本文中,我们首先提出了一个正式的模型,在代码级的变化的相互作用,然后描述了一种新的技术,基于这个模型,在运行时检测这种相互作用的准确性。我们还提出了我们的技术与其他技术的一组Java主题的比较结果。我们的研究结果清楚地表明,现有的技术是太不准确,只有我们的技术,所有这些研究,提供了可接受的信心,在检测真实的变化发生在运行时的相互作用。
Developers often make multiple changes to software. These changes are introduced to work cooperatively or to accomplish separate goals. However, changes might not interact as expected or may produce undesired side effects. Thus, it is crucial for software-development tasks to know exactly which changes interact. For example, testers need this information to ensure that regression test suites test the combined behaviors of changes. For another example, teams of developers must determine whether it is safe to merge variants of a program modified in parallel. Existing techniques can be used to detect at runtime potential interactions among changes, but these reports tend to be coarse and imprecise. To address this problem, in this paper, we first present a formal model of change interactions at the code level, and then describe a new technique, based on this model, for detecting at runtime such interactions with accuracy. We also present the results of a comparison of our technique with other techniques on a set of Java subjects. Our results clearly suggest that existing techniques are too inaccurate and only our technique, of all those studied, provides acceptable confidence in detecting real change interactions occurring at runtime.