Page 96 - 《软件学报》2020年第9期
P. 96
张雯雯 等:SDN 数据平面软件一致性测试用例生成方法 2717
• 测试用例类型
本节依据测试用例结果类型,将最终生成的测试用例实体分为 5 种类型:命令合法、表名不合法、动作不
合法、匹配域不合法、参数不合法.
• 构造测试用例
单条测试用例生成过程为:用户依次选择测试用例类型、控制命令类型,再根据命令类型所需字段选择或
编辑表名、动作名、匹配域、参数信息,最后生成单条测试用例.
批量生成全部测试用例集的过程为:以测试用例类型为组织单位构造测试用例,遍历解析过程生成的命令
信息实体列表.若测试用例类型为命令合法,则直接依据每个命令信息实体的命令格式和字段信息构造测试用
例;若测试用例类型为表名不合法,则将命令信息实体中的 TABLE_NAME 字段修改为错误的 TABLE_NAME
字段,再依据命令格式与其他字段信息构造测试用例;同理,动作不合法、匹配域不合法、参数不合法类型的测
试用例构造方法与命令不合法类似.
4 测试用例生成示例
本节以装载 P4 程序的 simple_switch 虚拟交换机为测试对象,说明一致性测试用例生成过程.
4.1 解析控制命令集
simple_switch 虚拟交换机的控制命令集如图 11 所示.
Fig.11 simple_switch virtual switch control command set
图 11 simple_switch 虚拟交换机控制命令集
由于控制命令集包含许多功能类似的表项操作命令,并且不同的 P4 网络设备控制命令集并不完全相同,因
此,本实验并没有对全部控制命令生成一致性测试用例,而是选取 simple_switch 虚拟机中具有代表性的表操作
控制命令 table_add,table_delete,table_dump,table_modify 来生成一致性测试用例.
4.2 控制命令类型及格式
• table_add 表项增加命令
合法的增加表项的命令格式如下:
table_add〈table name〉〈action name〉〈match fields〉⇒〈action parameters〉[priority].
插入一个表项需要确定表名、动作名、匹配域、动作参数.以命令“table_add ipv4_lpm drop 0/32 0/32⇒0”