测试用例设计,不仅要切切实实地从客户需求出发,逐层深入下去,理解功能特性,探索应用场景,系统地设计好测试用例,而且测试用例设计的方法和手段比较多,如前面所介绍的基于流程图设计方法、基于UML视图方法等。除此之外,还有其他方法,如通过建立用例矩阵(Case Matrix)来全面考量测试用例覆盖的各种情况,也可以借助正则表达式等数学方法来设计、优化测试用例。
测试用例设计,是一个智力活动过程,是一个不断启发自己、不断思考的过程。在设计测试用例的时候,可以采用启发式思考方法,例如,当我们测试交通地图,要确定从A点出发到B点形成的路线选择是否为最短路径时,首先想到用A、B两点间直线距离与其路线长度比较,如果两者之差在20%之内是合理的。但是,这显然远远不够,因为当我们看到如图4-11所示的地图时,发现A点必须绕过湖,才能到B,那么A、B两点间路线的长度是它们直线距离的几倍。这时,就可以考虑从B点出发,将A设为终点,获得B到A的反向路线,然后,将“A到B的路线长度”和“B到A的路线长度”进行比较。
图4-11 行车路线特殊场景示例
如果A到B是单向行车道,那么情况如何呢?我们就需要在A、B之间选择一点C,让“A到B的路线距离”和“A到C的路线距离与C到B的路线距离之和”进行比较……这样不断进行下去,获得新的启发,设计出新的测试用例覆盖情况,直到自己对测试覆盖率具有足够的信心为止。