Change-aware preemption prioritization

Change-aware preemption prioritization
复制标题

变化感知抢占优先级

DOI:
--
复制
发表时间:
2011
期刊:
International Symposium on Software Testing and Analysis
影响因子:
--
通讯作者:
D. Marinov
D. Marinov
中科院分区:
--
文献类型:
--
作者:
V. Jagannath;Q. Luo;D. Marinov

文献摘要

被引文献

相似文献

随着开发人员的添加更多功能,响应需求更改并修复故障,成功的软件会不断发展。回归测试广泛用于确保不断发展的软件的有效性。随着回归测试套件的增长,执行它们变得昂贵。当测试套件包含多线程测试时,问题会加剧。这些测试通常是长时间运行的,因为它们探索许多不同的线程时间表,以搜索并发故障,例如数据,违规原子和僵局。尽管已经提出了许多用于回归测试优先级,选择和最小化测试的技术,但多线程代码的工作并不多。 我们提出了一种称为“变化预先抢先优先级”(CAPP)的新型技术,该技术使用有关软件演化变化的信息,以优先考虑多线程回归测试的调度。我们已经在两个框架中实施了CAPP,以系统地探索多线程Java代码。我们评估了CAPP在多线程Java程序中检测15个故障的CAPP,包括大型开源程序。结果表明,CAPP可以大大减少检测多线程回归故障所需的勘探。
Successful software evolves as developers add more features, respond to requirements changes, and fix faults. Regression testing is widely used for ensuring the validity of evolving software. As regression test suites grow over time, it becomes expensive to execute them. The problem is exacerbated when test suites contain multithreaded tests. These tests are generally long running as they explore many different thread schedules searching for concurrency faults such as dataraces, atomicity violations, and deadlocks. While many techniques have been proposed for regression test prioritization, selection, and minimization for sequential tests, there is not much work for multithreaded code. We present a novel technique, called Change-Aware Preemption Prioritization (CAPP), that uses information about the changes in software evolution to prioritize the exploration of schedules in a multithreaded regression test. We have implemented CAPP in two frameworks for systematic exploration of multithreaded Java code. We evaluated CAPP on the detection of 15 faults in multithreaded Java programs, including large open-source programs. The results show that CAPP can substantially reduce the exploration required to detect multithreaded regression faults.