CN104679652B - 一种基于Markov方法的仿真系统测试用例生成方法 - Google Patents
一种基于Markov方法的仿真系统测试用例生成方法 Download PDFInfo
- Publication number
- CN104679652B CN104679652B CN201510081876.8A CN201510081876A CN104679652B CN 104679652 B CN104679652 B CN 104679652B CN 201510081876 A CN201510081876 A CN 201510081876A CN 104679652 B CN104679652 B CN 104679652B
- Authority
- CN
- China
- Prior art keywords
- function
- level
- feature operation
- analogue system
- transition probability
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种基于Markov方法的仿真系统测试用例生成方法,首先获取仿真系统所有功能操作及各功能操作的转移概率,根据功能操作及其转移概率建立有向图并得到功能操作个数与最长功能操作序列的长度,然后根据功能操作及其转移概率构建的有向图生成多个长度不定的且元素介于0与1之间的数组,最后依次遍历数组元素来选取功能后组成测试用例,并使用得到的测试用例完成测试。本发明方法根据转移概率计算得到的数组来生成测试用例,与现有技术相比覆盖同样的仿真系统功能需要的测试用例少,减少了测试重复率和测试的次数,提高了测试效率,降低了测试的工作量。
Description
技术领域
本发明涉及一种仿真系统测试用例的生成方法,特别是一种基于Markov方法的仿真系统测试用例生成方法。
背景技术
传统的随着航天工业的快速发展,运载火箭型号任务越来越多,型号研制周期不断缩短,飞行性能仿真试验在研发流程中占的比例也越来越大,对仿真系统的可用性和可信性要求也越来越高,可用性和可信性测试评估是仿真系统测试评估的重要内容,没有经过测试评估的仿真系统,应用到型号的研制中可能带来隐患,其结果可能是浪费人力、物力和财力。因此仿真系统测试评估已成为仿真系统研制中必不可少的一环,需要提供一种技术手段对仿真系统进行逻辑化描述,建立系统的使用模型,并生成测试用例用于仿真系统测试。
目前仿真系统的测试技术存在一定的问题,难以将仿真系统的功能以逻辑化和数学化的方式抽象成使用模型,将无限的执行域压缩到一个有限的域,现有的测试用例生成方法生成的测试用例数量多,对仿真系统的功能测试重复率高,极大的增加了测试工作的工作量。
发明内容
本发明解决的技术问题是:克服现有测试用例生成技术生成的测试用例数量多,对仿真系统的功能测试重复率高,测试工作量大的不足,提供了一种基于Markov方法的仿真系统测试用例生成方法。
本发明的技术解决方案是:一种基于Markov方法的仿真系统测试用例生成方法,包括如下步骤:
(1)获取仿真系统所有的功能操作,记为一级功能1、一级功能2、一级功能3,,,一级功能n,二级功能1、二级功能2、二级功能3,,,二级功能m,三级功能1、三级功能2、三级功能3,,,三级功能k,以此类推,T级功能1、T级功能2、T级功能3,,,T级功能e,其中n为仿真系统所有一级功能操作的个数,m为仿真系统所有二级功能操作的个数,k为仿真系统所有三级功能操作的个数,e为仿真系统所有T级功能操作的个数,其中I级功能为所有I-1级功能菜单下的功能,I=2,3,,,T;
(2)根据进行当前功能操作得到下一步可能进行的功能操作,如果当前功能操作为一级功能,则下一步进行一级功能或二级功能操作,如果当前操作为二级功能,则下一步进行一级功能、二级功能或三级功能操作,如果当前操作为三级功能,则下一步可能进行一级功能、二级功能、三级功能或四级功能操作,以此类推,如果当前操作为I级功能,则下一步可能进行一级功能、二级功能、三级功能,,,I级功能或I+1级功能,遍历I得到仿真系统所有功能,并获取各功能操作之间的转移概率,其中仿真开始时进行的第一步功能操作为一级功能;所述功能操作之间的转移概率为上一功能操作后进行下一功能操作的概率;
(3)根据仿真系统所有功能、各功能操作之间的转移概率建立仿真系统功能的有向图,并得到功能总个数为a,最长功能操作序列的长度为b;所述功能操作序列为仿真开始后直至结束进行的一系列功能操作的集合;
(4)生成d个取值范围为[0,1]的元素后组成第t个数组{P1,P2,P3,,,Pd},在步骤(3)得到的有向图中选取转移概率与P1大小最接近的一级功能,然后在该一级功能操作后可能进行的一级功能、二级功能操作中选取转移概率与P2大小最接近的功能,直至在上一功能操作后可能进行的功能操作中选取转移概率与Pd大小最接近的功能,将选取得到的功能顺序组成测试用例,使用该测试用例测试仿真系统并统计测试的功能操作个数,记为c,其中d为随机生成的取值范围为[1,2,3,,,b]的正整数,t的初值为1;所述选取转移概率与数组中元素大小最接近的功能时,如果多于1个功能的转移概率与元素大小最接近,则在多于1个功能中随机选取1个;
(5)获取测试功能的覆盖率并判断c/a,如果c/a小于覆盖率,则t=t+1并重复步骤(4),如果c/a大于等于覆盖率,则将步骤(4)得到的所有测试用例输出。
所述的步骤(4)中生成取值范围为[0,1]的元素的方法包括如下步骤:
(1)根据仿真系统所有功能及各功能之间的转移概率得到的有向图计算有向图中边的个数,记为w;
(2)将得到的仿真系统所有功能根据该功能的转移概率由小到大排列,记为{P’1,P’2,P’3,,,P’a},P’v为{P’1,P’2,P’3,,,P’a}中第v个转移概率,最大的转移概率记为P’max;
(3)计算数组{P1,P2,P3,,,Pd}中的各个元素,其中第t个数组的第s个元素为
其中,Ps为数组{P1,P2,P3,,,Pd}中第s个元素,rs,u取值范围为[0,1],t为正整数,s=1,2,3,,,d,d=1,2,3,,,b。
本发明与现有技术相比的优点在于:
(1)本发明方法与现有技术相比,覆盖同样的仿真系统功能需要的测试用例少,降低了测试的工作量;
(2)本发明方法与现有技术相比,根据转移概率计算得到的数组来生成测试用例,减少了测试重复率和测试的次数,提高了测试效率;
(3)本发明方法与现有技术相比,可以灵活设定对仿真系统功能的覆盖率。
附图说明
图1为本发明方法流程图;
图2为本发明举例说明的一级功能菜单;
图3为本发明举例说明的二级功能菜单;
图4为本发明举例说明的三级功能菜单
图5为本发明基于Markov方法的仿真系统功能的有向图。
具体实施方式
传统的测试用例生成技术生成的测试用例数量多,对仿真系统的功能测试重复率高,极大的增加了测试工作的工作量。通过分析用户对仿真系统的使用可以发现,仿真系统的功能操作是遵循某种统计规律的随机现象,Markov模型是一种随机过程模型,能够依照随机过程、统计理论并通过试验对随机过程的样本、均值、方差等进行理论分析,最终获得仿真模型的特征数据,由此可以采用Markov方法对本发明仿真系统功能操作进行建模分析,另外Markov模型中任何下一个功能操作只和当前的状态有关,不涉及历史信息,这有助于使用逻辑化和数学化的方式将仿真系统的全部功能操作抽象成使用模型,因此提出一种基于Markov方法的仿真系统测试用例生成方法,下面结合附图具体说明。
如图1所示,本发明方法的步骤包括:
(1)获取仿真系统所有的功能操作,记为一级功能1、一级功能2、一级功能3,,,一级功能n,二级功能1、二级功能2、二级功能3,,,二级功能m,三级功能1、三级功能2、三级功能3,,,三级功能k,以此类推,T级功能1、T级功能2、T级功能3,,,T级功能e,仿真开始时进行一级功能1操作的概率为p1、进行一级功能2操作的概率为p2、进行一级功能3操作的概率为p3,以此类推,进行一级功能n操作的概率为pn,其中n为当前所有一级功能操作的个数,m为仿真系统所有二级功能操作的个数,k为仿真系统所有三级功能操作的个数,e为仿真系统所有T级功能操作的个数,其中,进行一级功能操作的概率为通过对仿真系统的使用习惯分析得到,I级功能为所有I-1级功能菜单下的功能,I=1,2,3,,,T。
(2)根据进行的当前功能操作得到下一步可能进行的功能操作,如果当前功能操作为一级功能,则下一步可能进行一级功能、二级功能,如果当前操作为二级功能,则下一步可能进行一级功能、二级功能、三级功能,如果当前操作为三级功能,则下一步可能进行一级功能、二级功能、三级功能、四级功能,以此类推,如果当前操作为I级功能,则下一步可能进行一级功能、二级功能、三级功能,,,I+1级功能,其中仿真开始时进行的第一步功能操作为一级功能,遍历I得到仿真系统所有功能、各功能操作之间的转移概率及所有功能操作序列,建立仿真系统功能的有向图,并得到功能操作个数为a,最长功能操作序列的长度为b,功能操作之间的转移概率为上一功能操作后进行下一功能操作的概率,通过分析仿真系统的使用习惯得到,功能操作序列为仿真开始后直至结束进行的一系列功能操作的顺序集合,仿真系统功能的有向图中没有转移概率的两个功能之间没有边及指向箭头。
(3)根据步骤(2)得到的仿真系统所有功能的有向图计算有向图中边的个数,记为w。
(4)将得到的仿真系统所有功能根据该功能的转移概率由小到大排列,记为{P’1,P’2,P’3,,,P’w},其中P’v为{P’1,P’2,P’3,,,P’w}中第v个转移概率,选取{P’1,P’2,P’3,,,P’w}中最大的转移概率记为P’max,v=1,2,3,,,w。
(5)随机生成d作为第u个数组中元素的个数,第u个数组中第s个元素得到元素后组成数组{P1,P2,P3,,,Pd},其中u的初值为1,rs,u取值范围为[0,1],s=1,2,3,,,d,d=1,2,3,,,b。
(6)在步骤(2)得到的有向图中选取转移概率与P1大小最接近的一级功能,然后在该一级功能操作后可能进行的一级功能、二级功能操作中选取转移概率与P2大小最接近的功能,直至在上一功能操作后可能进行的功能操作中选取转移概率与Pd大小最接近的功能,将选取得到的功能顺序组成测试用例,使用该测试用例测试仿真系统并统计测试的功能操作个数,记为c,其中d=1,2,3,,,b,为随机生成;所述选取转移概率与数组中元素大小最接近的功能时,如果多于1个功能的转移概率与元素大小最接近,则在多于1个功能中随机选取1个。
(7)判断c/a,如果c/a小于覆盖率,则u=u+1,并重复步骤(5),如果c/a大于等于覆盖率,则将步骤(6)得到的所有测试用例输出。
下面结合实例(matlab)具体说明获取一级功能、二级功能、三级功能,,T级功能,如图2是使用本发明方法获取matlab仿真系统得到的一级功能,如图3所示为操作matlab仿真系统的一级功能”file”功能时,得到的一级功能”file”下的二级功能,如图4所示为操作一级功能”file”下的二级功能”new”时,得到的二级功能”new”下的三级功能。
如图5所示为举例说明步骤(1)-步骤(2)得到的基于Markov方法的仿真系统功能有向图,其中2个功能之间的边代表前一个功能操作完后可以进行边箭头指向的功能操作,而边上的数字代表前一个功能操作完后进行边箭头指向的功能操作的概率,即为在边前一个功能为当前功能操作时,边箭头指向功能的转移概率,如果2个功能之间没有边,则说明前一个功能操作后,不进行另一个功能操作,其中S为测试用例生成方法的开始,E为测试用例生成方法的结束。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.一种基于Markov方法的仿真系统测试用例生成方法,其特征在于包括如下步骤:
(1)获取仿真系统所有的功能操作,记为一级功能1、一级功能2、一级功能3,,,一级功能n,二级功能1、二级功能2、二级功能3,,,二级功能m,三级功能1、三级功能2、三级功能3,,,三级功能k,以此类推,T级功能1、T级功能2、T级功能3,,,T级功能e,其中n为仿真系统所有一级功能操作的个数,m为仿真系统所有二级功能操作的个数,k为仿真系统所有三级功能操作的个数,e为仿真系统所有T级功能操作的个数,其中I级功能为所有I-1级功能菜单下的功能,I=2,3,,,T;
(2)根据进行当前功能操作得到下一步可能进行的功能操作,如果当前功能操作为一级功能,则下一步进行一级功能或二级功能操作,如果当前操作为二级功能,则下一步进行一级功能、二级功能或三级功能操作,如果当前操作为三级功能,则下一步可能进行一级功能、二级功能、三级功能或四级功能操作,以此类推,如果当前操作为I级功能,则下一步可能进行一级功能、二级功能、三级功能,,,I级功能或I+1级功能,遍历I得到仿真系统所有功能,并获取各功能操作之间的转移概率,其中仿真开始时进行的第一步功能操作为一级功能;所述功能操作之间的转移概率为上一功能操作后进行下一功能操作的概率;
(3)根据仿真系统所有功能、各功能操作之间的转移概率建立仿真系统功能的有向图,并得到功能总个数为a,最长功能操作序列的长度为b;所述功能操作序列为仿真开始后直至结束进行的一系列功能操作的集合;
(4)生成d个取值范围为[0,1]的元素后组成第t个数组{P1,P2,P3,,,Pd},在步骤(3)得到的有向图中选取转移概率与P1大小最接近的一级功能,然后在该一级功能操作后可能进行的一级功能、二级功能操作中选取转移概率与P2大小最接近的功能,直至在上一功能操作后可能进行的功能操作中选取转移概率与Pd大小最接近的功能,将选取得到的功能顺序组成测试用例,使用该测试用例测试仿真系统并统计测试的功能操作个数,记为c,其中d为随机生成的取值范围为[1,2,3,,,b]的正整数,t的初值为1;所述选取转移概率与数组中元素大小最接近的功能时,如果多于1个功能的转移概率与元素大小最接近,则在多于1个功能中随机选取1个;所述的步骤(4)中生成取值范围为[0,1]的元素的方法包括如下步骤:
(41)根据仿真系统所有功能及各功能之间的转移概率得到的有向图计算有向图中边的个数,记为w;
(42)将得到的仿真系统所有功能根据该功能的转移概率由小到大排列,记为{P’1,P’2,P’3,,,P’a},P’v为{P’1,P’2,P’3,,,P’a}中第v个转移概率,最大的转移概率记为P’max;
(43)计算数组{P1,P2,P3,,,Pd}中的各个元素,其中第t个数组的第s个元素为
其中,Ps为数组{P1,P2,P3,,,Pd}中第s个元素,rs,t取值范围为[0,1],t为正整数,s=1,2,3,,,d,d=1,2,3,,,b;
(5)获取测试功能的覆盖率并判断c/a,如果c/a小于覆盖率,则t=t+1并重复步骤(4),如果c/a大于等于覆盖率,则将步骤(4)得到的所有测试用例输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510081876.8A CN104679652B (zh) | 2015-02-15 | 2015-02-15 | 一种基于Markov方法的仿真系统测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510081876.8A CN104679652B (zh) | 2015-02-15 | 2015-02-15 | 一种基于Markov方法的仿真系统测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679652A CN104679652A (zh) | 2015-06-03 |
CN104679652B true CN104679652B (zh) | 2017-12-22 |
Family
ID=53314734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510081876.8A Active CN104679652B (zh) | 2015-02-15 | 2015-02-15 | 一种基于Markov方法的仿真系统测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679652B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729226A (zh) * | 2017-07-13 | 2018-02-23 | 中科院合肥技术创新工程院 | 基于业务流的测试用例自动生成系统及方法 |
CN109460366A (zh) * | 2018-11-16 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种软件稳定性测试方法、装置、设备及介质 |
CN113157582B (zh) * | 2021-04-28 | 2024-03-08 | 中国工商银行股份有限公司 | 测试脚本执行序列确定方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645037A (zh) * | 2009-09-11 | 2010-02-10 | 兰雨晴 | 基础软件平台应用程序接口集成测试覆盖分析方法 |
CN102819259A (zh) * | 2011-06-09 | 2012-12-12 | 清华大学 | 一种基于马尔可夫过程进行安全仪表功能的功能安全验证的方法 |
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
-
2015
- 2015-02-15 CN CN201510081876.8A patent/CN104679652B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645037A (zh) * | 2009-09-11 | 2010-02-10 | 兰雨晴 | 基础软件平台应用程序接口集成测试覆盖分析方法 |
CN102819259A (zh) * | 2011-06-09 | 2012-12-12 | 清华大学 | 一种基于马尔可夫过程进行安全仪表功能的功能安全验证的方法 |
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
Non-Patent Citations (2)
Title |
---|
"Markov链使用模型的测试用例生成方法研究";雷航等;《电子科技大学学报》;20110930;第40卷(第5期);第732页到第736页 * |
"基于UML的软件Markov链使用模型的构建";吴彩华等;《计算机研究与发展》;20120831;第49卷(第8期);第1811页到第1819页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104679652A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Libeskind et al. | Tracing the cosmic web | |
Avila et al. | Streamwise-localized solutions at the onset of turbulence in pipe flow | |
CN104679652B (zh) | 一种基于Markov方法的仿真系统测试用例生成方法 | |
CN103559420B (zh) | 一种异常检测训练集的构建方法及装置 | |
CN102750333B (zh) | 一种用于提取半导体纳米结构特征尺寸的方法 | |
CN106295250A (zh) | 二代测序短序列快速比对分析方法及装置 | |
CN104750731B (zh) | 一种获取完整用户画像的方法及装置 | |
CN105528288A (zh) | 一种软件测试方法以及装置 | |
CN109543740A (zh) | 一种基于生成对抗网络的目标检测方法 | |
CN103019934B (zh) | 基于数据代码分离技术的测试用例生成方法 | |
RU2015101247A (ru) | Создание вариаций при преобразовании данных в потребляемый контент | |
RU2012102394A (ru) | Способ вычисления физического значения, способ численного анализа, программа вычисления физического значения, программа численного анализа, устройство вычисления физического значения и устройство численного анализа | |
US12113873B2 (en) | Techniques for analyzing the proficiency of users of software applications in real-time | |
CN100524361C (zh) | 一种判断点是否位于多边形内的方法 | |
CN105302573A (zh) | 一种用于功能验证平台的功能点匹配设置自动化平台的搭建方法 | |
Nugteren et al. | The boat hull model: adapting the roofline model to enable performance prediction for parallel computing | |
CN103744935A (zh) | 一种计算机快速海量数据聚类处理方法 | |
CN106951927A (zh) | 基于材力形心法选取中心点的K‑means聚类优化方法和装置 | |
CN103793349A (zh) | 一种数据处理方法及装置 | |
CN104679945B (zh) | 基于有色Petri网的系统综合评估方法 | |
Xi et al. | Marginal turbulent state of viscoelastic fluids: A polymer drag reduction perspective | |
Santamaria et al. | Machine learning applications of two-phase flow data in polymer electrolyte fuel cell reactant channels | |
CN104573297B (zh) | 一种确定表面催化反应路径的方法 | |
Santamaria et al. | Applications of artificial intelligence for analysis of two-phase flow in PEM fuel cell flow fields | |
JP6565924B2 (ja) | 推定結果表示システム、推定結果表示方法および推定結果表示プログラム |
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 |