在测试设计和实施过程中,经常要面对状态迁移测试。但是测试者对状态迁移测试的深度和覆盖度如果不能进行有效的计算,就容易面临容易测试不全等问题。N-Switch算法是一种比较经典的状态迁移覆盖算法,在这里我们介绍一下N-Switch算法,并尝试对其进行自动化实现,实现从状态图到N-Switch状态树的自动化转换。
状态图与状态树
我们通常使用状态图来描述和记录状态迁移,可以看到,状态迁移图在一个状态下,同一迁移条件只能迁移到唯一的下一状态:
状态图中通常包括了状态(1、2、3)和迁移条件(a,b,c,d,e,f)
但是我们在进行测试设计时,需要先把状态图变成状态树,才能进行路径的测试:
可以看到,上面的状态树包括了四条路径: