首页> 外文会议>IEEE International Conference on Software Engineering >A safe regression test selection technique for database-driven applications
【24h】

A safe regression test selection technique for database-driven applications

机译:数据库驱动应用的安全回归测试选择技术

获取原文

摘要

Regression testing is a widely-used method for checking whether modifications to software systems have adversely affected the overall functionality. This is potentially an expensive process, since test suites can be large and time-consuming to execute. The overall costs can be reduced if tests that cannot possibly be affected by the modifications are ignored. Various techniques for selecting subsets of tests for re-execution have been proposed, as well as methods for proving that particular test selection criteria do not omit relevant tests. However, current selection techniques are focused on identifying the impact of modifications on program state. They assume that the only factor that can change the result of a test case is the set of input values given for it, while all other influences on the behavior of the program (such as external interrupts or hardware faults) will be constant for each re-execution of the test. This assumption is impractical in the case of an important class of software system, i.e. systems which make use of an external persistent state, such as a database management system, to share information between application invocations. If applied naively to such systems, existing regression test selection algorithms will omit certain test cases which could in fact be affected by the modifications to the code. In this paper, we show why this is the case, and propose a new definition of safety for regression test selection that takes into account the interactions of the program with a database state. We also present an algorithm and associated tool that safely performs test selection for database-driven applications, and (since efficiency is an important concern for test selection algorithms) we propose a variant that defines safety in terms of database state alone. This latter form of safety allows more efficient regression testing to be performed for applications in which program state is used only as a temporary holding space for data from the database. The claims of increased efficiency of both forms of safety are supported by the results of an empirical comparison with existing techniques.
机译:回归测试是一种广泛使用的方法,用于检查对软件系统的修改是否会对整体功能产生不利影响。这是可能是一个昂贵的过程,因为测试套件可以大而耗时的执行。如果无法忽略不可能受到修改影响的测试,则可以减少总成本。已经提出了用于选择重新执行的测试子集的各种技术,以及用于证明特定测试选择标准的方法不省略相关测试。然而,当前选择技术集中在识别修改对程序状态的影响。他们假设可以改变测试用例结果的唯一因素是给出的一组输入值,而对程序的行为(例如外部中断或硬件故障)的所有其他影响将是每个RE的常量 - 对测试的影响。在重要的软件系统的情况下,这种假设是不切实际的,即使用外部持久状态(例如数据库管理系统)的系统,以共享应用程序调用之间的信息。如果对这样的系统天真地应用,现有的回归测试选择算法将省略某些测试用例,实际上可能受到代码的修改的影响。在本文中,我们展示了为什么如此为什么,并提出了对回归测试选择的安全的新定义,以考虑程序与数据库状态的相互作用。我们还提供了一种算法和相关工具,安全地对数据库驱动应用程序进行了测试选择,(因为效率是测试选择算法的重要关注),我们提出了一种variant,用于单独定义数据库状态的安全性。这种安全性的安全性允许对应用程序状态仅用为来自数据库的数据的临时保持空间的应用程序来执行更有效的回归测试。通过与现有技术的经验比较结果,支持两种安全性效率提高的权利要求。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号