首页> 外文期刊>International Journal on Software Tools for Technology Transfer >Generating effective tests for concurrent programs via AI automated planning techniques
【24h】

Generating effective tests for concurrent programs via AI automated planning techniques

机译:通过AI自动计划技术为并发程序生成有效的测试

获取原文
获取原文并翻译 | 示例
           

摘要

Testing concurrent programs is a challenging problem due to interleaving explosion: even for a fixed set of inputs, there is a huge number of concurrent runs that need to be tested to account for scheduler behavior. Testing all possible schedules is not practical. Consequently, most effective testing algorithms only test a select subset of runs. For example, limiting testing to runs that contain data races or atomicity violations has been shown to capture a large proportion of concurrency bugs. In this paper we present a general approach to concurrent program testing that is based on techniques from artificial intelligence (AI) automated planning. We propose a framework for predicting concurrent program runs that violate a collection of generic correctness specifications for concurrent programs, namely runs that contain data races, atomicity violations, or null-pointer dereferences. Our prediction is based on observing an arbitrary run of the program, and using information collected from this run to model the behavior of the program, and to predict new runs that contain bugs with one of the above noted violation patterns. We characterize the problem of predicting such new runs as an AI sequential planning problem with the temporally extended goal of achieving a particular violation pattern. In contrast to many state-of-the-art approaches, in our approach feasibility of the predicted runs is guaranteed and, therefore, all generated runs are fully usable for testing.Moreover, our planning-based approach has the merit that it can easily accommodate a variety of violation patterns which serve as the selection criteria for guiding search in the state space of concurrent runs. This is achieved by simply modifying the planning goal. We have implemented our approach using state-of-the-art AI planning techniques and tested it within the Penelope concurrent program testing framework [35]. Nevertheless, the approach is general and is amenable to a variety of program testing frameworks. Our experiments with a benchmark suite showed that our approach is very fast and highly effective, finding all known bugs.
机译:由于交错爆炸,测试并发程序是一个具有挑战性的问题:即使对于固定的一组输入,也需要测试大量的并发运行以说明调度程序的行为。测试所有可能的时间表是不切实际的。因此,最有效的测试算法仅测试运行的选定子集。例如,将测试限制为包含数据争用或原子性违规的运行已显示出捕获了大量并发性错误。在本文中,我们提出了一种基于并发程序测试的通用方法,该方法基于人工智能(AI)自动计划的技术。我们提出了一个用于预测并发程序运行的框架,该框架违反了并发程序的通用正确性规范的集合,即,包含数据争用,原子性违规或空指针取消引用的运行。我们的预测是基于观察程序的任意运行,并使用从该运行中收集的信息来对程序的行为进行建模,并预测包含上述违规模式之一的错误的新运行。我们将预测此类新运行的问题描述为AI顺序计划问题,并在时间上扩展了实现特定违规模式的目标。与许多最先进的方法相比,在我们的方法中可以保证预测运行的可行性,因此,所有生成的运行都可以完全用于测试。此外,我们基于计划的方法的优点是可以轻松进行容纳各种违规模式,这些模式用作在并发运行的状态空间中指导搜索的选择标准。这可以通过简单地修改计划目标来实现。我们使用最先进的AI计划技术实施了我们的方法,并在Penelope并发程序测试框架中对其进行了测试[35]。但是,该方法是通用的,并且适用于各种程序测试框架。我们使用基准套件进行的实验表明,我们的方法非常快速且高效,发现了所有已知的错误。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号