Page 302 - 《软件学报》2021年第6期
P. 302
1876 Journal of Software 软件学报 Vol.32, No.6, June 2021
Fig.9 An example of difference comparison method
图 9 差值对比方式举例
在 3 天内,我们共使用该方法生成了 3 654 组测试用例;对于最终输出产生不一致的原因,我们也对其进行
了分析.关于评价指标的设定是否能保证生成高质量的种子,我们也对此进行了实验.我们分别在设定评估指标
和没有任何评估指标的情况下,使用该方法进行测试,并对输出不一致的触发情况进行了统计和比较分析,如表
2 所示:经过评估指标后的种子质量有了明显提高,能触发更多的不一致输出.这也回答了我们前面提出的第 1
个问题,即该方法确实可以生成高质量的种子.
Table 2 Output inconsistent data
表 2 输出不一致数据统计
是否使用评估指标 触发不一致输出用例数量(组) 未触发不一致输出用例数量(组) 不一致输出比例(%)
是 3 120 534 85.37
否 2 066 1 588 56.52
4.3 实验流程
关于实验,我们首先确定被测目标.ROS 在应用层为机器人开发者集成了大量的功能包,例如定位绘图、行
动规划、感知、模拟等等;其中,坐标系是一个非常重要的概念,TF 则是 ROS 为用户提供的与其息息相关的功
能包;它使用一种树型数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助用户在任意时
间,将点、向量等数据的坐标,在两个参考系中完成坐标变换.换句话说,TF 可以帮助我们简化坐标系间的转换工
作,更好地实现机器人开发.使用 TF 功能主要包括广播和监听两个环节:广播过程可以向系统中广播参考系之
间的坐标变换关系;系统中更可能会存在多个不同部分的 TF 变换广播,每个广播都可以直接将参考系变换关系
直接插入 TF 树中,不需要再进行同步.监听过程则接收并缓存系统中发布的所有参考系变换,并从中查询所需
要的参考系变换.TF 和 TF2 作为同时存在的两个功能包版本,其应用的准确性也将直接影响机器人功能开发.
本文采用差分模糊测试的方法验证 TF 在 ROS 应用中的准确性.我们将差分测试的框架与模糊测试相结合,测
试两个不同版本功能包在应用时的准确性.
接下来建立被测模型,如图 10 所示.
广播坐标变换规则
广播节点1
tf_broadcast 监听节点tf_listener
ٛ • 接收变换规则
ٛ • 完成坐标转换
广播节点2
tf2_broadcast
广播坐标变换规则
Fig.10 Tested model
图 10 被测模型