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”
   91   92   93   94   95   96   97   98   99   100   101