案例3:测试行车路线(Driving Direction)
在线地图可以给出从地点A到地点B的行车路线(Driving Direction)。那么如何测试该功能呢?
Harry的测试输入集合是全美所有邮政编码(Zip Code)的两两组合。这是一个非常庞大的集合,它提供了令人放心的测试覆盖率。
Harry的测试策略仍旧是构建启发式测试Oracle。开始时,他的规则集合包含这么一条规则:
行车路线的长度与A到B的直线距离没有数量级的差距。 |
这里需要对在线地图的实现稍作说明。在线地图的实现可以大致分为两层:绘制地图的Web UI和提供地图数据的Web Service API。API能够返回指定邮政编码的经纬度坐标。因此,利用其返回值,就可以算出两点间的直线距离。对于行车路线,API返回的是一系列点的坐标值,Web UI将行车路线路线绘制为贯穿这些点的曲线。计算临近两点间的距离,将结果累加,就可以得到行车路线的长度。因此,上述规则的实现并不复杂。
然而,在实际测试过程中,这条规则却产生了许多“误报”。下图就是一个例子。
于是Harry替换了检查规则。新加入的规则是:
从A到B的行车路线的长度与B到A的行车路线的长度没有明显差别。 |