1.一种基于混合模型的元启发式测试用例排序方法,其特征在于:该方法包括以下步骤:S1:搜集被测方测试需求涉及的通信协议测试用例,计算测试用例间的相似度因子Si,j和测试数据的重要程度TF‑IDF值;
S2:根据测试数据的TF‑IDF值初始化萤火虫智能体FA的亮度Brightnessi,j及设计目标函数f(xi,j);
S3:以当前测试用例为起点,根据编辑距离Levenshtein distance与Brightnessi,j用改进后的萤火虫算法以全局搜索的方式寻找FA下一处将要到达的节点候选集Setcandidate;
S4:从候选集Setcandidate以局部搜索根据相似度因子Si,j选择最优的解,记录FA移动的路径并更新节点距离S5:改变测试用例起点位置,重复S2至S4步骤,寻找FA的最优移动路径并记录,输出最优测试序列;
所述步骤S1中,计算测试用例间的相似程度和测试数据的重要程度具体包括以下步骤:
1)预处理,对测试数据进行过滤;在通信协议测试的用例中,由于测试数据是以字节数组形式呈现出来的,且其中包含许多用户设置的参数,包括源地址和目的地址,对于这种无效的数据使用影响因子αi过滤,αi取值为0或1,i表示被测协议字段的编号;当字段的αi为0时表示该字段为无效数据;下面的计算过程用到的数据均已使用αi进行过滤;
2)确定测试用例间的相关性,通过计算两两测试用例间的编辑距离来生成测试用例间相关系数矩阵,具体包括以下步骤:S11:测试用例中的内容以字符串间距来衡量,不同测试用例的字符串间距以编辑距离来度量;使用下面所示公式来度量:其中,leva,b(j,j)表示在字节数分别为i,j的时候,两个测试用例a,b之间的编辑距离,ai表示a中的第i个字节,bj表示b中的第j个字节;
S12:由上述计算的a,b之间的编辑距离得到a,b之间的重叠距离为max(i,j)‑leva,b(i,j),记为Pi,编辑距离leva,b(i,j)记为Qi;得到衡量不同测试用例之间相似度系数Si,j为:S13:根据相似度系数Si,j得到第i个测试用例与第j个测试用例的相似度,得到相似度系数矩阵Ms:
3)确定测试数据的重要程度,通过计算测试数据的TF‑IDF值,对于每一条测试数据li,j具体包括以下步骤:S14:统计测试用例中每条测试数据在所有测试用例中出现的次数nk,j,对于在某一特定测试用例来说,它的重要性表示为:上式中,ni,j是第j条测试用例中的测试数据在测试用例di中的出现次数,而分母则是在测试用例di中所有字词的出现次数之和;
S15:逆文本频率IDF是衡量一条测试数据普遍重要性的度量,某一特定测试数据的IDF,由总测试用例数目除以包含该测试数据的测试用例数目,将得到的结果取对数得到:其中,|D|表示测试用例总数, 表示包含测试数据ti,j的测试用例数目,ti,j表示第i个测试用例的第j条测试数据;
S16:衡量测试用例的重要程度通过下面公式计算:
所述步骤S2中,初始化萤火虫智能体FA的亮度Brightnessi,j及设计目标函数f(xi,j),具体包括以下步骤:S21:根据S1计算出的每条测试数据的重要程度系数作为每个智能体的初始亮度,计算公式如下所示:其中,Wi表示测试用例i的权重;当前智能体的亮度更新是根据萤火虫智能体FA当前位置权重与其他智能体的相关系数之积;
S22:通过将亮度与待优化的目标函数相关联,对其进行公式化,从而使新的优化算法的适应度函数得以公式化:其中,Wi‑1表示测试用例i‑1的权重,Order表示优先级确定的测试用例序列编号,unOrder表示优先级尚未确定的测试用例序列编号,Random(·)={N‑2<[[Ni‑j]‑0.1]<N},N表示测试用例总数;xi,j的适应度值f(xi,j)是受到下一步将要到达的点所影响的,从尚未加入Order的测试用例中找到适应度值最大的k个节点加入候选集合Setcandidate;
所述S22中,萤火虫智能体FA的亮度Brightnessi,j及目标函数f(xi,j)更新规则,具体包括以下步骤:S221:设置适应度函数/目标函数f(xi,j),xi,j表示第i个测试用例的第j个智能体;
S222:利用公式(7)初始化xi,j的值,作为萤火虫智能体的入口;
S223:Xi表示萤火虫智能体所到达的节点,节点距离更新公式如下:其中,β和α为常数,β为对光的吸收率,取1,α∈[0,1],ε为服从均匀分布的随机因子,γ表示吸引系数,Si,j表示节点Xi与Xj的相似度因子,由矩阵Ms给出;
所有的FA都是单性的,每只FA都会吸引或被其他FA吸引,FA的吸引力与它的亮度成正比;当FA被其他同类吸引时,它们的亮度就成为了吸引力的大小;
所述步骤S4中,萤火虫智能体下一步到达的节点的选择策略,具体包括以下步骤:S41:根据公式(9)计算出 与集合Setcandidate里面所有节点的距离;
S42:选择距离 最小的节点作为第i+1个序列;
S43:记录FA移动的路径并以混合模型更新节点距离
S44:如此反复直到unOrder为空。
2.根据权利要求1所述的一种基于混合模型的元启发式测试用例排序方法,其特征在于:所述步骤S5中,输出最优测试序列,具体包括以下步骤:S51:改变测试用例起点位置,还原之前的初始条件;
S52:重复S2至S4步骤的过程;
S53:在所有飞行路径中找出最优测试序列。