首页> 中国专利> 基于Wp测试用例约简集的无线传感器网络系统测试方法

基于Wp测试用例约简集的无线传感器网络系统测试方法

摘要

基于Wp测试用例约简集的无线传感器网络系统测试方法属于无线传感器网络系统的通信协议设计验证和系统测试。其特征在于,依次含有以下步骤:利用Wp方法处理计算机仿真系统有限状态机模型M

著录项

  • 公开/公告号CN104572458A

    专利类型发明专利

  • 公开/公告日2015-04-29

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201410843291.0

  • 申请日2014-12-30

  • 分类号G06F11/36;G06F17/50;H04L1/24;

  • 代理机构北京思海天达知识产权代理有限公司;

  • 代理人楼艮基

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-12-18 08:25:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-24

    授权

    授权

  • 2015-05-27

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20141230

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

技术领域

本发明属于软件系统测试领域,尤其涉及无线传感器网络系统的通信协议设计验证和系 统测试。

背景技术

无线传感器网络是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信 方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域 中被感知对象的信息,并发送给观察者。无线传感器网络系统在开发部署过程中,相关人员 由于自身局限性并没有完全理解协议规则或者软件及硬件环境的不兼容等因素,都会使系统 出现问题,所以需要对无线传感器网络系统进行全面可靠的测试以及时发现系统缺陷。目前 阶段,对系统进行测试的测试用例大都为人工编写,易对某些重要的测试环节遗漏,同时较 多的测试用例使得实际测试工作量繁重,所以一种可靠规模较小的测试方案,在实际测试中 具有重要意义。

基于有限状态机模型的一致性测试是一种黑盒测试,其目的是检查运行通信协议的系统 与协议标准的符合程度。目前基于有限状态机的测试序列生成算法已经比较成熟。在众多的 测试算法中,Wp方法是一种经典有效的测试用例生成方法,具有较高的故障检测能力,利 用该方法进行无线传感器网络系统测试能够得到完备的测试用例集。但该方法生成的测试用 例集规模较大,数量较多,在实际测试中会导致大量的人力资源消耗。本发明利用集合覆盖 贪心算法,通过构造需求集实现了对Wp方法测试用例集的约简,能够在保证Wp原始测试 用例集错误检测能力不受影响的前提下,对原始测试用例集进行有效的约简,提高无线传感 器网络系统的实际测试效率。

在协议的一致性测试中,常使用有限状态机模型描述协议规范,有限状态机模型一般分 为两种,Moore机和Mealy机。如果一个有限状态机模型不将状态转换与任何操作关联在一 起,则称作Moore机。如果有限状态机模型将每一个状态转换都与操作关联在一起,则称 作Mealy机,在本发明中只考虑Mealy机。

一个有限状态机模型M是一个六元组(Q,X,Y,q0,δ,O),其中:

Q是有限个状态的集合。

X是一个有限的输入符号集合,称为输入字符集,所述输入字符集中的每一个输入符号 对应实际的输入操作符号,起到控制状态转换的作用。

Y是一个有限的输出符号的集合,称为输出字符集,是所述输入操作符号对状态进行转 换控制时的输出信号。

q0∈Q,是有限状态机模型的初始状态。

δ:Q×X→Q′,δ是状态转换函数,表示所述的输入符号集X使当前状态集合Q转换为下 一个状态集合Q′。δ(qi,s1)=qj,表示输入字符串s1使当前状态qi转换为下一个状态qj, 其中qi∈Q,qj∈Q,s1为输入符号集X中的l个输入字符构成的输入字符串,l为非负整数。

O:Q×X→Y,O是输出函数,表示所述的输入符号集X使当前状态集合Q发生转换时产 生输出符号集合Y。O(qi,s2)=O(qi,a1)·O(δ(qi,a2),a3a4...al)=Y,表示长度为l的 输入字符串s2使当前状态qi发生转换时产生的一个输出字符集Y,其中qi∈Q,s2= (a1a2a3...al),a1a2a3...al均属于输入字符集X。

在本发明中使用结构(qi,qj,x/y)表示一个状态到下一个状态的转换,其中qi∈Q, qj∈Q,x∈X,y∈Y,δ(qi,x)=qj,O(qi,x)=y,其含义为当有限状态机模型处于qi状 态时,对其输入字符x,有限状态机模型将转入状态qj,同时输出符号y。有限状态机模型在 输入空序列的情况下,将产生空输出,同时仍处于原来的状态,使用符号ε表示空输入序列, null表示空输出,该转换表示为(qi,qi,ε/null)。

Wp方法,又称部分W方法,是由Fujiwara等人提出的,是一种经典的系统测试方法, 具有较高的故障检测能力。利用Wp方法生成测试用例集,有限状态机模型M应满足一些 前提,其中包括:

(1)M是确定的。

对于任意确定的输入字符x∈X,在M的任意状态qi输入所述字符x时,qi最多只存在一 个后继状态,则称M是确定的。

(2)M是完全定义的。

对于模型M,从它的每一个状态出发,对每一个输入符号x∈X都存在一个转换,则M 是完全定义的。

(3)M是最小的。

若M中的存在两个状态qi、qj,对于任意l个输入字符构成的输入字符串s都产生相同 的输出,则称状态qi、qj等价。若M中不存在这样的状态对,则称M是最小的。

(4)M能够准确的重置到初始状态,在重置操作中产生输出null。

假设设计规范中有限状态机模型M含n(n>0)个状态,而实际运行的待测系统的最多 包含m(m>0)个状态。下面是Wp算法的总体流程:

Begin of Wp

步骤(1),计算M的转换覆盖集P、状态覆盖集S、特征集W、等价特征集Wi

步骤(2),测试子集T1=S·I[m-n]·W。

步骤(3),设ψ是M的所有等价特征集组成的集合,ψ={W0,W1,W2,...,Wn}, W0为q0等价特征集,W1为q1等价特征集,以此类推。

步骤(4),设R={r1,r2,...,rk}是所有属于转换覆盖集P但不属于状态覆盖集S的输 入字符串的集合,即R=P-S。另外,如果ri∈R,则δ(q0,ri)=qi

步骤(5),测试子集其中ri∈R,δ(q0,ri)=qi, δ(qi,u)=q1,W1是状态q1的状态等价集,W1∈ψ。

步骤(6),合并T1和T2得到测试集T。

End of Wp

其中,转换覆盖集P定义如下:

设qi、qj为M中的任意两个状态,i≠j,P由形如s、x的输入字符串组成,其中 δ(q0,s)=qj,δ(q0,x)=qj,空字符ε也属于P。

状态覆盖集S是一个有穷非空集合,其中的每一个元素都是若干输入字符组成的输入字 符串。对于任意qi∈Q,存在r∈S,满足δ(q0,r)=qi,其中r为输入字符串。很容易看出, 状态覆盖集是转换覆盖集P的子集,且不唯一。

特征集W是一个输入字符串的有限集合,这些输入串能够区分出M中任意两个状态的 行为。假设qi和qj是Q中的两个状态,那么特征集W中存在一个输入串s,使得O(qi, s)≠O(qj,s),其中s是若干输入字符组成的输入字符串。

等价特征集与M中的每一个状态相对应。假设qi是Q中的任一状态,状态qi等价集表示 成Wi,并具备以下特性:

(a)1≤i≤n,其中n为M的状态数目。

(b)对于任何j,w,1≤j≤n,j≠i,w∈Wi,有O(qi,w)≠O(qj,w)。

(c)不存在Wi的子集满足(b)。

I[m-n]表示如下的集合运算表达式:

(a)当m<n时,I[m-n]=X。

(b)当m=n时,I[m-n]=I[0]=ε。

(c)当m>n时,I[m-n]={ε}∪X1∪X2…∪Xm-n-1∪Xm-n

其中,X为有限状态机模型输入符号集合。X1=X,X2=X·X,以此类推,符号″·″ 代表连接运算,本发明所有涉及到该符号处,均表示连接运算。

由上述描述可知,用Wp方法生成的测试集T是两个测试子集T1和T2的并集,这两个子 集的功能是不同的。测试子集T1用于检测实现I是否包含了M中的所有状态并检测部分转换 的实现是否正确;T2用于测试M中定义的其余转换是否在待测的实际系统中得到了正确的 实现,即判断所检测转换的输出和即将跳转的下一个状态是否与M中的定义相一致。

集合覆盖贪心算法(GREEDY_SET_COVER)是一种经典的求解最小子集问题的算法,该 算法重复在集合中选择一条测试用例S,覆盖集合G中最多且未被覆盖的需求,直到G中所 有的需求都被覆盖为止。本发明利用GREEDY_SET_COVER算法对测试集进行约简,得到Wp 的测试用例约简集。将GREEDY_SET_COVER算法设置为三元函数,函数完整原型如下:

其中,第一个参数为待约简的测试集,第二个参数G为覆盖需求集,第三个参数 isCover_Func设置为谓词函数,函数的返回值为约简后的测试序列的集合。本发明中 GREEDY_SET_COVER算法流程大致如下:

Begin of GREEDY_SET_COVER

步骤(1),U=G

步骤(2),

步骤(3),

步骤(4),选择当前最佳序列使得CovedSet最大,其中 CovedSet=SetCovered(S,U,isCover_Func)

步骤(5),U=U-CovedSet

步骤(6),C=C∪{S}

步骤(7),return C

End of GREEDY_SET_COVER

其中,函数SetCovered(S,U,isCover_Func)根据谓词函数isCover_Func返回集合U中 被序列S覆盖的元素组成的集合。而在本发明中会使用到两种谓词函数:

(1)bool isCover_Prefix(Sequence1,Sequence2)

该函数判断Sequence2是否为Sequence1的前缀,若是,即说明Sequence1覆盖 Sequence2,则返回true,否则返回false。特殊情况下,若Sequence1与Sequence2相等, 同样返回true。

(2)bool isCover_SubSeq(Sequence1,Sequence2)

该函数判断Sequence2是否为Sequence1的子串,若是,即说明Sequence1覆盖 Sequence2,则返回true,否则返回false。特殊情况下,若Sequence1与Sequence2相等, 同样返回true。

覆盖需求集G的构造是使用GREEDY_SET_COVER算法进行Wp方法测试集约简的关键。 本发明首先分别针对Wp方法生成的测试子集T1和测试子集T2,构造不同的覆盖需求集,利 用GREEDY_SET_COVER算法对其进行约简,得到约简后的测试集T′1和T′2。然后再次构造另一 覆盖需求集,对T′1∪T′2进行约简,得到最终的约简测试集T。覆盖需求集构造内容将在本发 明的发明内容部分进行介绍。

发明内容

本发明目的在于提出一种基于Wp方法生成的测试用例约简集对无线传感器网络系统 进行测试的方法,该方法能够在保证Wp原始测试用例集错误检测能力不受影响的前提下, 对原始测试用例集进行有效的约简,提高无线传感器网络系统的实际测试效率。

本发明特征在于,是一种无线传感器网络系统通信协议设计验证和系统测试的方法,依 次含有以下步骤:

步骤(1),按以下步骤首先利用Wp方法处理计算机仿真系统有限状态机模型M1生成 测试用例集合,然后构造覆盖需求集合,利用集合覆盖贪心算法对得到测试用例集进行约简, 得到Wp方法测试用例约简集。

步骤(1.1),将所述的计算机仿真系统有限状态机模型M1用(Q,X,Y,q0,δ,O)这 个六元组表示,其中,

有限状态集合Q包含:空闲状态、发送状态和接收状态三个状态,分别用q0,q1,q2表 示。其中空闲状态q0为初始状态。为简便起见,假设计算机仿真系统有限状态机模型状态数 为n,实际系统的状态数为m,且m=n。

M1有两种输入符号,分别为控制信号A和控制信号B,即输入字符集X={A,B}。

M1有两种输出符号,分别为二进制的0和1,即输出字符集Y={0,1}。

状态转移函数δ包括:

δ(q0,A)=q1,δ(q0,B)=q2,δ(q1,A)=q0

δ(q1,B)=q2,δ(q2,A)=q1,δ(q2,B)=q0

其中,δ(q0,A)=q1表示在空闲状态q0下,输入控制信号A,使计算机仿真系统有限 状态机模型M1从空闲状态q0转换到发送状态q1,其余类推。

输出符号O包括:

O(q0,A)=1,O(q0,B)=1,O(q1,A)=0,

O(q1,B)=1,O(q2,A)=0,O(q2,B)=1。

O(q2,B)=1表示接收状态q2下,输入控制信号B,输出1,其余类推,根据所述的有 限状态机模型M1六元组得到所述计算机仿真系统有限状态机模型。

步骤(1.2),由Wp方法得到计算机仿真系统有限状态机模型M1测试用例约简所需要 的集合:

转换覆盖集P={ε,A,AA,AB,B,BA,BB}。

状态覆盖集S={ε,A,AB}。

特征集W={A,AA}。

等价特征集W0={A}、W1={A,AA}、W2={A,AA}。

测试用例子集T1={A,AA,AAA,ABA,ABAA}。

测试用例子集T2={AAA,BA,BAA,BAAA,BBA}。

约简前的测试用例集合:

T″=T1∪T2={A,AA,AAA,ABA,ABAA,BA,BAA,BAAA,BBA}。

步骤(1.3),对计算机仿真系统有限状态机模型M1的各个转换设置唯一的转换标识。 如下表1所示:

表1

转换 转换标识 (q0,q1,A/1) t1(q0,q2,B/1) t2(q1,q0,A/0) t3(q1,q2,B/1) t4(q2,q1,A/0) t5(q2,q0,B/1) t6

将步骤(1.2)中得到的每个集合转换成由转换标识构成的对应集合。

T1id={t1,t1t3,t1t3t1,t1t4t5,t1t4t5t3}.

T2id={t1t3t1,t2t5,t2t5t3,t2t5t3t1}.

Sid={ε,t1,t1t4}。

Pid={ε,t1,t1t3,t1t4,t2,t2t5,t2t6}。

Rid={t1t3,t2,t2t5,t2t6}。

W0id(q0)={t1},W1id(q1)={t3,t3t1},W2id(q2)={t5,t5t3}.

其中,

Wp测试集子集合T1中的每条测试序列分别从初始状态出发,将其依次经过的每 个转换用对应的转换标识替代,得到的替代后转换标识序列所构成的集合。

Wp测试集子集合T2中的每条测试序列分别从初始状态出发,将其依次经过的每 个转换用对应的转换标识替代,得到的替代后转换标识序列所构成的集合。

Sid:表示状态覆盖集S中的每条测试序列分别从初始状态出发,将其依次经过的每个转 换用对应的转换标识替代,得到的替代后转换标识序列所构成的集合。

Pid:表示转换覆盖集P中的每条测试序列分别从初始状态出发,将其依次经过的每个转 换用对应的转换标识替代,得到的替代后转换标识序列所构成的集合。

Rid:表示Pid与Sid的差集,即Rid=Pid-Sid

表示等价特征集Wi中的每条测试序列分别从状态qj出发,将其依次经过的每 个转换用对应的转换标识替代,得到的替代后转换标识序列所构成的集合,其中qj∈Q。

步骤(1.4),对集合进行约简。

(1)构造集合T1的覆盖需求集则

Req(T1)={t1,t1t3,t1t3t1,t1t4t5,t1t4t5t3}。

(2)使用谓词函数isCover_Prefix,令约简后的为T′1,则

T1=GREEDY_SET_COVER(T1id,Req(T1),isCover_Prefix)={t1t3t1,t1t4t5t3}

步骤(1.5),对集合进行约简。

(1)构造集合T2的覆盖需求集:

●当m≠n时,

Req(T2)=seqRidLast(seq)·Iid[m-n](q)·Wuid

其中,

q=Tail(Last(seq))。

u=Tail(t),其中t=Last(s),s∈Iid[m-n](q)。

Iid[m-n](q):表示对于所有seq∈I[m-n],seq在状态q∈Q处出发,将其依次经 过的每个转换用对应的转换标识替代,得到的替代后转换标识序列所构成的集合。

Tail(t):表示转换t的尾状态。

Last(seq):表示转换标识序列seq的最后一项转换标识。

●当m=n时,Iid[m-n](q)为空集,此时

Req(T2)=seqRidLast(seq)·Wqid

其中,q=Tail(Last(seq))。

在此处按照之前步骤(1.1)中的假设m=n,则

Req(T2)={t3·W0id(q0)t2·W2id(q2)t5·W1id(q1)t6·W0id(q0)={{t3t1}{t2t5,t2t5t3}{t5t3,t5t3t1}{t6t1}}={t3t1,t2t5,t2t5t3,t5t3,t5t3t1,t6t1}

(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则

T2=GREEDY_SET_COVER(T2id,Req(T2),isCover_SubSeq)={t2t5t3t1,t2t6t1},

步骤(1.6),对T′1∪T′2进行约简。

(1)构造集合T′1∪T′2的覆盖需求集Req(T′1∪T′2)=T′1∪T′2,则

Req(T′1∪T′2)={t1t3t1,t1t4t5t3,t2t5t3t1,t2t6t1},

(2)使用谓词函数isCover_Prefix,令约简后的T′1∪T′2为T′,则

T′=GREEDY_SET_COVER(T′1∪T′2,Req(T′1∪T′2),isCover_Prefix)

={t1t3t1,t1t4t5t3,t2t5t3t1,t2t6t1},

步骤(1.7),将步骤(1.6)得到的测试用例集T′中各转换序列中的转换标识替换为对 应转换的输入符号,得到最终的测试用例集:

T={AAA,ABAA,BAAA,BBA}。

步骤(2),生成所述无线传感器网络系统。其中包括:中央控制器、受控于所述中央控 制器的分别表示空闲、发送和接收三种状态的状态转换指示灯L0、L1和L2,分别表示无线传 感器故障、网络传输故障的故障指示灯E1和E2、分布式无线传感器网络,三者共同组成了 无线传感器网络系统。其中,中央控制器包括控制器和以主程序流程框图描述的通信协议设 计软件。

步骤(3),按以下步骤利用步骤(1)中所述流程处理根据无线传感器网络系统所描述 的无线传感器网络系统有限状态机模型M2,得到Wp测试用例约简集。

步骤(3.1),对于所述的无线传感器网络系统通信协议设计规范而言,有限状态机模型 M2=(Q,X,Y,q0,δ,O),其中,

有限状态集合Q包含空闲状态、发送状态和接收状态,空闲状态表示系统处于初始状态, 发送状态表示系统处于发送传感器数据状态,接收状态表示系统处于接收传感器数据状态。 三个状态分别用q0,q1和q2表示,即Q={q0,q1,q2}。

输入字符集X包括两个控制操作。其中一个是代表传输控制操作的输入操作集合A,也 称传感器控制信号,A={a1,a2,a3},其中,

a1表示执行输入操作a1,在空闲状态q0输出1信号,使系统从空闲状态q0转向发送状 态q1,否则发出0信号,表示不转换,用a1/1表示使系统从空闲状态q0向发送状态q1转换 的状态转换控制符号。

a2表示执行输入操作a2,在发送状态输出1信号,使系统从发送状态q1转向接收状态q2, 否则发出0信号,表示不转换,用a2/1表示使系统从发送状态q1向接收状态q2转换的状态 转换控制符号。

a3表示执行输入操作a3,在接收状态输出1信号,使系统从接收状态q2转向空闲状态q0, 否则发出0信号,表示不转换。用a3/1表示使状态从接收状态q2向空闲状态q0转换的状态 转换控制符号。

另一个是代表故障控制操作的输入操作集合B,B={b1,b2,b3},其中,

b1:在空闲状态q0,执行输入操作b1,输出1信号,表示故障已排除,使系统从空闲状 态q0转换为状态q2进入接收状态,否则输出0信号,故障未排除,状态不发生转换,用b1/1 表示使系统从空闲状态q0转换为接收状态q2的状态转换控制符号。

b2:在接收状态q2,执行输入操作b2,输出1信号,表示出现数据网络传输故障,需要 重传,使系统从接收状态q2转换为发送状态q1,红色状态指示灯由L2变为L1,否则输出0 信号,不需要重传数据。用b2/1表示使系统从接收状态q2转换为发送状态q1的状态转换控 制符号。

b3:在发送状态q1,执行输入操作b3,输出1信号,表示出现无线传感器故障,使发送 状态q1转换为空闲状态q0,红色状态指示灯由L1变为L0,停止发送,否则输出0信号,表 示正常。用b3/1表示使系统从发送状态q1转换为空闲状态q0的状态转换控制符号。

输出字符集Y包括二进制码1和0,其中1表示存在状态发生转换或传输出现故障。0 表示不存在以上情形。

状态转移函数δ包括:

δ(q0,a1)=q1,δ(q0,a2)=q0,δ(q0,a3)=q0

δ(q0,b1)=q2,δ(q0,b2)=q0,δ(q0,b3)=q0

δ(q1,a1)=q1,δ(q1,a2)=q2,δ(q1,a3)=q1

δ(q1,b1)=q1,δ(q1,b2)=q1,δ(q1,b3)=q0

δ(q2,a1)=q2,δ(q2,a2)=q2,δ(q2,a3)=q0

δ(q2,b1)=q2,δ(q2,b2)=q1,δ(q2,b3)=q2

其中,δ(q1,b3)=q0表示在发送状态q1执行输入操作b3,使无线传感器网络系统有限 状态机模型M2由发送状态q1转移为空闲状态q0,表示出现无线传感器故障,其余类推。

输出符号O包括:

O(q0,a1)=1,O(q0,a2)=0,O(q0,a3)=0,

O(q0,b1)=1,O(q0,b2)=0,O(q0,b3)=0,

O(q1,a1)=0,O(q1,a2)=1,O(q1,a3)=0,

O(q1,b1)=0,O(q1,b2)=0,O(q1,b3)=1,

O(q2,a1)=0,O(q2,a2)=0,O(q2,a3)=1,

O(q2,b1)=0,O(q2,b2)=1,O(q2,b3)=0。

O(q0,b1)=1表示在空闲状态q0,执行输入操作b1,输出1信号,表示故障已排除, 无线传感器网络系统有限状态机模型M2由空闲状态q0回到接收状态q2,其余类推。

根据所述六元组有限状态机模型得到所述无线传感器网络系统有限状态机模型。

步骤(3.2),由Wp方法得到无线传感器网络系统有限状态机模型M2测试用例约简所 需要的集合:

转换覆盖集P={ε,a2,a3,b2,b3,a1b3,b1a3,a1a2a3,b1b2b3,a1,a1a1,a1b1,a1b2, a1a3,b1b2,b1b2a1,b1b2a3,b1b2b1,b1b2b2,a1a2b2,b1,a1a2,b1a1,b1a2,b1b1,b1b3,b1b2a2, a1a2a1,a1a2a2,a1a2b1,a1a2b3}。

状态覆盖集S={ε,a1,b1}。

特征集W={a1,a2,a3}。

等价特征集W0={a1},W1={a2},W3={a3}。

第一部分测试用例集合:

T1={a1,a2,a3,a1a1,a1a2,a1a3,b1a1,b1a2,b1a3}。

第二部分测试用例集合:

T2={a2a1,a3a1,b2a1,b3a1,a1b3a1,b1a3a1,a1a2a3a1,b1b2b3a1,a1a1a2,a1b1a2,a1b2a2, a1a3a2,b1b2a2,b1b2a1a2,b1b2a3a2,b1b2b1a2,b1b2b2a2,a1a2b2a2,a1a2a3,b1a1a3,b1a2a3, b1b1a3,b1b3a3,b1b2a2a3,a1a2a1a3,a1a2a2a3,a1a2b1a3,a1a2b3a3}。

约简前的测试用例集合:

T″=T1∪T2={a1,a2,a3,a1a1,a1a2,a1a3,b1a1,b1a2,b1a3,a2a1,a3a1,b2a1,b3a1, a1b3a1,b1a3a1,a1a2a3a1,b1b2b3a1,a1a1a2,a1b1a2,a1b2a2,a1a3a2,b1b2a2,b1b2a1a2,b1b2a3a2, b1b2b1a2,b1b2b2a2,a1a2b2a2,a1a2a3,b1a1a3,b1a2a3,b1b1a3,b1b3a3,b1b2a2a3,a1a2a1a3, a1a2a2a3,a1a2b1a3,a1a2b3a3}。

步骤(3.3),对无线传感器网络系统有限状态机模型M2的各个转换设置唯一的转换标 识。如下表2所示:

表2

转换 转换标识 (q0,q0,a2/0) t1(q0,q0,a3/0) t2(q0,q0,b2/0) t3(q0,q0,b3/0) t4(q0,q1,a1/1) t5(q0,q2,b1/1) t6(q1,q1,a1/0) t7(q1,q1,a3/0) t8(q1,q1,b1/0) t9(q`1,q1,b2/0) t10(q1,q0,b3/1) t11(q1,q2,a2/1) t12(q2,q2,a1/0) t13(q2,q2,a2/0) t14(q2,q2,b1/0) t15(q2,q2,b3/0) t16(q2,q0,a3/1) t17(q2,q0,b2/1) t18

将步骤(1.2)中得到的每个集合转换成由转换标识构成的对应集合。其中,

T1id={t5,t1,t2,t5t7,t5t12,t5t8,t6t13,t6t14,t6t17}.

T2id={t1t5,t2t5,t3t5,t4t5,t5t11t5,t6t17t5,t5t12t17t5,t11t18t5,t5t7t12,t5t9t12,t5t10t12,t5t8t12,t6t18t12,t6t18t7t12,t6t18t8t12,t6t18t9t12,t6t18t10t12,t5t12t18t12,t5t12t17,t6t13t17,t6t14t17,t6t15t17,t6t16t17,t6t18t12t17,t5t12t13t17,t5t12t14t17,t5t12t15t17,t5t12t16t17}.

Sid={ε,t5,t6}。

Pid={ε,t1,t2,t3,t4,t5t11,t6t17,t5t12t17,t6t12t11,t5,t5t7,t5t9,t5t10,t5t8,t6t18, t6t18t7,t6t18t8,t6t18t9,t6t18t10,t5t12t18,t6,t5t12,t6t13,t6t14,t6t15,t6t16,t6t18t12,t5t12t13, t5t12t14,t5t12t15,t5t12t16}。

Rid={t1,t2,t3,t4,t5t11,t6t17,t5t12t17,t6t12t11,t5t7,t5t9,t5t10,t5t8,t6t18,t6t18t7, t6t18t8,t6t18t9,t6t18t10,t5t12t18,t5t12,t6t13,t6t14,t6t15,t6t16,t6t18t12,t5t12t13,t5t12t14,t5t12t15, t5t12t16}。

W0id(q0)={t5},W1id(q1)={t12},W2id(q2)={t17}.

步骤(3.4),对集合进行约简。

(1)构造集合的覆盖需求集则

Req(T1)={t5,t1,t2,t5t7,t5t12,t5t8,t6t13,t6t14,t6t17}。

(2)使用谓词函数isCover_Prefix,令约简后的为T′1,则

T1=GREEDY_SET_COVER(T1id,Req(T1),isCover_Prefix)={t1,t2,t5t7,t5t12,t5t8,t6t13,t6t14,t6t17}.

步骤(3.5),对集合进行约简。

(1)构造集合的覆盖需求集的计算如下:

Req(T2)={t1·W0id(q0)t2·W0id(q0)t3·W0id(q0)t4·W0id(q0)t11·W0id(q0)t17·W0id(q0)t7·W1id(q1)t9·W1id(q1)t10W1id(q1)t8·W1id(q1)t12·W2id(q2)t13·W2id(q2)t14·W2id(q2)t15·W2id(q2)t16·W2id(q2)}={t1t5t2·t5t3t5t4t5t11t5t17t5t7t12t9t12t10t12t8t12t12t17t13t17t14t17t15t17t16t17}={t1t5,t2t5,t3t5,t4t5,t11t5,t17t5,t7t12,t9t12,t10t12,t8t12,t12t17,t13t17,t14t17,t15t17,t6t17}.

(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则

T2=GREEDY_SET_COVER(T2id,Req(T2),isCover_SubSeq)={t1t5,t2t5,t3t5,t4t5,t5t11t5,t5t12t17t5,t5t7t12,t6t18t9t12,t5t10t12,t5t8t12,t6t13t17,t6t14t17,t6t15t17,t6t16t17}.

步骤(3.6),对T′1∪T′2进行约简。

(1)构造集合T′1∪T′2的覆盖需求集Req(T′1∪T′2)=T′1∪T′2,则

Req(T′1∪T′2)={t1,t2,t5t7,t5t12,t5t8,t6t13,t6t14,t6t17,t1t5,t2t5,t3t5,t4t5,t5t11t5, t5t12t17t5,t5t7t12,t6t18t9t12,t5t10t12,t5t8t12,t6t13t17,t6t14t17,t6t15t17, t6t16t17}。

(2)使用谓词函数isCover_Prefix,令约简后的T′1∪T′2为T′,则

T′=GREEDY_SET_COVER(T′1∪T′2,Req(T′1∪T′2),isCover_Prefix)

={t6t17,t1t5,t2t5,t3t5,t4t5,t5t11t5,t5t12t17t5,t5t7t12,t6t18t9t12,t5t10t12,t5t8t12, t6t13t17,t6t14t17,t6t15t17,t6t16t17}。

步骤(3.7),将步骤(3.6)中得到的测试用例集T′中各转换序列中的转换标识替换为 对应转换中的输入操作,得到最终的测试用例集:

T={b1a3,a2a1,a3a1,b2a1,b3a1,a1b3a1,a1a2a3a1,a1a1a2,b1b2b1a2,a1b2a2,a1a3a2, b1a1a3,b1a2a3,b1b1a3,b1b3a3}。

步骤(4),按系统所处当时的状态,依次进行系统测试,步骤如下:

步骤(4.1),系统在线状态为空闲状态q0

步骤(4.1.1),判断输入字符串为A或B。若输入字符串A,执行步骤(4.1.2),否则执 行步骤(4.1.3)。

步骤(4.1.2),判断状态转换控制信号是否为a1/1。若为a1/1,则转换为发送状态q1。 否则不发生转换。

步骤(4.1.3),判断状态转换控制信号是否为b1/1。若为b1/1,则转换为接收状态q2。 否则不发生转换。

步骤(4.2),系统在线状态为发送状态q1

步骤(4.2.1),判断输入字符串为A或B。若输入字符串A,执行步骤(4.2.2),否则执 行步骤(4.2.3)。

步骤(4.2.2),判断状态转换控制信号是否为a2/1。若为a2/1,则转换为接收状态q2。 否则不发生转换。

步骤(4.2.3),判断状态转换控制信号是否为b3/1。若为b3/1,则E1灯亮,无线传感器 同时转换为空闲状态q0。否则不发生转换。

步骤(4.3),系统在线状态为接收状态q2

步骤(4.3.1),判断输入字符串为A或B。若输入字符串A,执行步骤(4.3.2)。若输入 字符串B,执行步骤(4.3.3)。

步骤(4.3.2),判断状态转换控制信号是否为a3/1。若为a3/1,则转换为空闲状态q0。 否则不发生转换。

步骤(4.3.3),判断状态转换控制信号是否为b2/1。若为b2/1,则E2灯亮,无线传感器 同时转换为发送状态q0。否则不发生转换。

步骤(4.4),接着用步骤(3.7)生成的约简后的测试用例集T中15条测试用例去测试 无线传感器网络系统,若全部测试通过,则表明无线传感器网络系统实现正确。否则,则表 明系统中存在故障。

本发明的效果在于,在保证Wp方法原有测试能力不变的情况下,对Wp方法生成的测 试用例集进行约简,对比在步骤(3.2)中约简前的测试用例集合T″含有37条测试用例,107 个输入操作,而约简后的测试用例集合T含有15条测试用例,42个输入操作,可见本发明 对Wp生成的原始测试用例集约简的效果明显,极大的提高了无线传感器网络系统的实际测 试效率。

附图说明

图1为发明流程示意图。

图2为计算机仿真系统有限状态机模型。

图3为无线传感器网络系统的有限状态机模型。

图4为发送状态运行程序流程图。

图5为接收状态运行程序流程图。

图6为空闲状态运行程序流程图。

具体实施方式

下面结合计算机仿真有限状态机模型对本发明的内容做进一步的详细阐述。

步骤(1),描述计算机仿真系统有限状态机模型。对于所述的计算机仿真系统有限状态 机模型M1=(Q,X,Y,q0,δ,O)而言,其中,

有限状态集合Q包含:空闲状态、发送状态和接收状态三个状态,分别用q0,q1,q2表 示。其中空闲状态q0为初始状态。为简便起见,假设计算机仿真系统有限状态机模型与实际 系统具有相同的状态数。

M1有两种输入符号,分别为控制信号A和控制信号B,即输入字符集X={A,B}。

M1有两种输出符号,分别为二进制的0和1,即输出字符集Y={0,1}。

状态转移函数δ包括:

δ(q0,A)=q1,δ(q0,B)=q2,δ(q1,A)=q0

δ(q1,B)=q2,δ(q2,A)=q1,δ(q2,B)=q0

其中,δ(q0,A)=q1表示在空闲状态q0下,输入控制信号A,使计算机仿真系统有限状 态机模型M1从空闲状态q0转换到发送状态q1,其余类推。

输出符号O包括:

O(q0,A)=1,O(q0,B)=1,O(q1,A)=0,

O(q1,B)=1,O(q2,A)=0,O(q2,B)=1。

O(q2,B)=1表示接收状态q2下,输入控制信号B,输出1,其余类推,根据所述的有 限状态机模型M1六元组得到所述计算机仿真系统有限状态机模型。

步骤(2),由Wp方法得到计算机仿真系统有限状态机模型M1测试用例约简所需要的 集合:

转换覆盖集P={ε,A,AA,AB,B,BA,BB}。

状态覆盖集S={ε,A,AB}。

特征集W={A,AA}。

等价特征集W0={A}、W1={A,AA}、W2={A,AA}。

测试用例子集T1={A,AA,AAA,ABA,ABAA}。

测试用例子集T2={AAA,BA,BAA,BAAA,BBA}。

约简前的测试用例集合:

T″=T1∪T2={A,AA,AAA,ABA,ABAA,BA,BAA,BAAA,BBA}。

由此根据约简前的测试用例集合T″得出约简前的测试方案,约简前测试方案共包括9 条测试用例,如下表3所示:

表3

步骤(3),对计算机仿真系统有限状态机模型M1的各个转换设置唯一的转换标识,设 定以下转换与转换标识的对应关系:

转换(q0,q1,A/1)的转换标识为t1,转换(q0,q2,B/1)的转换标识为t2

转换(q1,q0,A/0)的转换标识为t3,转换(q1,q2,B/1)的转换标识为t4

转换(q2,q1,A/0)的转换标识为t5,转换(q2,q0,B/1)的转换标识为t6

将步骤(1.2)中得到的每个集合转换成由转换标识构成的对应集合。其中,

T1id={t1,t1t3,t1t3t1,t1t4t5,t1t4t5t3}.

T2id={t1t3t1,t2t5,t2t5t3,t2t5t3t1}.

Sid={ε,t1,t1t4}。

Pid={ε,t1,t1t3,t1t4,t2,t2t5,t2t6}。

Rid={t1t3,t2,t2t5,t2t6}。

W0id(q0)={t1},W1id(q1)={t3,t3t1},W2id(q2)={t5,t5t3}.

步骤(4),对集合进行约简。

(1)构造集合的覆盖需求集则

Req(T1)={t1,t1t3,t1t3t1,t1t4t5,t1t4t5t3}。

(2)使用谓词函数isCover_Prefix,令约简后的为T′1,则

T1=GREEDY_SET_COVER(T1id,Req(T1),isCover_Prefix)={t1t3t1,t1t4t5t3}

步骤(5),对集合进行约简。

(1)构造集合的覆盖需求集的计算如下:

Req(T2)={t3·W0id(q0)t2·W2id(q2)t5·W1id(q1)t6·W0id(q0)={{t3t1}{t2t5,t2t5t3}{t5t3,t5t3t1}{t6t1}}={t3t1,t2t5,t2t5t3,t5t3,t5t3t1,t6t1},

(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则

T2=GREEDY_SET_COVER(T2id,Req(T2),isCover_SubSeq)={t2t5t3t1,t2t6t1},

步骤(6),对T′1∪T′2进行约简。

(1)构造集合T′1∪T′2的覆盖需求集Req(T′1∪T′2)=T′1∪T′2,则

Req(T′1∪T′2)={t1t3t1,t1t4t5t3,t2t5t3t1,t2t6t1},

(2)使用谓词函数isCov_Prefix,令约简后的T′1∪T′2为T′,则

T′=GREEDY_SET_COVER(T′1∪T′2,Req(T′1∪T′2),isCover_Prefix)

={t1t3t1,t1t4t5t3,t2t5t3t1,t2t6t1},

步骤(7),将步骤(6)中得到的测试用例集T′中各转换序列中的转换标识替换为对应 转换的输入字符,得到最终的测试用例集,

T={AAA,ABAA,BAAA,BBA}。

由此根据约简后的测试用例集合T,得出约简后的测试方案共包括4条测试用例,如下 表4所示:

表4

对比表3所示的约简前测试方案和表4所示的约简后的测试方案能够得出如下结果,如 下表5所示:

表5

  测试用例数量 测试用例总长度 约简前 9 25 约简后 4 14

通过对比发现,在本实施方式的计算机仿真系统有限状态机模型M1测试中,测试用例 序列数量由约简前的9条,降低至约简后的4条。同时测试用例序列中输入操作数由约简前 的25次操作,降低至约简后的14次操作,约简效果明显,同时本发明会保持Wp方法原有 的检测能力,将本发明用于无线传感器网络系统测试,使实际工作效率得到了极大地提高。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号