基于FSM的WIA—PA协议测试序列自动生成技术研究
2014-10-21谢昊飞苏德龙肖尚青郝飞飞
谢昊飞 苏德龙 肖尚青 郝飞飞
摘 要:本文重点介绍基于有限状态机(FSM)测试序列生成方法,并以现场设备安全入网为例,利用该方法生成测试序列。为构建WIA-PA协议测试FSM模型,文中分析了WIA-PA协议测试中的安全入网的设备状态、事件、输出和转移输出,在此基础上建立了现场设备安全入网测试的FSM模型。然后在FSM模型基础上,采用UIO方法生成测试序列。
关键词:WIA-PA协议;FSM模型;形式化模型;UIO序列
中图分类号:TP393.04
WIA-PA协议形式化描述是一件繁琐工作,面临困难,一个合理形式化描述需要深入理解WIA-PA标准基础上多次反复推敲和修改。WIA-PA是一个复杂的协议,整个协议不好用一个完整的形式化模型来描述。因此,本文在分析和参照标准基础上,以现场设备安全入网过程的状态转换为例,进行形式化建模,构建有限状态机(FSM)模型,然后将测试序列从协议模型中导出,生成WIA-PA协议测试的测试序列。目前基于FSM测试序列生成方法主要有四种:T方法、D方法、W方法和UIO方法。而UIO方法能够检查变迁正确性和状态正确性,检错能力比较强,可以检测任何输出错误,生成的测试序列长度较短等优点。所以本文采用UIO方法生成测试序列。
1 WIA-PA安全入网形式化模型
在现场设备安全入网过程中的任何一个步骤都有可能出现PDU丢失的情况。在这种情况下,系统应该恢复并且继续进行下去。下面根据WIA-PA协议标准,给出安全入网过程设备状态、事件、输出和转移输出列表。
安全入网有限状态机的状态可以分为预配置状态(S0)、正在加入状态(S1)、已加入状态(S2)、更新状态(S3)和完成状态(S4)。其中S0表示没有主密钥,并且不在获得主密钥的过程中。S1表示没有主密钥,但在获得主密钥的过程中,S2表示有当前的主密钥,但不在获得下一个主密钥的过程中。S3表示有当前的主密钥, 并且在获得下一个主密钥的过程中。S4表示有当前的主密钥和下一个主密钥。
安全入网有限状态机的事件可以分为初始化过程(E1),返回安全会话响应并且加密校验成功(E2),DL密钥的软生命周期达到主密钥失效(E3),安全管理器通过代理者发送到更新密钥请求给设备并且加密校验成功(E4),旧主密钥失效(E5),超时或者安全会话响应并且校验成功或者拒绝会话(E6),主密钥失效(E7)以及超时(E8)这八个事件。
安全入网有限状态机输出有加入请求(O1),加入响应和安全请求(O2),发起新会话(O3),密钥更新响应(O4),移除过期的主密钥(O5),设置一个时间用来再次发起一个新的安全会话(O6),返回到初始状态(O7)七个输出。
安全入网有限状态机状态转移如下表所示:
2 WIA-PA安全入网有限状态机
由以上设备安全入网状态、事件、输出和状态转移表的基础上,可以构造出新设备安全入网的有限状态机,如图1所示:
3 基于UIO方法的WIA-PA协议一致性测试序列生成
由图1可知,该有限状态机比较简单,可以较容易的写出各个状态变迁的UIO序列。
3.1 各状态UIO序列
UIO(S0):E1/O1
UIO(S1):E2/O2
UIO(S2):E3/O3
UIO(S3):E7/O5
UIO(S4):E5/O5
3.2 生成转移的UIO序列
下一步是生成安全入网有限状态机各个转移的UIO测试子序列,每个测试序列有四部分组成:复位序列、引导序列、待测转换,UIO序列。(其中:Null表示不输入,在初始状态,无需引导序列)。
复位序列:一般用Res/表示,用于将状态机复位到初始状态;
引导序列:把有限状态机从初始状态带到目的状态,使状态机处于待测状态;
待測转换:待测的转换边,输入该转换边输入事件;
UIO序列:上面求的UIO序列,用于验证转换后的状态是否正确。
T1:(S0,E1/O1,S1){(Res/-Null)E1/O1(E2/O2)}
T2:(S1,E2/O2,S2){(Res/-E1/O1)E2/O2(E3/O3)}
T3:(S2,E3/O3,S3){(Res/-E1/O1,E2/O2)E3/O3(E7/O5)}
T4:(S3,E4/O4,S4){(Res/-E1/O1,E2/O2,E3/O3)E4/O4(E5/O5)}
T5:(S2,E4/O4,S4){(Res/-E1/O1,E2/O2)E4/O4(E5/O5)}
T6:(S4,E5/O5,S2){(Res/-E1/O1,E2/O2,E4/O4)E5/O5(E3/O3)}
T7:(S3,E6/O6,S2){(Res/-E1/O1,E2/O2,E3/O3)E6/O6(E3/O3)}
T8:(S3,E7/O5,S0){(Res/-E1/O1,E2/O2,E3/O3)E7/O5(E1/O1)}
T9:(S2,E7/O5,S0){(Res/-E1/O1,E2/O2)E7/O5(E1/O1)}
T10:(S1,E8/O7,S0){(Res/-E1/O1)E8/O7(E1/O1)}
3.3 测试例选取
上面共有10条测试子序列,有些测试子序列包含了其他测试子序列,为了缩短总的测试序列长度,需要删除每条被其他子序列完全包含的测试子序列。
测试子序列T1被测序列T2,T3,T4,T5,T6,T7,T8,T9包含,故删除测试子序列T1;
测试子序列T2被测试序列T3,T4,T7,T8包含,故删除测试子序列T2;
测试子序列T5被测试序列T6包含,故删除测试子序列T5。
经过删除3个被包含的子序列,共剩下7个测试子序列。最终测试子序列如下:
T3:(S2,E3/O3,S3){(Res/-E1/O1,E2/O2)E3/O3(E7/O5)}
T4:(S3,E4/O4,S4){(Res/-E1/O1,E2/O2,E3/O3)E4/O4(E5/O5)}
T6:(S4,E5/O5,S2){(Res/-E1/O1,E2/O2,E4/O4)E5/O5(E3/O3)}
T7:(S3,E6/O6,S2){(Res/-E1/O1,E2/O2,E3/O3)E6/O6(E3/O3)}
T8:(S3,E7/O5,S0){(Res/-E1/O1,E2/O2,E3/O3)E7/O5(E1/O1)}
T9:(S2,E7/O5,S0){(Res/-E1/O1,E2/O2)E7/O5(E1/O1)}
T10:(S1,E8/O7,S0){(Res/-E1/O1)E8/O7(E1/O1)}
4 结束语
基于有限状态机中UIO方法生成测试序列检测能力比较强,能够检查出变迁的正确性和状态的正确性,测试案例完备性高,可信度高,几乎可以适用所有有限状态机,具有普遍适用的特点,并且生成的测试序列较短。而有限状态机(FSM)来描述协议实现的技术比较成熟,并且FSM具有足够的描述表达能力和测试控制能力,并且直观性强,易于自动实现,这刚好弥补了基于测试目的测试序列生成方法的不足。基于有限状态机(FSM)形势化技术通过严格的分析来确定给定规范的完整性和一致性,可以通过算法来自动生成测试案例,可以作为自动测试基础。
参考文献:
[1]彭瑜.工业无线标准 WIA-PA 的特点分析和应用展望[J].自动化仪表,2010(01):1-4.
[2]ISO/IEC 9646-1 Information technology–Open systems Interconnection–Conformance testing methodology and framework–Part 1: General concepts,1994.
[3]毛穎.测试用例自动生成系统研究与实现[D].电子科技大学,2007.
[4]工业无线网络WIA-PA规范,第1部分:用于过程自动化的 WIA 系统结构与通信规范[S].中华人民共和国国家标准,2010.
[5]王晓伟.WIA-PA协议一致性测试方法的研究与实现[D].重庆邮电大学,2011.
[6]刘攀,缪淮扣,曾红卫,刘阳.基于FSM的测试理论?方法及评估[J].计算机学报,2011(06):965-983.
作者简介:谢昊飞(1978-),男,湖南衡阳人,副教授,博士,研究方向:无线传感器网络协议测试、无线网络控制技术等。
作者单位:重庆邮电大学自动化学院,重庆 400065