OFART: OpenFlow-Switch Adaptive Random Testing
- 文章名称:OFART: OpenFlow-Switch Adaptive Random Testing
- 发表时间:2017
- 期刊来源:---
摘要
- 问题:
如果转发设备的正确性没有验证,这将影响这个网络。然而,手工进行每个测试将耗费大量时间,这意味着需要一个自动化工具。 - 解决:
本文提出ART(Adaptive Random Testing)技术,它从控制器角度把OpenFlow交换机看做黑盒,进行自动化测试。
1 介绍
软件让我们更好的控制管理网络,但是副作用是导致更多的缺陷,根据缺陷的严重车鞥度,会造成丢包到整个网络瘫痪的后果。故测试网络功能的正确性是非常重要的一项任务。
本文提出在控制器的视角对OpenFlow Switch看做黑盒进行功能性的测试方法。控制器为功能性的测试产生测试数据包,并且将数据包放到交换机,获取从交换机出来的结果,与理想结果进行对比。产生数据包的技术成为ART技术。我们使用一个框架集成自动测试执行、测试生成、测试选择以及测试结果对比功能,以减小时间耗费等。
2 背景
2.1 Black-Box Testing
黑盒测试不需要知道内部的构造知识,本文从控制器角度,将交换机看做黑盒。
2.2 Adaptive Random Testing
RT可以用于测试生成,因为它有最简单、流行的优势。缺点是,由于随机测试和选择,在错误检测和测试生成两者之间有平衡性能的问题。故提出ART,可以更高效地产生测试数据并且基于输入域的失败模式,同时有大量的方法。本文用FSCS-ART,在固定大小的测试候选集和执行测试之间以距离选择下一个测试。
2.3 Testing SDN-OpenFlow Switch
OFTEN被视为黑盒子,因此它通过状态空间探索技术进行集成网络测试并检测未发现的不一致性[13]。通过简单处理,我们提出对集成网络测试的方法。ModelCheck技术存在预先配置的开销,SOFT检查不同OpenFlow代理的功能等效性,以测试互操作性。各个不同的OpenFlow代理的功能等同性是检查它们是否通过符号执行返回相同的结果。
ATPG基于拓扑组织的信息产生测试数据包并且建议产生最小数据包的方法。FlowTest使用AI Planning Tool[15],InSP使用数据包模板表和流表产生数据包。J.Yao 提出一种黑盒测试方法及工具[4],基于OpenFlow switch配置,形式化模拟交换机为配置语言,基于此模型后建立Data Graph和Data Paths,再通过这两者创建测试样例,缺陷是交换机的状态经常改变,不能够立马用于交换机模型。
3 OFART: OpenFlow Switch Adaptive Random Testing
- OFART包含三个部分:
- Test Packet Generation
- Test Selection
- Test Execution
3.1 Overall
图1为OFART架构的整体描述。
首先test generators 创建数量为N的测试数据(Test Data),存于Test DB。Test Selector随机选择N个数据中的一个数据。然后依据选择的数据,建立Test Pattern(JSON格式写的测试脚本),发送给Tester,Test依据Test Pattern创建数据包,发给对应交换机,得到交换机处理的输出包,Test Executor将输出包与期望的数据包对比判定pass或者Fail。判定的结果将发送到Test Selector,Test Selector从Test DB选择10个候选test data,组成候选集(Candidate Set),并且与最近执行的数据具有距离值。如果结果为Pass,Test Selector选择最远距离的Test Data,如果结果为Fail,它将其存入Fail DB,再选择最近距离的Test Data。选择到的Test Data 将发送到Generator,并且制作为一个test pattern。如上图所示。
3.2 Adaptive Random Test Packet Generation
Test Pattern是JSON格式,用来测试RYU中的OpenFlow交换机。Test Pattern包含Prerequisite,Ingress Packet,Egress Packet。Test Generator通过ART技术,产生JSON格式的Test Paterr。接着Test Pattern发送给Tester,然后Tester将其翻译,并产生Test Packet给交换机。所有的过程称之为ARTPG(Adaptive Random Test Packet Generate ).
3.3 Similarity-Based Test Selection
FSCS-ART基于候选集和已经执行的测试之间的距离选择测试的数据。下一个数据将选择与上次执行测试数据最远距离的数据。Numerical Input Domain可以通过Euclidian distance测量距离,但是对于OFART,Test Data的每个因素有大量的范围和形态。。为了解决这个问题,我们基于测试相似性,在Tests之间定义了距离(distance)[为了解决这些问题,我们根据测试的相似性定义了测试之间的距离]。换言之,测试的子集之间有高度相似性,并且其他的功能有很低相似性,因此,测试高度相似性有短的权重:short distance,低相似性有短的权重:long distance。
Selector通过TestDB随机选择的测试数据发送给Generator。然后,在计算完选择的测试数据和随机选择10个候选测试数据集合的距离后,将当前首次的随机测试数据(刚开始没执行过的数据)暂时记为最远的测试,最近的测试。通过Generator和Test接收到一个测试结果(Pass/Fail)后,如果结果为Pass,将发送最远的测试数据给Generator,否则,发送最近的。
4 Evaluation
为了评估所提出的方法,我们使用F测量来测量有效性,F测量是检测第一缺陷所需的测试用例的数量。 在Open vSwitch的'SET_DL_DST'函数中注入缺陷以进行F测量。看OFART和随机测试检测出缺陷需要的测试样例以及时间。
OFART的性能比随机测试高。
5 Conclusion
本文使用ART技术,为了让SDN交换机进行功能测试,提出了一个框架自动化这个测试。。在开发函数中系统地验证回归测试和测试程序时,可以使用OFART。测试员使用框架进行测试将简单很多。运用ART技术,特使是基于Failure Pattern进行处理的,因此这要比随机选择的方式要高效,并且通过自动化,在重复动作功能的测试耗费时间将降低。
存在的疑问
- 初始的测试数据包怎么得到? 文中提到是由test generator创建N个Test Data,具体的话还是不知道怎么创建的。
- 可以对带状态功能进行测试吗? 个人觉得如果可以,那与控制器交互频率也太高了,每个状态的变化都是一次发包接收包检验包的操作,开销大。另外做的随机选择好像就没有必要了,而且不能够做到完全覆盖测试。根据数据包的产生和随机选择数据包来看,不是针对带状态功能的测试,而是普通交换机的功能测试。
OFART: OpenFlow-Switch Adaptive Random Testing的更多相关文章
- OpenFlow Switch学习笔记(六)——Instructions和Actions
本文主要重点讨论OpenFlow Switch规范的指令集,它们深刻影响着数据包在Switch中的处理行为,下面开始从以下几个部分谈起. 1.Instructions 每一个Flow Entry里都包 ...
- OpenFlow Switch学习笔记(五)——Group Table、Meter Table及Counters
本文主要详述OpenFlow Switch的另外两个主要组件——Group Table和Meter Table,它们在整个OpenFlow Swtich Processing中也起到了重要作用. 1. ...
- OpenFlow Switch学习笔记(四)——Matching
这次我们着重详述来自于网络中的数据包在OpenFlow Switch中与Flow Entries的具体匹配过程,以及当出现Table Miss时的处理方式,下面就将从这两方面说起. 1.Matchin ...
- OpenFlow Switch学习笔记(三)——Flow Tables
这次我们主要讨论下OpenFlow Switch的核心组件之一——Flow Tables,以了解其内部的 matching 以及 action handling 机制.下文将会分为几个部分来逐步详述O ...
- OpenFlow Switch学习笔记(二)——OpenFlow Ports
OpenFlow Ports是OpenFlow Switch与剩余网络之间传递Packet的网络接口.OpenFlow Switches之间通过OpenFlow Ports彼此相互逻辑连接.一个Ope ...
- OpenFlow Switch学习笔记(一)——基础概念
OpenFlow Switch v1.4.0规范是在2013年10月14号发布,规范涵盖了OpenFlow Switch各个组件的功能定义.Controller与Switch之间的通信协议Open F ...
- DDoS ATTACK PROCESSING APPARATUS AND METHOD IN OPENFLOW SWITCH
An OpenFlow switch in an OpenFlow environment includes an attack determination module to collect sta ...
- OpenFlow Switch 1.3 规范
目录 文章目录 目录 OpenFlow 架构 OpenFlow 标准和规范 OpenFlow 的端口(Port) OpenFlow 的流表(Flow Table) OpenFlow 的组表(Group ...
- OpenFlow Switch学习笔记(七)——Matching Fields
Matching Fields in_port=port Matches OpenFlow port port dl_vlan=vlan Matches IEEE 802.1q Virtual LAN ...
随机推荐
- HTML常用标签大全
- Redis系列九:redis集群高可用
Redis集群的概念: RedisCluster是redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务挂了可以快速的切换到另外一个服务,当遇到单机内存. ...
- 死磕nginx系列-nginx日志配置
nginx access日志配置 access_log日志配置 access_log用来定义日志级别,日志位置.语法如下: 日志级别: debug > info > notice > ...
- JavaScript标准对象
1.Date var now = new Date(); now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); // 2 ...
- 数据结构与算法 基于c语言篇
学习数据结构与算法走向深蓝之路 第一章:数据结构与算法概念型 数据结构:数据之间的相互关系,即是数据的组织形式. 基本组成:{ 数据:信息的载体 数据元素:数据基本单位: } 其结构形式有四种: 1, ...
- 20155305《网络对抗》MSF基础应用
20155305<网络对抗>MSF基础应用 实验过程 实验系统 靶机1:Windows XP Professional SP2 ,IP地址:192.168.1.108 靶机2:Window ...
- linux下通过软连接实现访问项目路径外面的资源
在javaweb项目开发中,图片上传是个比较常见的场景.一般都是在项目路径下建个文件夹,然后上传到该文件夹下:这样这个图片就可以和静态资源一样被直接访问.这样的好处就是访问这图片特别方 ...
- PX Deq: Execution Msg 等待事件
可参考 MOS文档: WAITEVENT: "PX Deq Credit: send blkd" (Doc ID 271767.1) P1 = sleeptime/senderid ...
- 如何取得Oracle并行执行的trace
如何取得Oracle并行执行的trace: ALTER SESSION SET tracefile_identifier='10046_PROD';ALTER SESSION SET max_dump ...
- controlfile作为RMAN的repository时,对 keep time 的测试
4月2日,首先查看系统状况: SQL> show parameter control NAME TYPE VALUE ...