...
首页> 外文期刊>Software and systems modeling >Fast test suite-driven model-based fault localisation with application to pinpointing defects in student programs
【24h】

Fast test suite-driven model-based fault localisation with application to pinpointing defects in student programs

机译:快速测试套件驱动的基于模型的故障定位,可用于查明学生程序中的缺陷

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

摘要

Fault localisation, i.e. the identification of program locations that cause errors, takes significant effort and cost. We describe a fast model-based fault localisation algorithm that, given a test suite, uses symbolic execution methods to fully automatically identify a small subset of program locations where genuine program repairs exist. Our algorithm iterates over failing test cases and collects locations where an assignment change can repair exhibited faulty behaviour. Our main contribution is an improved search through the test suite, reducing the effort for the symbolic execution of the models and leading to speed-ups of more than two orders of magnitude over the previously published implementation by Griesmayer et al. We implemented our algorithm for C programs, using the KLEE symbolic execution engine, and demonstrate its effectiveness on the Siemens TCAS variants. Its performance is in line with recent alternative model-based fault localisation techniques, but narrows the location set further without rejecting any genuine repair locations where faults can be fixed by changing a single assignment. We also show how our tool can be used in an educational context to improve self-guided learning and accelerate assessment. We apply our algorithm to a large selection of actual student coursework submissions, providing precise localisation within a sub-second response time. We show this using small test suites, already provided in the coursework management system, and on expanded test suites, demonstrating the scalability of our approach. We also show compliance with test suites does not reliably grade a class of "almost-correct" submissions, which our tool highlights, as being close to the correct answer. Finally, we show an extension to our tool that extends our fast localisation results to a selection of student submissions that contain two faults.
机译:故障定位,即确定导致错误的程序位置,需要花费大量的精力和成本。我们描述了一种基于模型的快速故障定位算法,该算法在给定测试套件的情况下,使用符号执行方法来完全自动识别存在真正程序修复的程序位置的一小部分。我们的算法会遍历失败的测试用例,并收集分配更改可以修复出现的错误行为的位置。我们的主要贡献是改进了对测试套件的搜索,减少了模型符号执行的工作量,与之前Griesmayer等人发表的实现相比,将速度提高了两个数量级以上。我们使用KLEE符号执行引擎为C程序实现了算法,并展示了其在Siemens TCAS变体上的有效性。它的性能与最近的基于模型的替代故障定位技术相一致,但是进一步缩小了位置集的范围,同时又不拒绝任何真正的维修位置,在这些维修位置上,可以通过更改单个任务来修复故障。我们还将展示如何在教育环境中使用我们的工具,以改善自我指导的学习并加速评估。我们将算法应用于大量实际的学生课程作业提交中,从而在亚秒级的响应时间内提供了精确的定位。我们使用课程管理系统中已经提供的小型测试套件以及扩展的测试套件对此进行了展示,展示了我们方法的可扩展性。我们还表明,对测试套件的合规性不能可靠地对“几乎正确”的提交类进行评分,因为我们的工具强调该结果接近正确答案。最后,我们展示了对工具的扩展,该工具将快速的本地化结果扩展为包含两个错误的部分学生提交的内容。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号