中文

寻找输入空间有效区与无效区之间的边界

软件工程 2018-10-17 v1

摘要

在鲁棒性测试背景下,输入空间的有效区与无效区之间的边界可能是错误输入的一个有趣来源。知晓特定被测软件(SUT)的边界位置对于依据需求进行验证至关重要。然而,寻找 SUT 实际实现边界的位置是一个尚未受到太多关注的非平凡问题。本文提出一种寻找输入空间有效区与无效区之间边界的方法。所提方法包含两步。首先,由搜索算法引导以最大化到已知有效测试用例距离的测试数据生成器,生成更靠近边界的有效测试用例。其次,这些有效测试用例经历变异以试图将其推过边界进入输入空间的无效部分。这产生一对测试集,一个由边界有效侧的测试用例组成,另一个为外侧的匹配集,两集之间仅有微小距离。该方法在现代编程语言标准库的若干实例上进行了评估。我们提出了一种确定输入空间有效区与无效区之间边界的方法,并将其应用于具有非连续有效输入区的 SUT。由所构建测试对之间的微小距离,以及一组含有效测试用例而另一组含无效测试用例这一事实,我们得出结论:该测试对描述了该输入空间有效区与无效区之间的边界。不同距离与变异算子集之间可观察到行为差异,但均表明该方法能够识别输入空间有效区与无效区之间的边界。这是迈向更自动化鲁棒性测试的重要一步。

关键词

引用

@article{arxiv.1810.06720,
  title  = {Finding a boundary between valid and invalid regions of the input space},
  author = {Bogdan Marculescu and Robert Feldt},
  journal= {arXiv preprint arXiv:1810.06720},
  year   = {2018}
}

备注

10 pages, conference