CN103605611A - 一种基于遗传算法的测试用例优化方法 - Google Patents

一种基于遗传算法的测试用例优化方法 Download PDF

Info

Publication number
CN103605611A
CN103605611A CN201310663974.3A CN201310663974A CN103605611A CN 103605611 A CN103605611 A CN 103605611A CN 201310663974 A CN201310663974 A CN 201310663974A CN 103605611 A CN103605611 A CN 103605611A
Authority
CN
China
Prior art keywords
test case
genetic algorithm
test
optimization method
case
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.)
Pending
Application number
CN201310663974.3A
Other languages
English (en)
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201310663974.3A priority Critical patent/CN103605611A/zh
Publication of CN103605611A publication Critical patent/CN103605611A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于遗传算法的测试用例优化方法,其特征在于:采用遗传算法所存在的思想,通过优化选择测试用例,用最小的代价达到最大的覆盖率,找到测试用例选取的有效解决策略,该方法主要包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。现有的测试用例大多繁琐且测试效率低下,耗费大量的人力物力,考虑到现有状况,提出此方法针对被测软件进行白盒测试,采用遗传算法,根据程序的结构及测试历史信息,计算每个测试用例的适应度,进行用例选择,可以有效的选取必要的测试用例,提高测试效率,优化测试效果。

Description

一种基于遗传算法的测试用例优化方法
技术领域
本发明属于计算机软件测试技术领域,涉及测试过程中选取测试用例集的技术以及遗传算法技术,用于提高测试的效率,并有效利用测试用例,是一种基于遗传算法的测试用例优化方法。
技术背景
随着计算机技术和软件技术的迅速发展,软件质量的可靠性变得越来越重要,软件测试作为一种提高软件质量的可靠方式,以最少的人力、物力,尽快找出软件中潜在的各种缺陷,通过修正这些缺陷,提高软件产品质量,尽量减少软件产品发布后由潜在的软件缺陷带来的可能的商业风险。其次,通过对测试结果的分析整理,总结开发规则,并为软件可靠性分析提供依据。测试用例是软件测试过程中必不可少的关键因素,目前,针对于测试用例的选取方式,存在着很多不同的方法,为此在保证测试质量的基础上,本文提出了一种基于遗传算法的测试用例优化方法来提高测试效率。
遗传算法是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。
发明内容
本发明要解决的技术问题是:提供一种基于遗传算法的测试用例优化方法。
本发明所采用的技术方案为:
一种基于遗传算法的测试用例优化方法,采用遗传算法所存在的思想,通过优化选择测试用例,用最小的代价达到最大的覆盖率,找到测试用例选取的有效解决策略,该方法主要包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。
所述编码策略和适应度函数以及测试用例群体选择,其重点在于,编码是遗传算法的基础表现,遗传算法不能直接处理问题空间的参数,必须把它们转换成遗传空间的由基因按一定结构组成的染色体或个体。这一转换操作就叫做编码,也可以称作(问题的)表示(representation);进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。
对于测试选择问题,我们可以把一个测试用例的信息从测试历史信息中获取,从测试历史信息中我们可以发现哪些用例执行过,用0,1的编码形式来进行描述,因此可以将历史信息中的测试用例看成每一个基因编码,如果一个程序有n个模块,则一个测试用例的编码可以表现为Qi=[q1,q2,.....qn],qj∈{0,1},如果qj=1,说明用例执行了程序块aj,否则用例没有执行程序块。
测试用例的使用度与发现程序的缺陷数以及覆盖度有关,其计算公式可以表现为:F(ti)=测试覆盖度/总体测试条目。
而对于初始用例群体选择则采用随机策略。
所述遗传算法策略是一个选择操作,交叉操作,变异操作的过程,通过选择基于适应度的测试用例,保留适应度高的测试用例,利用单点交叉法,进行交叉策略,使两个测试用例个体在结构位置相同处进行互换,生成新的测试用例个体,交叉之后进行的变异,采用二进制变异算法,实现基因码的小概率翻转来达到变异的目的。
所述测试用例生成及优化过程,表现为:
1)通过修改后的程序代码T′对原程序代码T进行程序分析,确认T′相对于T所作出的修改;
2)应用遗传算法从原测试用例P中选取与程序修改相关的测试用例P′记录其对程序T′进行测试的信息;
3)确认测试信息覆盖度,如覆盖度不满足要求,追加测试;
4)应用追加后测试用例集,对T′再次进一步进行测试,得出优化后的测试用例。
本发明的有益效果为:
现有的测试用例大多繁琐且测试效率低下,耗费大量的人力物力,考虑到现有状况,提出此方法针对被测软件进行白盒测试,采用遗传算法,根据程序的结构及测试历史信息,计算每个测试用例的适应度,进行用例选择,可以有效的选取必要的测试用例,提高测试效率,优化测试效果。
附图说明
图1为测试用例编码图;
图2为基于遗传算法的测试用例选取过程图。
具体实施方式
下面参照附图,结合实施例对本发明进行说明:
本发明实施例中主要包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。
(1)对于一个程序T,我们选取其做出修改后的程序T′,对于初始用例,我们对其进行编码如图1所示,每一行对应一个个体,测试的覆盖度用于计算每个个体的适应度;
(2)利用遗传算法从原测试用例P中选取与程序修改相关的测试用例P′,其中选择过程采用轮盘赌的选择策略,然后利用交叉算法在两个个体的同一位置进行交叉重组,形成两个新个体,交叉过后采用二进制变异算法,实现基因码的小概率翻转来达到变异的目的,采用1/基因遗传因子个数作为变异概率。选取后的P′对T′进行测试,记录测试信息;
(3)确认测试的覆盖度,如不满足覆盖要求,对P′追加测试;
(4)追加后的测试用例集,对T′再次进行测试,得出优化后的测试用例,整个过程如图2所示。

Claims (6)

1.一种基于遗传算法的测试用例优化方法,其特征在于:采用遗传算法所存在的思想,通过优化选择测试用例,用小的代价达到大的覆盖率,找到测试用例选取的有效解决策略,该方法包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。
2.根据权利要求1所述的一种基于遗传算法的测试用例优化方法,其特征在于:所述编码策略和适应度函数以及测试用例群体选择,其重点在于,编码是遗传算法的基础表现,对于测试选择问题,把一个测试用例的信息从测试历史信息中获取,将历史信息中的测试用例看成每一个基因编码,如果一个程序有n个模块,则一个测试用例的编码可以表现为Qi=[q1,q2,.....qn],qj∈{0,1},如果qj=1,说明用例执行了程序块aj,否则用例没有执行程序块。
3.根据权利要求2所述的一种基于遗传算法的测试用例优化方法,其特征在于:测试用例的使用度与发现程序的缺陷数以及覆盖度有关,其计算公式表现为:F(ti)=测试覆盖度/总体测试条目。
4.根据权利要求2所述的一种基于遗传算法的测试用例优化方法,其特征在于:对于初始用例群体选择采用随机策略。
5.根据权利要求1-4任一所述的一种基于遗传算法的测试用例优化方法,其特征在于:所述遗传算法策略是一个选择操作,交叉操作,变异操作的过程,通过选择基于适应度的测试用例,保留适应度高的测试用例,利用单点交叉法,进行交叉策略,使两个测试用例个体在结构位置相同处进行互换,生成新的测试用例个体,交叉之后进行的变异,采用二进制变异算法,实现基因码的小概率翻转来达到变异的目的。
6.根据权利要求5所述的一种基于遗传算法的测试用例优化方法,其特征在于:所述测试用例生成及优化过程,表现为:
1)通过修改后的程序代码T′对原程序代码T进行程序分析,确认T′相对于T所作出的修改;
2)应用遗传算法从原测试用例P中选取与程序修改相关的测试用例P′记录其对程序T′进行测试的信息;
3)确认测试信息覆盖度,如覆盖度不满足要求,追加测试;
4)应用追加后测试用例集,对T′再次进一步进行测试,得出优化后的测试用例。
CN201310663974.3A 2013-12-10 2013-12-10 一种基于遗传算法的测试用例优化方法 Pending CN103605611A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310663974.3A CN103605611A (zh) 2013-12-10 2013-12-10 一种基于遗传算法的测试用例优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310663974.3A CN103605611A (zh) 2013-12-10 2013-12-10 一种基于遗传算法的测试用例优化方法

Publications (1)

Publication Number Publication Date
CN103605611A true CN103605611A (zh) 2014-02-26

Family

ID=50123840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310663974.3A Pending CN103605611A (zh) 2013-12-10 2013-12-10 一种基于遗传算法的测试用例优化方法

Country Status (1)

Country Link
CN (1) CN103605611A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810104A (zh) * 2014-03-04 2014-05-21 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN104268077A (zh) * 2014-09-23 2015-01-07 湖州师范学院 基于混沌遗传算法的测试用例集约简算法
CN104698365A (zh) * 2015-03-23 2015-06-10 电子科技大学 基于分组编码遗传算法的不可靠测试优选方法
CN107544905A (zh) * 2017-08-22 2018-01-05 中国农业银行股份有限公司 回归测试用例集的优化方法和系统
CN107844427A (zh) * 2017-11-29 2018-03-27 郑州云海信息技术有限公司 一种基于测试资源感知的测试用例排序方法
CN109032942A (zh) * 2018-07-24 2018-12-18 北京理工大学 一种基于afl的模糊测试框架
CN109062782A (zh) * 2018-06-27 2018-12-21 阿里巴巴集团控股有限公司 一种回归测试用例的选择方法、装置及设备
CN111221741A (zh) * 2020-01-17 2020-06-02 北京工业大学 一种基于遗传算法和日志分析的异常单元测试自动生成的方法
CN112732573A (zh) * 2021-01-07 2021-04-30 中国工商银行股份有限公司 测试用例获取方法、装置、系统、及介质
CN113297059A (zh) * 2020-05-10 2021-08-24 阿里巴巴集团控股有限公司 测试用例的生成方法、被测软件的测试方法及装置
CN114401211A (zh) * 2022-01-17 2022-04-26 重庆邮电大学 一种工业无线网络设备接入IPv6网络的测试系统及测试方法
CN114610614A (zh) * 2022-03-08 2022-06-10 北京京航计算通讯研究所 一种可编程逻辑器件封装模块的安全性测试方法和系统
WO2022134581A1 (zh) * 2020-12-24 2022-06-30 深圳壹账通智能科技有限公司 测试用例排序方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120000320A (ko) * 2010-06-25 2012-01-02 현대모비스 주식회사 프로그램 오류 검사를 위한 테스트 케이스 생성 방법
CN102708047A (zh) * 2012-04-23 2012-10-03 福建师范大学 数据流测试用例生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120000320A (ko) * 2010-06-25 2012-01-02 현대모비스 주식회사 프로그램 오류 검사를 위한 테스트 케이스 생성 방법
CN102708047A (zh) * 2012-04-23 2012-10-03 福建师范大学 数据流测试用例生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨志霞: "基于回归测试模型的用例集的优化研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
马雪英等: "测试用例最小化研究", 《计算机应用研究》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810104B (zh) * 2014-03-04 2017-08-25 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN103810104A (zh) * 2014-03-04 2014-05-21 中国人民解放军63863部队 一种软件测试用例优化方法及系统
CN104268077A (zh) * 2014-09-23 2015-01-07 湖州师范学院 基于混沌遗传算法的测试用例集约简算法
CN104698365A (zh) * 2015-03-23 2015-06-10 电子科技大学 基于分组编码遗传算法的不可靠测试优选方法
CN104698365B (zh) * 2015-03-23 2017-10-31 电子科技大学 基于分组编码遗传算法的不可靠测试优选方法
CN107544905B (zh) * 2017-08-22 2021-02-05 中国农业银行股份有限公司 回归测试用例集的优化方法和系统
CN107544905A (zh) * 2017-08-22 2018-01-05 中国农业银行股份有限公司 回归测试用例集的优化方法和系统
CN107844427A (zh) * 2017-11-29 2018-03-27 郑州云海信息技术有限公司 一种基于测试资源感知的测试用例排序方法
CN109062782B (zh) * 2018-06-27 2022-05-31 创新先进技术有限公司 一种回归测试用例的选择方法、装置及设备
CN109062782A (zh) * 2018-06-27 2018-12-21 阿里巴巴集团控股有限公司 一种回归测试用例的选择方法、装置及设备
CN109032942B (zh) * 2018-07-24 2020-10-02 北京理工大学 一种基于afl的模糊测试框架
CN109032942A (zh) * 2018-07-24 2018-12-18 北京理工大学 一种基于afl的模糊测试框架
CN111221741A (zh) * 2020-01-17 2020-06-02 北京工业大学 一种基于遗传算法和日志分析的异常单元测试自动生成的方法
CN111221741B (zh) * 2020-01-17 2023-10-10 北京工业大学 一种基于遗传算法和日志分析的异常单元测试自动生成的方法
CN113297059A (zh) * 2020-05-10 2021-08-24 阿里巴巴集团控股有限公司 测试用例的生成方法、被测软件的测试方法及装置
WO2022134581A1 (zh) * 2020-12-24 2022-06-30 深圳壹账通智能科技有限公司 测试用例排序方法及相关设备
CN112732573A (zh) * 2021-01-07 2021-04-30 中国工商银行股份有限公司 测试用例获取方法、装置、系统、及介质
CN112732573B (zh) * 2021-01-07 2024-03-29 中国工商银行股份有限公司 测试用例获取方法、装置、系统、及介质
CN114401211B (zh) * 2022-01-17 2023-05-12 重庆邮电大学 一种工业无线网络设备接入IPv6网络的测试系统及测试方法
CN114401211A (zh) * 2022-01-17 2022-04-26 重庆邮电大学 一种工业无线网络设备接入IPv6网络的测试系统及测试方法
CN114610614A (zh) * 2022-03-08 2022-06-10 北京京航计算通讯研究所 一种可编程逻辑器件封装模块的安全性测试方法和系统
CN114610614B (zh) * 2022-03-08 2024-07-16 北京京航计算通讯研究所 一种可编程逻辑器件封装模块的安全性测试方法和系统

Similar Documents

Publication Publication Date Title
CN103605611A (zh) 一种基于遗传算法的测试用例优化方法
Li et al. Multi-objective evolutionary algorithms and hyper-heuristics for wind farm layout optimisation
Yue et al. A review of approaches to uncertainty assessment in energy system optimization models
Canyurt et al. Application of genetic algorithm (GA) technique on demand estimation of fossil fuels in Turkey
Chen et al. A novel elitist multiobjective optimization algorithm: Multiobjective extremal optimization
Zhao et al. [Retracted] An Improved SPEA2 Algorithm with Adaptive Selection of Evolutionary Operators Scheme for Multiobjective Optimization Problems
CN105974799A (zh) 一种基于差分进化-局部单峰采样算法的模糊控制系统优化方法
Mahbub et al. Incorporating domain knowledge into the optimization of energy systems
CN105117326A (zh) 一种基于组合混沌序列的测试用例集生成方法
Yao et al. Long-term optimal reservoir operation with tuning on large-scale multi-objective optimization: Case study of cascade reservoirs in the Upper Yellow River Basin
CN106919504B (zh) 一种基于ga算法的测试数据进化生成方法
Chingoiro et al. Electricity consumption and economic growth in Botswana: A vector error correction approach
CN117574690B (zh) 基于负碳排放的生物炭制备分析方法及相关装置
Yang et al. Cultural‐Based Genetic Tabu Algorithm for Multiobjective Job Shop Scheduling
Zhao et al. Can artificial intelligence help accelerate the transition to renewable energy?
Hidalgo et al. Evaluation of optimization algorithms to adjust efficiency curves for hydroelectric generating units
CN113536508A (zh) 一种制造网络节点分类方法及系统
Zhang et al. When will China realize urban-rural integration? A case study of 30 provinces in China
CN116305939A (zh) 陆地生态系统碳水通量高精度反演方法、系统及电子设备
Ye et al. Optimizing weight and threshold of BP neural network using SFLA: applications to nonlinear function fitting
Guilani et al. Redundancy allocation problem of a system with three-state components: A genetic algorithm
Adak et al. A hybrid artificial bee colony algorithm using multiple linear regression on time series datasets
CN107451943A (zh) 城市更新改造的选址方法
Prina et al. Machine learning as a surrogate model for EnergyPLAN: Speeding up energy system optimization at the country level
Koutsandreas Does complexity compensate for accuracy in annual final energy demand forecasting? A multi-methods case study in G7 countries

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140226