CN108845947B - 一种基于蚁群算法的工作流系统测试用例优化方法 - Google Patents
一种基于蚁群算法的工作流系统测试用例优化方法 Download PDFInfo
- Publication number
- CN108845947B CN108845947B CN201810737179.7A CN201810737179A CN108845947B CN 108845947 B CN108845947 B CN 108845947B CN 201810737179 A CN201810737179 A CN 201810737179A CN 108845947 B CN108845947 B CN 108845947B
- Authority
- CN
- China
- Prior art keywords
- activity
- resource
- ant
- workflow
- migration
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于蚁群算法的工作流系统测试用例优化方法。所述基于蚁群算法的工作流系统测试用例优化方法包括:步骤1,将所需测试的工作流系统建模为RTI/O_WF_Net模型;步骤2,定义蚁群算法的目标函数;步骤3,定义蚁群算法的启发函数;步骤4:修改蚁群算法信息素更新规则;步骤5:制定状态转移概率计算方法;步骤6:按照设计的蚁群算法生成优化后的测试序列。本发明的有益效果在于:所述基于蚁群算法的工作流系统测试用例优化方法将蚁群算法这一启发式算法应用到测试用例优化中,解决了工作流系统测试用例数量爆炸、测试周期长的问题,提高了系统的测试效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于蚁群算法的工作流系统测试用例优化方法。
背景技术
随着计算机技术的发展工作流系统已经广泛被应用于银行、保险、医疗、政府等办公自动化业务领域中,由于其具有较高的业务重组能力,因此极大地提高了相关领域的业务处理能力。正是由于其应用范围的广泛性,其可靠性越来越受到重点关注。软件测试作为保证软件质量的重要手段,在工作流系统的测试中也进行了普遍应用。测试用例的设计和执行是软件测试的核心工作。由于工作流系统是可并行执行的应用系统,其测试用例的产生和优化一直是一个难以解决的NP问题。也就是说,工作流系统地测试用例如果全部生成和执行,将耗费大量时间,在现实中是不可接受的。
发明内容
本发明的目的在于提供一种基于蚁群算法的工作流系统测试用例优化方法,从而能够有效地提高测试的工作效率。
本发明的技术方案如下:一种基于蚁群算法的工作流系统测试用例优化方法包括:步骤1,将所需测试的工作流系统建模为RTI/O_WF_Net模型;步骤2,定义蚁群算法的目标函数;步骤3,定义蚁群算法的启发函数;步骤4:修改蚁群算法信息素更新规则;步骤5:制定状态转移概率计算方法;步骤6:按照设计的蚁群算法生成优化后的测试序列。
优选地,步骤1的RTI/O_WF_Net模型定义如下:
九元组<Activity,Input,Output,Resource,Relation,fAI,fAO,fTT,fTR>表示带输入输出及资源、时间约束的工作流,其中:
Activity={activity1,activity2,…activityk}(k≥1)表示工作流的活动集合;
Input={input1,input2,…inputm}(m≥1)表示输入元素的集合;
Output={output1,output2,…outputn}(n≥1)表示输出元素的集合;
Resource={resource1,resource2,…resourcel}(l≥1)表示资源的集合;
Relation={(f,Type)|f∈(Activity×Activity)}表示工作流中的关系集合,其中,
Type∈{sequence,and-join,or-join,and-split,or-split}表示工作流中前后两个活动的关系类型;
fAI:Activity→ρ(Input)表示工作流中某一活动到输入元素的映射,其中ρ(Input)表示输入元素的幂集;
fAO:Activity→ρ(Output)表示工作流中某一活动到输出元素的映射,其中
ρ(Output)表示输出元素的幂集;
fTT:Activity→Time是工作流中某一活动到时间上的映射,如果
fTT(activity1)=time1,则表示活动activity1的执行需要的时间为time1;
fTR:Activity→ρ(Resource)表示工作流中某一活动到资源的映射,其中ρ(Resource)表示资源的幂集。
优选地,在步骤2中,目标函数的定义为:
设整个工作流的任务W={wi|wi={σ1,σ2…σn}},wi表示某一时间段内工作流中并行执行的各时序片段σ1,σ2…σn集合,令max(wi)表示wi中所有时序无关的活动序列执行时间的最大值,则本文所要求得的目标函数为:
约束条件:a.如果σk∈wi,σs∈wj,并且则i<j;
b.如果σk∈wi,σs∈wi,则须满足如下两个条件之一:
(1)σk和σs时序无关,并且σk和σs资源无关;
(2)σk和σs时序无关,σk和σs资源相关且其中相关的资源数量可以满足相应活动的执行。
优选地,在步骤3中,启发函数的定义为:
在蚂蚁每一步的搜索中,需要受到启发函数及信息素两个方面的影响,设定启发函数:
表示蚂蚁k在时刻t从上一迁移i转到下一迁移j的启发信息,表示所有可执行迁移的执行时间平均值,也可理解为期望程度的强度,它在一定程度上将影响整个算法的收敛速度;tj表示迁移j的执行时间,该值越小,相应的启发信息越大,蚂蚁选择该活动进行执行的概率也就越大。
优选地,在步骤4中具体包括如下内容:
蚂蚁k在迁移ti、tj间留下的信息素大小为:
其中Q表示初始时刻各活动迁移中所包含的信息量,LB表示所有蚂蚁执行过的迁移时间的最小值,T表示所有蚂蚁执行过的所有迁移时间的总和,T表示所有蚂蚁执行过的迁移时间的平均值;
所有蚂蚁本次循环中在迁移ti、tj间留下的信息素的总和为:
从而t+n时刻在迁移ti、tj间的信息素更新策略可以表示为:
τij(t+n)=(1-ρ)·τij(t)+Δτij(t)
其中ρ表示信息素挥发速率,信息素更新策略的公式可以理解为迁移ti、tj间在原有信息素τij(t)的基础上,经挥发残留下原信息量的(1-ρ),并通过其他蚂蚁的经过,又补充进来大小为Δτij(t)的信息素。
优选地,在步骤5中具体包括如下内容:
由步骤4中信息素更新规则和步骤3中启发函数设置可得到蚂蚁k在时刻t由迁移ti转移到迁移tj的转移概率
其中allowedk为在RTI/O_WF_Net运行规则下蚂蚁k当前允许执行的活动集合。
本发明的有益效果在于:所述基于蚁群算法的工作流系统测试用例优化方法将蚁群算法这一启发式算法应用到测试用例优化中,解决了工作流系统测试用例数量爆炸、测试周期长的问题,提高了系统的测试效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
基本定义:
资源相关活动的定义为:如果资源并且则称活动ti、tj是资源相关的;如果在活动序列σi和σj中,ti和tj均资源无关,那么称活动序列σi和σj是资源无关的。
时序相关活动的定义为:如果存在状态M1,M2和活动序列σ,使得M1[ti>,并且M1[σ>M2,M2[tj>,则称活动ti、tj是时序相关的,ti先于tj执行,则记作如果 则称活动序列σi和σj是时序相关的,记作如果ti和tj均时序无关,那么称活动序列σi和σj是时序无关的,即σi和σj可并行执行。
所述基于蚁群算法的工作流系统测试用例优化方法包括如下步骤:
步骤1,将所需测试的工作流系统建模为RTI/O_WF_Net模型。
具体地,在步骤1中,RTI/O_WF_Net模型定义如下:
九元组<Activity,Input,Output,Resource,Relation,fAI,fAO,fTT,fTR>表示带输入输出及资源、时间约束的工作流,其中:
10)Activity={activity1,activity2,…activityk}(k≥1)表示工作流的活动集合;
11)Input={input1,input2,…inputm}(m≥1)表示输入元素的集合;
12)Output={output1,output2,…outputn}(n≥1)表示输出元素的集合;
13)Resource={resource1,resource2,…resourcel}(l≥1)表示资源的集合;
14)Relation={(f,Type)|f∈(Activity×Activity)}表示工作流中的关系集合,其中,
Type∈{sequence,and-join,or-join,and-split,or-split}表示工作流中前后两个活动的关系类型;
15)fAI:Activity→ρ(Input)表示工作流中某一活动到输入元素的映射,其中ρ(Input)表示输入元素的幂集;
16)fAO:Activity→ρ(Output)表示工作流中某一活动到输出元素的映射,其中ρ(Output)表示输出元素的幂集;
17)fTT:Activity→Time是工作流中某一活动到时间上的映射,如果fTT(activity1)=time1,则表示活动activity1的执行需要的时间为time1;
18)fTR:Activity→ρ(Resource)表示工作流中某一活动到资源的映射,其中ρ(Resource)表示资源的幂集。
步骤2,定义蚁群算法的目标函数。
具体地,在步骤2中,目标函数的定义为:
设整个工作流的任务W={wi|wi={σ1,σ2…σn}},wi表示某一时间段内工作流中并行执行的各时序片段σ1,σ2…σn集合,令max(wi)表示wi中所有时序无关的活动序列执行时间的最大值,则本文所要求得的目标函数为:
约束条件:a.如果σk∈wi,σs∈wj,并且则i<j;
b.如果σk∈wi,σs∈wi,则须满足如下两个条件之一:
(1)σk和σs时序无关,并且σk和σs资源无关;
(2)σk和σs时序无关,σk和σs资源相关且其中相关的资源数量可以满足相应活动的执行。
步骤3,定义蚁群算法的启发函数。
具体地,在步骤3中,启发函数的定义为:
在蚂蚁每一步的搜索中,需要受到启发函数(即能见度)及信息素两个方面的影响,设定启发函数:
表示蚂蚁k在时刻t从上一迁移i转到下一迁移j的启发信息,表示所有可执行迁移的执行时间平均值,也可理解为期望程度的强度,它在一定程度上将影响整个算法的收敛速度;tj表示迁移j的执行时间,该值越小,相应的启发信息越大,蚂蚁选择该活动进行执行的概率也就越大。
步骤4:修改蚁群算法信息素更新规则。
具体地,在步骤4中具体包括如下内容:
蚂蚁k在迁移ti、tj间留下的信息素大小为:
其中Q表示初始时刻各活动迁移中所包含的信息量,LB表示所有蚂蚁执行过的迁移时间的最小值,T表示所有蚂蚁执行过的所有迁移时间的总和,表示所有蚂蚁执行过的迁移时间的平均值;这种动态标注方法可以减小可行解之间的差别,避免算法早熟。
所有蚂蚁本次循环中在迁移ti、tj间留下的信息素的总和为:
从而t+n时刻在迁移ti、tj间的信息素更新策略可以表示为:
τij(t+n)=(1-ρ)·τij(t)+Δτij(t)
其中ρ表示信息素挥发速率,信息素更新策略的公式可以理解为可以理解为迁移ti、tj间在原有信息素τij(t)的基础上,经挥发残留下原信息量的(1-ρ),并通过其他蚂蚁的经过,又补充进来大小为Δτij(t)的信息素。
步骤5:制定状态转移概率计算方法。
具体地,在步骤5中具体包括如下内容:
由步骤4中信息素更新规则和步骤3中启发函数设置可得到蚂蚁k在时刻t由迁移ti转移到迁移tj的转移概率
其中allowedk为在RTI/O_WF_Net运行规则下蚂蚁k当前允许执行的活动集合。
步骤6:按照设计的蚁群算法生成优化后的测试序列。
具体地,在步骤6中:
算法输入:RTI/O_WF_Net模型∑=(P,T,F,M0,α,K),初始时刻各活动迁移中所包含的信息量Q,蚂蚁个数m,算法最大循环次数Nmax;
算法输出:最优测试序列W
算法过程:
为每只蚂蚁依照RTI/O_WF_Net运行规则初始化allowedk;
根据步骤5计算的状态转移概率选择迁移tj前进,j∈allowedk;
更新由本次选择执行的迁移tj产生的并行测试序列集W,并依照Petri网运行规则更新allowedk;
依步骤4中信息素更新规则的公式更新每条路径上的信息量,循环上述过程直至完成m个蚂蚁的信息素更新,并输出最佳路径W。
从上述算法设计可以看出,算法的时间耗费依赖于最大循环次数Nmax、蚂蚁个数m的设置和模型中活动迁移的个数|T|,即算法中三层循环次数的设置,因此算法的时间复杂度为O(Nmax·m·|T|);算法的空间耗费主要用于记录每只蚂蚁的适应值信息、输入模型的存储及每只蚂蚁在每次循环得到的执行序列上,故算法的空间复杂度为O(|T|+|P|+m+k·Nmax)。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (1)
1.一种基于蚁群算法的工作流系统测试用例优化方法,其特征在于,包括:
步骤1,将所需测试的工作流系统建模为∑=(P,T,F,M0,α,K)模型:
九元组<Activity,Input,Output,Resource,Relation,fAI,fAO,fTT,fTR>表示带输入输出及资源、时间约束的工作流,其中:
1)Activity={activity1,activity2,…activityk}k≥1表示工作流的活动集合;
2)Input={input1,input2,…inputm'}m'≥1表示输入元素的集合;
3)Output={output1,output2,…outpute}e≥1表示输出元素的集合;
4)Resource={resource1,resource2,…resourcel}l≥1表示资源的集合;
5)Relation={(f,Type)|f∈(Activity×Activity)}表示工作流中的关系集合,其中,Type∈{sequence,and-join,or-join,and-split,or-split}表示工作流中前后两个活动的关系类型;
6)fAI:Activity→ρ(Input)表示工作流中某一活动到输入元素的映射,其中ρ(Input)表示输入元素的幂集;
7)fAO:Activity→ρ(Output)表示工作流中某一活动到输出元素的映射,其中ρ(Output)表示输出元素的幂集;
8)fTT:Activity→Time是工作流中某一活动到时间上的映射,如果fTT(activity1)=time1,则表示活动activity1的执行需要的时间为time1;
9)fTR:Activity→ρ(Resource)表示工作流中某一活动到资源的映射,其中ρ(Resource)表示资源的幂集;
步骤2,定义蚁群算法的目标函数;目标函数的定义为:
设整个工作流的任务W={wi|wi={σ1,σ2…σn}},wi表示某一时间段内工作流中并行执行的各时序片段σ1,σ2…σn集合,令max(wi)表示wi中所有时序无关的活动序列执行时间的最大值,则目标函数为:
约束条件:
a.如果σk∈wi,σs∈wj,并且则i<j;
b.如果σk∈wi,σs∈wi,则须满足如下两个条件之一:
1)σk和σs时序无关,并且σk和σs资源无关;
2)σk和σs时序无关,σk和σs资源相关且其中相关的资源数量可以满足相应活动的执行;
步骤3,定义蚁群算法的启发函数;启发函数的定义为:
在蚂蚁每一步的搜索中,需要受到启发函数及信息素两个方面的影响,设定启发函数:
表示蚂蚁k在时刻t从上一迁移i转到下一迁移j的启发信息,表示所有可执行迁移的执行时间平均值;tj表示迁移j的执行时间,该值越小,相应的启发信息越大,蚂蚁选择该迁移进行执行的概率也就越大;
步骤4:修改蚁群算法信息素更新规则;具体包括如下内容:
蚂蚁k在迁移ti、tj间留下的信息素大小为:
其中Q表示初始时刻各活动迁移中所包含的信息量,LB表示所有蚂蚁执行过的迁移时间的最小值,T表示所有蚂蚁执行过的所有迁移时间的总和,表示所有蚂蚁执行过的迁移时间的平均值;
所有蚂蚁本次循环中在迁移ti、tj间留下的信息素的总和为:
从而t+n时刻在迁移ti、tj间的信息素更新策略表示为:
τij(t+n)=(1-ρ)·τij(t)+Δτij(t)
其中ρ表示信息素挥发速率,信息素更新策略的公式理解为迁移ti、tj间在原有信息素τij(t)的基础上,经挥发残留下原信息量的(1-ρ),并通过其他蚂蚁的经过,又补充进来大小为Δτij(t)的信息素;
步骤5:制定状态转移概率计算方法;具体包括如下内容:
由步骤4中信息素更新策略和步骤3中启发函数设置得到蚂蚁k在时刻t由迁移ti转移到迁移tj的转移概率
其中allowedk为在运行规则下蚂蚁k当前允许执行的活动集合;
步骤6:按照设计的蚁群算法生成优化后的测试序列;具体地,在步骤6中:
算法输入:模型Σ=(P,T,F,M0,α,K),初始时刻各活动迁移中所包含的信息量Q,蚂蚁个数m,算法最大循环次数Nmax;
算法输出:最优测试序列W;
算法过程:
为每只蚂蚁依照模型运行规则初始化allowedk;
根据步骤5计算的状态转移概率选择迁移tj前进,j∈allowedk;
更新由本次选择执行的迁移tj产生的并行测试序列集W,并依照Petri网运行规则更新allowedk;
依步骤4中信息素更新策略的公式更新每条路径上的信息量,循环上述过程直至完成m个蚂蚁的信息素更新,并输出最佳路径W。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810737179.7A CN108845947B (zh) | 2018-07-06 | 2018-07-06 | 一种基于蚁群算法的工作流系统测试用例优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810737179.7A CN108845947B (zh) | 2018-07-06 | 2018-07-06 | 一种基于蚁群算法的工作流系统测试用例优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108845947A CN108845947A (zh) | 2018-11-20 |
CN108845947B true CN108845947B (zh) | 2019-10-01 |
Family
ID=64201548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810737179.7A Active CN108845947B (zh) | 2018-07-06 | 2018-07-06 | 一种基于蚁群算法的工作流系统测试用例优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108845947B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445702A (zh) * | 2020-11-09 | 2021-03-05 | 北京思特奇信息技术股份有限公司 | 基于蚁群算法的自动化测试方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104820636A (zh) * | 2015-04-09 | 2015-08-05 | 北京轩宇信息技术有限公司 | 一种并行的基于蚁群算法的测试用例序列生成方法 |
EP3070611A1 (en) * | 2015-03-18 | 2016-09-21 | Vestel Elektronik Sanayi ve Ticaret A.S. | Statistical model-based test design for effective test case generation |
-
2018
- 2018-07-06 CN CN201810737179.7A patent/CN108845947B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3070611A1 (en) * | 2015-03-18 | 2016-09-21 | Vestel Elektronik Sanayi ve Ticaret A.S. | Statistical model-based test design for effective test case generation |
CN104820636A (zh) * | 2015-04-09 | 2015-08-05 | 北京轩宇信息技术有限公司 | 一种并行的基于蚁群算法的测试用例序列生成方法 |
Non-Patent Citations (1)
Title |
---|
基于UML与智能优化算法的测试用例生成方法研究;张旭良;《中国优秀硕士学位论文全文数据库》;20160415;第17-50页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108845947A (zh) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220391771A1 (en) | Method, apparatus, and computer device and storage medium for distributed training of machine learning model | |
US20220414544A1 (en) | Parallel Development and Deployment for Machine Learning Models | |
CN113282759A (zh) | 一种基于威胁情报的网络安全知识图谱生成方法 | |
CN110263979B (zh) | 基于强化学习模型预测样本标签的方法及装置 | |
CN105608228B (zh) | 一种高效的分布式的rdf数据存储方法 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN108845947B (zh) | 一种基于蚁群算法的工作流系统测试用例优化方法 | |
CN111352896B (zh) | 人工智能加速器、设备、芯片以及数据处理方法 | |
Abd Elrahman et al. | D-smartml: A distributed automated machine learning framework | |
CN109657794A (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
Yang et al. | WholeGraph: a fast graph neural network training framework with multi-GPU distributed shared memory architecture | |
Duan et al. | Computation offloading scheduling for deep neural network inference in mobile computing | |
CN108153859A (zh) | 一种基于Hadoop与Spark的效用次序并行确定方法 | |
CN110489070A (zh) | 一种定制内容的显示处理方法及装置 | |
CN109376154A (zh) | 数据读取、写入方法及数据读取、写入系统 | |
CN104021169B (zh) | 一种基于SDD‑1算法的Hive连接查询方法 | |
CN106383863A (zh) | 一种同构子图查询优化方法 | |
CN106970840A (zh) | 一种结合任务调度的软硬件划分方法 | |
CN108229556A (zh) | 对象分类及模型训练方法、装置、介质和系统 | |
CN109032931A (zh) | 带时间、资源、输入输出约束的工作流系统建模方法 | |
CN110059378A (zh) | 一种基于GPU并行计算的自动制造系统Petri网状态生成方法 | |
Benjamas et al. | Enhancing parallel data mining performance on a large cluster using UCE scheduling | |
Liu et al. | Study on the Development of Ruichang Bamboo Weaving Patterns Based on Computer Graphics and Machine Learning | |
CN105335449B (zh) | 基于搜索引擎数据库的样本自动挖掘方法及装置 | |
CN117610616A (zh) | 用于加速异构图神经网络的大数据集训练及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |