中文

Scratch 程序的自动化测试生成

软件工程 2022-08-24 v2

摘要

编程教育的重要性催生了专用的教育编程环境,用户在其中以可视化方式排列基于积木块的编程结构,通常控制图形化、交互式的类游戏程序。Scratch 编程环境尤为流行,截至本文撰写时有超过 7000 万注册用户。尽管 Scratch 的积木块特性通过防止语法错误来帮助学习者,但仍需要提供反馈与支持以实现预期功能。为支持个性化学习与课堂环境,这种反馈与支持 ideally 应以自动化方式提供,而这需要测试以实现动态程序分析。Whisker 框架支持 Scratch 程序的自动化测试,但为 Scratch 程序创建这些自动化测试颇具挑战。因此,本文研究如何自动生成 Whisker 测试。这带来了重要挑战:首先,类游戏程序通常具有随机性,导致不稳定测试(flaky tests)。其次,Scratch 程序通常由带有长延迟的动画与交互组成,阻碍了经典测试生成方法的应用。在常见编程练习、1000 个随机抽样的 Scratch 用户程序以及 1000 个最流行的 Scratch 程序上的评估表明,我们的方法使 Whisker 能够可靠地加速测试执行,并且尽管许多 Scratch 程序较小且易于覆盖,仍存在许多独特挑战,需要采用多目标算法的先进基于搜索的测试生成以实现高覆盖率。

关键词

引用

@article{arxiv.2202.06274,
  title  = {Automated Test Generation for Scratch Programs},
  author = {Adina Deiner and Patric Feldmeier and Gordon Fraser and Sebastian Schweikl and Wengran Wang},
  journal= {arXiv preprint arXiv:2202.06274},
  year   = {2022}
}

备注

Manuscript submitted for peer review