CN112799961A - 基于贪婪算法和搜索算法的组合测试用例生成算法 - Google Patents

基于贪婪算法和搜索算法的组合测试用例生成算法 Download PDF

Info

Publication number
CN112799961A
CN112799961A CN202110213195.8A CN202110213195A CN112799961A CN 112799961 A CN112799961 A CN 112799961A CN 202110213195 A CN202110213195 A CN 202110213195A CN 112799961 A CN112799961 A CN 112799961A
Authority
CN
China
Prior art keywords
algorithm
test case
greedy algorithm
coverage
greedy
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
CN202110213195.8A
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.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
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 Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN202110213195.8A priority Critical patent/CN112799961A/zh
Publication of CN112799961A publication Critical patent/CN112799961A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于混合的组合测试用例生成算法,包括以下步骤:1)生成满足要求的覆盖数组,后续的操作以覆盖这个数组为判别标准。2)在覆盖率较低的情况下,根据贪婪算法特性,使用贪婪算法来生成测试用例。3)在覆盖率达到比例K后,贪婪算法遇到瓶颈,选择搜索算法替代,以期达到更优的效果。本发明的基于混合算法的组合测试用例生成算法,即保证了贪婪算法生成测试用例前期的高效,又能避免后期陷入局部最优的情况,为从业人员在做测试用例生成方向的工作时,提供一个可以思考的角度。

Description

基于贪婪算法和搜索算法的组合测试用例生成算法
技术领域
本发明提出了一种新的组合测试用例生成算法,其基于贪婪算法和搜索算法的组合,该技术属于软件测试领域中的组合测试部分。利用恰到好处的对两种算法的取舍,根据覆盖率指标及时切换生成技术,以更快地生成测试用例。本发明有效地弥补了贪婪算法和搜索算法的缺陷,在高维的情况下更能体现本发明的优势。
背景技术
软件测试是软件开发生命周期中不可或缺的一个重要环节。通过对系统进行各种实际场景的模拟,通过测试用例对系统进行测试,可以保证系统的安全性。然而,在现实生活中,一个软件系统的参数可能有很多,这会导致测试用例数量达到成千上万个,因此组合测试用例生成算法应运而生。
贪婪算法试图在每次系统更新后,使用迭代技术找到当前的最佳选择,以达到最优解。在确定给定测试集时,确定一个测试用例作为源测试用例,然后迭代选择后续的测试用例。但是贪婪算法很容易陷入局部最优解,从而无法达到整体最优解。
搜索算法:许多搜索技术应用于许多领域,包括基于搜索的软件工程(SBSE)领域。作为组合测试的关键问题,生成覆盖数组已经得到了广泛的研究,并且已经应用了许多搜索技术,这些技术称为基于搜索的组合测试(SBCT)。SBCT是SBSE中基于搜索的软件测试(SBST)的一个分支。
本文提出基于贪婪算法和搜索算法的混合算法,用来生成组合测试用例,并给出测试用例生成工具。
发明内容
发明目的:为了解决传统的贪婪算法在生成测试用例时会陷入局部最优的情况,本文提出了一种基于贪婪算法和搜索算法的测试用例生成算法,并且设置动态覆盖率,在未达到设置的覆盖率之前采用贪婪算法,当达到覆盖率要求后,采用搜索算法生成测试用例。
技术方案:为了实现上述目的,本发明采用的技术方案为:
基于贪婪算法和搜索算法的测试用例生成算法,包括以下步骤:
步骤1)、生成满足要求的覆盖数组。
步骤2)、选择贪婪算法,如图2,根据贪婪算法的特性逐步覆盖数组。
步骤3)、当覆盖标准达到K后,贪婪算法可能会遇到瓶颈,选择搜索算法代替,如图3,以期达到更优的效果。
进一步的,所述步骤1)的具体步骤如下:
步骤1.0)、首先是构建数组,构建覆盖数组的目标是创建一个二维数组,其中所有与指定输入关联的t元组都会被覆盖。
步骤1.1)、组合测试使用覆盖表CA作为测试用例集,CA是一个大小为M×k维的矩阵。本发明中,测试用例条数,即覆盖表的大小标记为N;覆盖强度标记为t;待测系统参数个数为
Figure BSA0000234154730000021
其中,取值个数为vi的参数有ki(1≤i≤m,m≤k)个,vi(1≤i≤k)表示第i个参数取值集合,|vi|表示第i个参数取值个数。则CA表有如下表示:
Figure BSA0000234154730000022
进一步的,所述步骤2)的具体步骤如下:
步骤2.1)、使用贪婪算法,将每个因子与某个值绑定在一起,可以为该集合一次建立一行。一旦所有t元组都被覆盖,覆盖数组就完成了。本发明可以动态设置参数K,当覆盖率达到K时,将贪婪算法转换为搜索算法,避免陷入局部最优。
步骤2.2)、手动选择第一个测试用例T,T的选择会影响后续测试用例的生成。
步骤2.3)、根据步骤2.2)选中的测试用例T,选择测试用例T’,选择标准是转换成本最低,如果同时存在多个T’,则选择其中一个。在此阶段,覆盖率逐渐上升。
进一步的,所述步骤3)的具体步骤如下:
步骤3.1)、用户可以根据自己的实际需求,设置一个覆盖标准值K。如果标准值K设置得过高,则有可能在贪婪算法陷入局部最优时仍未达到K,会影响性能。
步骤3.2)、当覆盖率到达K时,本发明将选择搜索算法继续生成测试用例。
步骤3.4)、假定S为SUT应涵盖的所有未覆盖2值组合的集合,Tg为生成的测试用例的集合。对于每个测试候选t,t(2-way)表示t覆盖的S中的所有2-way值组合。则有:
Fitness(t)=|t(2-way)∩S|
其中Fitness用来来衡量每个候选者的质量。以此来选择候选者。因为这是搜索算法的一般方法,因此对于其他强度的组合也适用。
步骤3.5)、当步骤3.4)中S为空时,CA完全覆盖。
附图说明
图1是基于混合算法的组合测试用例生成流程图
图2是一般贪婪算法流程图
图3是一般搜索算法流程图
具体实施方案
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
为了解决传统的贪婪算法在生成测试用例时会陷入局部最优的情况,本文提出了一种基于贪婪算法和搜索算法的测试用例生成算法,并且设置动态覆盖率,在未达到设置的覆盖率之前采用贪婪算法,当达到覆盖率要求后,采用搜索算法生成测试用例。
技术方案:为了实现上述目的,本发明采用的技术方案为:
基于贪婪算法和搜索算法的测试用例生成算法,包括以下步骤:
步骤1)、生成满足要求的覆盖数组。
步骤2)、选择贪婪算法,如图2,根据贪婪算法的特性逐步覆盖数组。
步骤3)、当覆盖标准达到K后,贪婪算法可能会遇到瓶颈,选择搜索算法代替,如图3,以期达到更优的效果。
进一步的,所述步骤1)的具体步骤如下:
步骤1.0)、首先是构建数组,构建覆盖数组的目标是创建一个二维数组,其中所有与指定输入关联的t元组都会被覆盖。
步骤1.1)、组合测试使用覆盖表CA作为测试用例集,CA是一个大小为M×k维的矩阵。本发明中,测试用例条数,即覆盖表的大小标记为N;覆盖强度标记为t;待测系统参数个数为
Figure BSA0000234154730000031
其中,取值个数为vi的参数有ki(1≤i≤m,m≤k)个,vi(1≤i≤k)表示第i个参数取值集合,|vi|表示第i个参数取值个数。则CA表有如下表示:
Figure BSA0000234154730000032
进一步的,所述步骤2)的具体步骤如下:
步骤2.1)、使用贪婪算法,将每个因子与某个值绑定在一起,可以为该集合一次建立一行。一旦所有t元组都被覆盖,覆盖数组就完成了。本发明可以动态设置参数K,当覆盖率达到K时,将贪婪算法转换为搜索算法,避免陷入局部最优。
步骤2.2)、手动选择第一个测试用例T,T的选择会影响后续测试用例的生成。
步骤2.3)、根据步骤2.2)选中的测试用例T,选择测试用例T’,选择标准是转换成本最低,如果同时存在多个T’,则选择其中一个。在此阶段,覆盖率逐渐上升。
进一步的,所述步骤3)的具体步骤如下:
步骤3.1)、用户可以根据自己的实际需求,设置一个覆盖标准值K。如果标准值K设置得过高,则有可能在贪婪算法陷入局部最优时仍未达到K,会影响性能。
步骤3.2)、当覆盖率到达K时,本发明将选择搜索算法继续生成测试用例。
步骤3.4)、假定S为SUT应涵盖的所有未覆盖2值组合的集合,Tg为生成的测试用例的集合。对于每个测试候选t,t(2-way)表示t覆盖的S中的所有2-way值组合。则有:
Fitness(t)=|t(2-way)∩S|
其中Fitness用来来衡量每个候选者的质量。以此来选择候选者。因为这是搜索算法的一般方法,因此对于其他强度的组合也适用。
步骤3.5)、当步骤3.4)中S为空时,CA完全覆盖。
在组合测试领域中,生成测试用例算法各有优缺,本发明的基于混合算法的组合测试用例生成算法,即保证了贪婪算法生成测试用例前期的高效,又能避免后期陷入局部最优的情况。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (1)

1.基于贪婪算法和搜索算法的组合测试用例生成算法,其主要步骤如下:
步骤1)、生成满足要求的覆盖数组。
步骤2)、首先选择贪婪算法,如图2,根据贪婪算法特性逐步覆盖数组。
步骤3)、当覆盖标准达到K后,贪婪算法遇到瓶颈,选择搜索算法代替,如图3,以期达到更优的效果。
进一步的,所述步骤1)的具体步骤如下:
步骤1.0)、首先是构建数组,构建覆盖数组的总体目标是创建一个二维数组,其中所有与指定输入关联的t元组都会被覆盖。
步骤1.1)、组合测试使用覆盖表CA作为测试用例集,CA是一个大小为M×k维的矩阵。本发明中,测试用例条数,即覆盖表的大小标记为N;覆盖强度标记为t;待测系统参数个数为
Figure FSA0000234154720000011
其中,取值个数为vi的参数有ki(1≤i≤m,m≤k)个,vi(1≤i≤k)表示第i个参数取值集合,|vi|表示第i个参数取值个数。则CA表有如下表示:
Figure FSA0000234154720000012
进一步的,所述步骤2)的具体步骤如下:
步骤2.1)、通过使用贪婪算法,将每个因子与某个级别的值绑定在一起,可以为该集合一次建立一行。一旦所有t元组都被覆盖,覆盖数组就完成了。本发明可以动态设置参数K,当覆盖率达到K时,将贪婪算法转换为搜索算法,避免陷入局部最优。
步骤2.2)、手动选择第一个测试用例T,或者自动选择T,T的选择会影响后续测试用例的生成。
步骤2.3)、根据步骤2.2)选中的测试用例T,选择测试用例T’,选择标准是转换成本最低,如果同时存在多个T’,则选择其中一个。在此阶段,覆盖率逐渐上升。
进一步的,所述步骤3)的具体步骤如下:
步骤3.1)、用户可以根据自己的实际需求,设置一个覆盖标准值K。如果标准值K设置得过高,则有可能在贪婪算法陷入局部最优时仍未达到K,会影响性能。
步骤3.2)、当覆盖率到达K时,本发明将选择搜索算法继续生成测试用例。
步骤3.4)、假定S为SUT应涵盖的所有未覆盖2值组合的集合,Tg为生成的测试用例的集合。对于每个测试候选t,t(2-way)表示t覆盖的S中的所有2-way值组合。则有:
Fitness(t)=|t(2-way)∩S|
其中Fitness用来衡量每个候选者的质量。以此来选择候选者。因为这是搜索算法的一般方法,因此对于其他强度的组合也适用。
步骤3.5)、当步骤3.4)中S为空时,CA完全覆盖,流程结束。
CN202110213195.8A 2021-02-25 2021-02-25 基于贪婪算法和搜索算法的组合测试用例生成算法 Pending CN112799961A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110213195.8A CN112799961A (zh) 2021-02-25 2021-02-25 基于贪婪算法和搜索算法的组合测试用例生成算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110213195.8A CN112799961A (zh) 2021-02-25 2021-02-25 基于贪婪算法和搜索算法的组合测试用例生成算法

Publications (1)

Publication Number Publication Date
CN112799961A true CN112799961A (zh) 2021-05-14

Family

ID=75815874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110213195.8A Pending CN112799961A (zh) 2021-02-25 2021-02-25 基于贪婪算法和搜索算法的组合测试用例生成算法

Country Status (1)

Country Link
CN (1) CN112799961A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238954A (zh) * 2021-05-26 2021-08-10 南京信息工程大学 一种软件测试用例的递归生成方法
CN117520211A (zh) * 2024-01-08 2024-02-06 江西财经大学 基于多维覆盖矩阵的随机组合测试用例生成方法与系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238954A (zh) * 2021-05-26 2021-08-10 南京信息工程大学 一种软件测试用例的递归生成方法
CN113238954B (zh) * 2021-05-26 2023-05-09 南京信息工程大学 一种软件测试用例的递归生成方法
CN117520211A (zh) * 2024-01-08 2024-02-06 江西财经大学 基于多维覆盖矩阵的随机组合测试用例生成方法与系统

Similar Documents

Publication Publication Date Title
CN112799961A (zh) 基于贪婪算法和搜索算法的组合测试用例生成算法
CN107766245B (zh) 基于ott策略的可变力度组合测试用例优先级在线排序方法
CN106528433B (zh) 一种用于白盒测试的测试用例优先级排序方法
CN104573000B (zh) 基于排序学习的自动问答装置及方法
CN107832047A (zh) 一种基于lstm的非api函数实参推荐方法
CN111275186A (zh) 一种基于分组分层机制的可微结构搜索方法
CN109451304A (zh) 一种摄像头模组批量对焦测试方法及系统
McCaffrey Generation of pairwise test sets using a genetic algorithm
Gupta et al. Using genetic algorithm for unit testing of object oriented software
CN112684346A (zh) 基于遗传卷积神经网络的锂电池健康状态估计方法
CN111507504A (zh) 基于数据重采样的Adaboost集成学习电网故障诊断系统及方法
CN105718368A (zh) 一种软件测试数据扩增方法
CN110532291B (zh) 基于最小执行代价的深度学习框架间模型转换方法及系统
CN111984542A (zh) 一种基于贪婪算法和搜索算法的混合算法的组合测试用例生成算法
CN108400935A (zh) 一种基于遗传算法的业务路径选择方法、装置及电子设备
CN105654498B (zh) 基于动态局部搜索和免疫克隆自动聚类的图像分割方法
CN107578123A (zh) 一种基于nsga‑ii的行波管电子光学系统优化方法
CN103888314A (zh) 基于uio序列法验证有限状态机所处状态的方法
CN109858247A (zh) 一种基于XGBoost的静态三特征模型的恶意软件分类方法
CN108615056A (zh) 一种基于可分解评分函数的树增强朴素贝叶斯分类方法
AU2020438008B2 (en) Time series data generation method and device based on multi-condition constraints, and medium
CN113704078A (zh) 构建调用链转换图及引导生成x.509证书变种方法
Ledezma et al. Empirical evaluation of optimized stacking configurations
Elfeky et al. A simple ranking and selection for constrained evolutionary optimization
CN106598585A (zh) 云环境下计分驱动的服务快速匹配和聚合方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
DD01 Delivery of document by public notice

Addressee: Wang Ziyuan

Document name: Deemed not to have provided notice

DD01 Delivery of document by public notice
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination