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

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

Info

Publication number
CN104572458A
CN104572458A CN201410843291.0A CN201410843291A CN104572458A CN 104572458 A CN104572458 A CN 104572458A CN 201410843291 A CN201410843291 A CN 201410843291A CN 104572458 A CN104572458 A CN 104572458A
Authority
CN
China
Prior art keywords
state
conversion
cup
switch signs
collection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410843291.0A
Other languages
English (en)
Other versions
CN104572458B (zh
Inventor
张建标
刘红宇
崔玲
杨宇泽
艾蓉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201410843291.0A priority Critical patent/CN104572458B/zh
Publication of CN104572458A publication Critical patent/CN104572458A/zh
Application granted granted Critical
Publication of CN104572458B publication Critical patent/CN104572458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

基于Wp测试用例约简集的无线传感器网络系统测试方法属于无线传感器网络系统的通信协议设计验证和系统测试。其特征在于,依次含有以下步骤:利用Wp方法处理计算机仿真系统有限状态机模型M1生成测试用例集、为模型M1构造覆盖需求集、利用集合覆盖贪心算法对模型M1生成的测试用例集进行约简得到约简集、根据无线传感器网络系统描述所述系统有限状态机模型M2、利用Wp方法处理模型M2生成测试用例集、为模型M2构造覆盖需求集、利用集合覆盖贪心算法对模型M2生成的测试用例集进行约简得到约简集、利用模型M2的测试用例约简集,进行系统测试。本发明与传统的所述系统测试相比,测试用例集规模小,检测能力强,实际系统测试效率高。

Description

基于Wp测试用例约简集的无线传感器网络系统测试方法
技术领域
本发明属于软件系统测试领域,尤其涉及无线传感器网络系统的通信协议设计验证和系统测试。
背景技术
无线传感器网络是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。无线传感器网络系统在开发部署过程中,相关人员由于自身局限性并没有完全理解协议规则或者软件及硬件环境的不兼容等因素,都会使系统出现问题,所以需要对无线传感器网络系统进行全面可靠的测试以及时发现系统缺陷。目前阶段,对系统进行测试的测试用例大都为人工编写,易对某些重要的测试环节遗漏,同时较多的测试用例使得实际测试工作量繁重,所以一种可靠规模较小的测试方案,在实际测试中具有重要意义。
基于有限状态机模型的一致性测试是一种黑盒测试,其目的是检查运行通信协议的系统与协议标准的符合程度。目前基于有限状态机的测试序列生成算法已经比较成熟。在众多的测试算法中,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)中得到的每个集合转换成由转换标识构成的对应集合。
T 1 id = { t 1 , t 1 t 3 , t 1 t 3 t 1 , t 1 t 4 t 5 , t 1 t 4 t 5 t 3 } .
T 2 id = { t 1 t 3 t 1 , t 2 t 5 , t 2 t 5 t 3 , t 2 t 5 t 3 t 1 } .
Sid={ε,t1,t1t4}。
Pid={ε,t1,t1t3,t1t4,t2,t2t5,t2t6}。
Rid={t1t3,t2,t2t5,t2t6}。
W 0 id ( q 0 ) = { t 1 } , W 1 id ( q 1 ) = { t 3 , t 3 t 1 } , W 2 id ( q 2 ) = { t 5 , t 5 t 3 } .
其中,
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,则
T 1 ′ = GREEDY _ SET _ COVER ( T 1 id , Req ( T 1 ) , isCover _ Prefix ) = { t 1 t 3 t 1 , t 1 t 4 t 5 t 3 }
步骤(1.5),对集合进行约简。
(1)构造集合T2的覆盖需求集:
●当m≠n时,
Req ( T 2 ) = ∪ seq ∈ R id Last ( seq ) · I id [ m - n ] ( q ) · W u id
其中,
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 ( T 2 ) = ∪ seq ∈ R id Last ( seq ) · W q id
其中,q=Tail(Last(seq))。
在此处按照之前步骤(1.1)中的假设m=n,则
Req ( T 2 ) = { t 3 · W 0 id ( q 0 ) ∪ t 2 · W 2 id ( q 2 ) ∪ t 5 · W 1 id ( q 1 ) ∪ t 6 · W 0 id ( q 0 ) = { { t 3 t 1 } ∪ { t 2 t 5 , t 2 t 5 t 3 } ∪ { t 5 t 3 , t 5 t 3 t 1 } ∪ { t 6 t 1 } } = { t 3 t 1 , t 2 t 5 , t 2 t 5 t 3 , t 5 t 3 , t 5 t 3 t 1 , t 6 t 1 }
(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则
T 2 ′ = GREEDY _ SET _ COVER ( T 2 id , Req ( T 2 ) , isCover _ SubSeq ) = { t 2 t 5 t 3 t 1 , t 2 t 6 t 1 } ,
步骤(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)中得到的每个集合转换成由转换标识构成的对应集合。其中,
T 1 id = { t 5 , t 1 , t 2 , t 5 t 7 , t 5 t 12 , t 5 t 8 , t 6 t 13 , t 6 t 14 , t 6 t 17 } .
T 2 id = { t 1 t 5 , t 2 t 5 , t 3 t 5 , t 4 t 5 , t 5 t 11 t 5 , t 6 t 17 t 5 , t 5 t 12 t 17 t 5 , t 11 t 18 t 5 , t 5 t 7 t 12 , t 5 t 9 t 12 , t 5 t 10 t 12 , t 5 t 8 t 12 , t 6 t 18 t 12 , t 6 t 18 t 7 t 12 , t 6 t 18 t 8 t 12 , t 6 t 18 t 9 t 12 , t 6 t 18 t 10 t 12 , t 5 t 12 t 18 t 12 , t 5 t 12 t 17 , t 6 t 13 t 17 , t 6 t 14 t 17 , t 6 t 15 t 17 , t 6 t 16 t 17 , t 6 t 18 t 12 t 17 , t 5 t 12 t 13 t 17 , t 5 t 12 t 14 t 17 , t 5 t 12 t 15 t 17 , t 5 t 12 t 16 t 17 } .
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}。
W 0 id ( q 0 ) = { t 5 } , W 1 id ( q 1 ) = { t 12 } , W 2 id ( q 2 ) = { t 17 } .
步骤(3.4),对集合进行约简。
(1)构造集合的覆盖需求集
Req(T1)={t5,t1,t2,t5t7,t5t12,t5t8,t6t13,t6t14,t6t17}。
(2)使用谓词函数isCover_Prefix,令约简后的为T′1,则
T 1 ′ = GREEDY _ SET _ COVER ( T 1 id , Req ( T 1 ) , isCover _ Prefix ) = { t 1 , t 2 , t 5 t 7 , t 5 t 12 , t 5 t 8 , t 6 t 13 , t 6 t 14 , t 6 t 17 } .
步骤(3.5),对集合进行约简。
(1)构造集合的覆盖需求集的计算如下:
Req ( T 2 ) = { t 1 · W 0 id ( q 0 ) ∪ t 2 · W 0 id ( q 0 ) ∪ t 3 · W 0 id ( q 0 ) ∪ t 4 · W 0 id ( q 0 ) ∪ t 11 · W 0 id ( q 0 ) ∪ t 17 · W 0 id ( q 0 ) ∪ t 7 · W 1 id ( q 1 ) ∪ t 9 · W 1 id ( q 1 ) ∪ t 10 W 1 id ( q 1 ) ∪ t 8 · W 1 id ( q 1 ) ∪ t 12 · W 2 id ( q 2 ) ∪ t 13 · W 2 id ( q 2 ) ∪ t 14 · W 2 id ( q 2 ) ∪ t 15 · W 2 id ( q 2 ) ∪ t 16 · W 2 id ( q 2 ) } = { t 1 t 5 ∪ t 2 · t 5 ∪ t 3 t 5 ∪ t 4 t 5 ∪ t 11 t 5 ∪ t 17 t 5 ∪ t 7 t 12 ∪ t 9 t 12 ∪ t 10 t 12 ∪ t 8 t 12 ∪ t 12 t 17 ∪ t 13 t 17 ∪ t 14 t 17 ∪ t 15 t 17 ∪ t 16 t 17 } = { t 1 t 5 , t 2 t 5 , t 3 t 5 , t 4 t 5 , t 11 t 5 , t 17 t 5 , t 7 t 12 , t 9 t 12 , t 10 t 12 , t 8 t 12 , t 12 t 17 , t 13 t 17 , t 14 t 17 , t 15 t 17 , t 6 t 17 } .
(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则
T 2 ′ = GREEDY _ SET _ COVER ( T 2 id , Req ( T 2 ) , isCover _ SubSeq ) = { t 1 t 5 , t 2 t 5 , t 3 t 5 , t 4 t 5 , t 5 t 11 t 5 , t 5 t 12 t 17 t 5 , t 5 t 7 t 12 , t 6 t 18 t 9 t 12 , t 5 t 10 t 12 , t 5 t 8 t 12 , t 6 t 13 t 17 , t 6 t 14 t 17 , t 6 t 15 t 17 , t 6 t 16 t 17 } .
步骤(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)中得到的每个集合转换成由转换标识构成的对应集合。其中,
T 1 id = { t 1 , t 1 t 3 , t 1 t 3 t 1 , t 1 t 4 t 5 , t 1 t 4 t 5 t 3 } .
T 2 id = { t 1 t 3 t 1 , t 2 t 5 , t 2 t 5 t 3 , t 2 t 5 t 3 t 1 } .
Sid={ε,t1,t1t4}。
Pid={ε,t1,t1t3,t1t4,t2,t2t5,t2t6}。
Rid={t1t3,t2,t2t5,t2t6}。
W 0 id ( q 0 ) = { t 1 } , W 1 id ( q 1 ) = { t 3 , t 3 t 1 } , W 2 id ( q 2 ) = { t 5 , t 5 t 3 } .
步骤(4),对集合进行约简。
(1)构造集合的覆盖需求集
Req(T1)={t1,t1t3,t1t3t1,t1t4t5,t1t4t5t3}。
(2)使用谓词函数isCover_Prefix,令约简后的为T′1,则
T 1 ′ = GREEDY _ SET _ COVER ( T 1 id , Req ( T 1 ) , isCover _ Prefix ) = { t 1 t 3 t 1 , t 1 t 4 t 5 t 3 }
步骤(5),对集合进行约简。
(1)构造集合的覆盖需求集的计算如下:
Req ( T 2 ) = { t 3 · W 0 id ( q 0 ) ∪ t 2 · W 2 id ( q 2 ) ∪ t 5 · W 1 id ( q 1 ) ∪ t 6 · W 0 id ( q 0 ) = { { t 3 t 1 } ∪ { t 2 t 5 , t 2 t 5 t 3 } ∪ { t 5 t 3 , t 5 t 3 t 1 } ∪ { t 6 t 1 } } = { t 3 t 1 , t 2 t 5 , t 2 t 5 t 3 , t 5 t 3 , t 5 t 3 t 1 , t 6 t 1 } ,
(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则
T 2 ′ = GREEDY _ SET _ COVER ( T 2 id , Req ( T 2 ) , isCover _ SubSeq ) = { t 2 t 5 t 3 t 1 , t 2 t 6 t 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)使用谓词函数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方法原有的检测能力,将本发明用于无线传感器网络系统测试,使实际工作效率得到了极大地提高。

Claims (1)

1.基于Wp测试用例约简集的无线传感器网络系统测试方法,其特征在于,是一种无线传感器网络系统通信协议设计验证和系统测试的方法,依次含有以下步骤:
步骤(1),按以下步骤首先利用Wp方法处理计算机仿真系统有限状态机模型M1生成测试用例集合,然后构造覆盖需求集合,利用集合覆盖贪心算法对得到测试用例集进行约简,得到Wp方法测试用例约简集,
步骤(1.1),将所述的计算机仿真系统有限状态机模型M1用(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中的若干个输入字符构成的输入字符串,
O:Q×X→Y,O是输出函数,表示所述的输入符号集X使当前状态集合Q发生转换时产生输出符号集合Y,O(qi,s2)=O(qi,a1)·O(δ(qi,a2),a3a4...al)=Y,表示长度为l的输入字符串s2使当前状态qi发生转换时产生的一个输出字符集Y,其中l为非负整数,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,其含义为输入字符x使有限状态机模型由状态qi转入状态qj,同时输出符号y,有限状态机模型在输入空序列的情况下,将产生空输出,同时仍处于原来的状态,使用符号ε表示空输入序列,null表示空输出,该转换表示为(qi,qi,ε/null),
而对于所述的计算机仿真系统有限状态机模型M1而言,有限状态集合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的各个转换设置唯一的转换标识,设定以下转换与转换标识的对应关系:
转换(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)中得到的每个集合转换成由转换标识构成的对应集合,
T 1 id = { t 1 , t 1 t 3 , t 1 t 3 t 1 , t 1 t 4 t 5 , t 1 t 4 t 5 t 3 } ,
T 2 id = { t 1 t 3 t 1 , t 2 t 5 , t 2 t 5 t 3 , t 2 t 5 t 3 t 1 } ,
Sid={ε,t1,t1t4},
Pid={ε,t1,t1t3,t1t4,t2,t2t5,t2t6},
Rid={t1t3,t2,t2t5,t2t6},
W 0 id ( q 0 ) = { t 1 } , W 1 id ( q 1 ) = { t 3 , t 3 t 1 } , W 2 id ( q 2 ) = { t 5 , t 5 t 3 } ,
其中,
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,则
T 1 ′ = GREEDY _ SET _ COVER ( T 1 id , Req ( T 1 ) , isCover _ Prefix ) = { t 1 t 3 t 1 , t 1 t 4 t 5 t 3 } ,
步骤(1.5),对集合进行约简,
(1)构造集合T2的覆盖需求集:
●当m≠n时,
Req ( T 2 ) = ∪ seq ∈ R id Last ( seq ) · I id [ m - n ] ( q ) · W u id
其中,
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 ( T 2 ) = ∪ seq ∈ R id Last ( seq ) · W q id
其中,q=Tail(Last(seq)),
在此处按照之前步骤(1.1)中的假设m=n,则
Req ( T 2 ) = { t 3 · W 0 id ( q 0 ) ∪ t 2 · W 2 id ( q 2 ) ∪ t 5 · W 1 id ( q 1 ) ∪ t 6 · W 0 id ( q 0 ) = { { t 3 t 1 } ∪ { t 2 t 5 , t 2 t 5 t 3 } ∪ { t 5 t 3 , t 5 t 3 t 1 } ∪ { t 6 t 1 } } = { t 3 t 1 , t 2 t 5 , t 2 t 5 t 3 , t 5 t 3 , t 5 t 3 t 1 , t 6 t 1 } ,
(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则
R 2 ′ = GREEDY _ SET _ COVER ( T 2 id , Req ( T 2 ) , isCover _ SubSeq ) = { t 2 t 5 t 3 t 1 , t 2 t 6 t 1 }
步骤(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)中所述流程处理根据无线传感器网络系统所描述的无线传感器网络系统有限状态机模型,得到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,在空闲状态输出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的各个转换设置唯一的转换标识,设定以下转换与转换标识的对应关系:
转换(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)中得到的每个集合转换成由转换标识构成的对应集合,其中,
T 1 id = { t 5 , t 1 , t 2 , t 5 t 7 , t 5 t 12 , t 5 t 8 , t 6 t 13 , t 6 t 14 , t 6 t 17 } ,
T 2 id = { t 1 t 5 , t 2 t 5 , t 3 t 5 , t 4 t 5 , t 5 t 11 t 5 , t 6 t 17 t 5 , t 5 t 12 t 17 t 5 , t 11 t 18 t 5 , t 5 t 7 t 12 , t 5 t 9 t 12 , t 5 t 10 t 12 , t 5 t 8 t 12 , t 6 t 18 t 12 , t 6 t 18 t 7 t 12 , t 6 t 18 t 8 t 12 , t 6 t 18 t 9 t 12 , t 6 t 18 t 10 t 12 , t 5 t 12 t 18 t 12 , t 5 t 12 t 17 , t 6 t 13 t 17 , t 6 t 14 t 17 , t 6 t 15 t 17 , t 6 t 16 t 17 , t 6 t 18 t 12 t 17 , t 5 t 12 t 13 t 17 , t 5 t 12 t 14 t 17 , t 5 t 12 t 15 t 17 , t 5 t 12 t 16 t 17 } ,
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},
W 0 id ( q 0 ) = { t 5 } , W 1 id ( q 1 ) = { t 12 } , W 2 id ( q 2 ) = { t 17 } ,
步骤(3.4),对集合进行约简,
(1)构造集合的覆盖需求集
Req(T1)={t5,t1,t2,t5t7,t5t12,t5t8,t6t13,t6t14,t6t17},
(2)使用谓词函数iSCover_Prefix,令约简后的为T′1,则
T 1 ′ = GREEDY _ SET _ COVER ( T 1 id , Req ( T 1 ) , iscover _ Prefix ) = { t 1 , t 2 , t 5 t 7 , t 5 t 12 , t 5 t 8 , t 6 t 13 , t 6 t 14 , t 6 t 17 } ,
步骤(3.5),对集合进行约简,
(1)构造集合的覆盖需求集的计算如下:
Req ( T 2 ) = { t 1 · W 0 id ( q 0 ) ∪ t 2 · W 0 id ( q 0 ) ∪ t 3 · W 0 id ( q 0 ) ∪ t 4 · W 0 id ( q 0 ) ∪ t 11 · W 0 id ( q 0 ) ∪ t 17 · W 0 id ( q 0 ) ∪ t 7 · W 1 id ( q 1 ) ∪ t 9 · W 1 id ( q 1 ) ∪ t 10 W 1 id ( q 1 ) ∪ t 8 · W 1 id ( q 1 ) ∪ t 12 · W 2 id ( q 2 ) ∪ t 13 · W 2 id ( q 2 ) ∪ t 14 · W 2 id ( q 2 ) ∪ t 15 · W 2 id ( q 2 ) ∪ t 16 · W 2 id ( q 2 ) } = { t 1 t 5 ∪ t 2 · t 5 ∪ t 3 t 5 ∪ t 4 t 5 ∪ t 11 t 5 ∪ t 17 t 5 ∪ t 7 t 12 ∪ t 9 t 12 ∪ t 10 t 12 ∪ t 8 t 12 ∪ t 12 t 17 ∪ t 13 t 17 ∪ t 14 t 17 ∪ t 15 t 17 ∪ t 16 t 17 } = { t 1 t 5 , t 2 t 5 , t 3 t 5 , t 4 t 5 , t 11 t 5 , t 17 t 5 , t 7 t 12 , t 9 t 12 , t 10 t 12 , t 8 t 12 , t 12 t 17 , t 13 t 17 , t 14 t 17 , t 15 t 17 , t 16 t 17 } ,
(2)使用谓词函数isCover_SubSeq,令约简后的为T′2,则
T 2 ′ = GREEDY _ SET _ COVER ( T 2 id , Req ( T 2 ) , isCover _ SubSeq ) = { t 1 t 5 , t 2 t 5 , t 3 t 5 , t 4 t 5 , t 5 t 11 t 5 , t 5 t 12 t 17 t 5 , t 5 t 7 t 12 , t 6 t 18 t 9 t 12 , t 5 t 10 t 12 , t 5 t 8 t 12 , t 6 t 3 t 17 , t 6 t 14 t 17 , t 6 t 15 t 17 , t 6 t 16 t 17 } ,
步骤(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条测试用例去测试无线传感器网络系统,若全部都测试通过,则表明无线传感器网络系统正确实现,否则,则表明系统中存在故障。
CN201410843291.0A 2014-12-30 2014-12-30 基于Wp测试用例约简集的无线传感器网络系统测试方法 Active CN104572458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410843291.0A CN104572458B (zh) 2014-12-30 2014-12-30 基于Wp测试用例约简集的无线传感器网络系统测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410843291.0A CN104572458B (zh) 2014-12-30 2014-12-30 基于Wp测试用例约简集的无线传感器网络系统测试方法

Publications (2)

Publication Number Publication Date
CN104572458A true CN104572458A (zh) 2015-04-29
CN104572458B CN104572458B (zh) 2017-05-24

Family

ID=53088590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410843291.0A Active CN104572458B (zh) 2014-12-30 2014-12-30 基于Wp测试用例约简集的无线传感器网络系统测试方法

Country Status (1)

Country Link
CN (1) CN104572458B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426312A (zh) * 2015-12-31 2016-03-23 北京经纬恒润科技有限公司 一种冒烟测试用例集生成方法和装置
CN111935764A (zh) * 2020-06-23 2020-11-13 北京工业大学 基于Wp的无线传感器网络系统测试方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805795A (en) * 1996-01-05 1998-09-08 Sun Microsystems, Inc. Method and computer program product for generating a computer program product test that includes an optimized set of computer program product test cases, and method for selecting same
CN1670714A (zh) * 2004-03-16 2005-09-21 华为技术有限公司 测试用例实现方法及软件测试方法
CN102063374A (zh) * 2011-01-07 2011-05-18 南京大学 一种使用半监督信息进行聚类的回归测试用例选择方法
US20130198320A1 (en) * 2012-01-31 2013-08-01 Bank Of America Corporation System And Method For Processing Web Service Test Cases
CN103684912A (zh) * 2013-12-06 2014-03-26 重庆邮电大学 一种传感网安全测试方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805795A (en) * 1996-01-05 1998-09-08 Sun Microsystems, Inc. Method and computer program product for generating a computer program product test that includes an optimized set of computer program product test cases, and method for selecting same
CN1670714A (zh) * 2004-03-16 2005-09-21 华为技术有限公司 测试用例实现方法及软件测试方法
CN102063374A (zh) * 2011-01-07 2011-05-18 南京大学 一种使用半监督信息进行聚类的回归测试用例选择方法
US20130198320A1 (en) * 2012-01-31 2013-08-01 Bank Of America Corporation System And Method For Processing Web Service Test Cases
CN103684912A (zh) * 2013-12-06 2014-03-26 重庆邮电大学 一种传感网安全测试方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JUN WANG ET AL.: "《Software Engineering Conference,2005.APSEC’05.Asia-Pacific》", 17 December 2005 *
游亮等: "测试用例集启发式约简算法分析与评价", 《计算机科学》 *
章晓芳等: "测试用例集约简问题研究及其进展", 《计算机科学与探索》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426312A (zh) * 2015-12-31 2016-03-23 北京经纬恒润科技有限公司 一种冒烟测试用例集生成方法和装置
CN111935764A (zh) * 2020-06-23 2020-11-13 北京工业大学 基于Wp的无线传感器网络系统测试方法及装置

Also Published As

Publication number Publication date
CN104572458B (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
Cui et al. The evaluation of transportation energy efficiency: An application of three-stage virtual frontier DEA
CN102411687B (zh) 未知恶意代码的深度学习检测方法
CN103886405B (zh) 一种基于信息熵特征和概率神经网络的锅炉燃烧工况识别方法
CN101907088A (zh) 基于单类支持向量机的故障诊断方法
Mirabi et al. A two-stage hybrid flowshop scheduling problem in machine breakdown condition
CN104536881A (zh) 基于自然语言分析的众测错误报告优先级排序方法
CN103559129A (zh) 基于遗传算法的统计回归测试数据生成方法
CN105991517A (zh) 漏洞发掘方法和装置
CN111291462B (zh) 生成电厂的管道和仪表图p&id的装置和方法
CN104732087A (zh) 基于gis的神经网络元胞自动机传染病传播模拟分析方法
CN104572458A (zh) 基于Wp测试用例约简集的无线传感器网络系统测试方法
CN104679945B (zh) 基于有色Petri网的系统综合评估方法
CN105184403A (zh) 基于机器学习和统计模型检验的工作流最优配置寻优方法
CN106662867B (zh) 使用条件模型来迁移故障样本以用于机器状况监视
Li et al. Software defect prediction using fuzzy integral fusion based on GA-FM
He et al. Isomorphic identification for kinematic chains using variable high-order adjacency link values
CN109543114A (zh) 异构信息网络链接预测方法、可读存储介质和终端
CN105955927A (zh) 基于分解-并行遗传算法的约束优化算法
Zhang et al. Test sequencing problem arising at the design stage for reducing life cycle cost
CN103729297A (zh) 一种基于分层遗传算法的测试用例生成方法
CN116303042A (zh) 一种基于污点分析的软件配置故障检测方法
Inoue et al. Optimizing a multiple classifier system
CN109815108A (zh) 一种基于权重的组合测试用例集优先化排序方法及系统
CN102981938B (zh) 输入法测试方法、生成测试用例的方法及电子装置
CN111935764B (zh) 基于Wp的无线传感器网络系统测试方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant