Page 95 - 《软件学报》2020年第9期
P. 95
2716 Journal of Software 软件学报 Vol.31, No.9, September 2020
和表名一一对应,输入表名后判断该表是否存在:若存在,则能成功获取匹配字段;否则报错.在操作正确的情况
下,表的对应匹配字段会从文件中被提取出来.
Fig.7 Parsing the table name process
图 7 解析表名流程
Fig.8 Procedure of extracting match field
图 8 解析匹配字段流程
(3) 解析动作
动作名的层级关系为 actions→preamble→name.解析动作的流程如图 9 所示,根据表名获取该表的所有动
作 ID 后,根据 ID 获取动作名,判断该 ID 是否为最后一个 ID:若不是,则继续获取 ID.表对应的所有动作名都会
被从文件解析出来.
Fig.9 Procedure of extracting actions
图 9 解析动作流程
(4) 解析动作参数
动作参数的层级关系为 actions→params→(id,name,bitwidth),解析动作参数的流程如图 10 所示,根据动作
名判断该动作是否有参数:若有,则获取所有参数的信息;若没有,则结束.
每解析得到一个命令信息实体,命令信息实体即被插入命令信息实体列表.经过以上解析过程,最终生成测
试用例所需的命令信息实体集合.
Fig.10 Procedure of extracting action parameters
图 10 解析动作参数流程
3.3 测试用例生成过程
前两节生成的命令信息实体集合为面向 P4 编程语言的 SDN 数据平面软件一致性测试用例的生成提供了
数据基础,然而测试用例实体的生成需要一定的组织规范.本节不仅划分了测试用例类型,还分别设计了针对每
种测试用例类型的测试用例构造方法.测试用例生成方法可分为生成单条测试用例和批量生成全部测试用例.