CN107957944B - 面向用户数据覆盖率的测试用例自动生成方法 - Google Patents

面向用户数据覆盖率的测试用例自动生成方法 Download PDF

Info

Publication number
CN107957944B
CN107957944B CN201711195641.7A CN201711195641A CN107957944B CN 107957944 B CN107957944 B CN 107957944B CN 201711195641 A CN201711195641 A CN 201711195641A CN 107957944 B CN107957944 B CN 107957944B
Authority
CN
China
Prior art keywords
data
data set
test case
origin
clean
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
Application number
CN201711195641.7A
Other languages
English (en)
Other versions
CN107957944A (zh
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201711195641.7A priority Critical patent/CN107957944B/zh
Publication of CN107957944A publication Critical patent/CN107957944A/zh
Application granted granted Critical
Publication of CN107957944B publication Critical patent/CN107957944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种面向用户数据覆盖率的自动生成测试用例的方法,包括:(1)获得某软件产品的用户使用数据,组成数据集Dorigin,并清洗所述数据集Dorigin得到数据集Dclean;(2)采用机器学习方法处理所述数据集Dclean,获得测试用例集TC;(3)利用所述测试用例集TC对所述某软件产品进行测试,修复已经出现的漏洞,重复测试直至无严重漏洞,并将修复后的某软件产品重新投入使用;(4)记录重新投入使用的某软件产品的用户使用数据,组成数据集Dadd,合并所述数据集Dadd和所述数据集Dorigin,得到作为下一轮测试用的数据集Dorigin’。该方法可以提高测试过程的效率。

Description

面向用户数据覆盖率的测试用例自动生成方法
技术领域
本发明属于数据处理领域,具体涉及一种面向用户数据覆盖率的自动生成测试用例的方法。
背景技术
测试是软件开发过程中必不可少的环节,对软件质量度量的一种方式,用以判断软件实际的运行结果是否与预期的一致。测试用例是测试步骤中的关键元素。测试用例作为被测试程序的输入,用以观察程序的表现和结果,由此发现程序中的错误和缺陷。
测试用例的生成,长期以来依靠软件测试人员的经验和专业素养产生,手工完成。近期测试用例自动生成算法逐渐获得了许多研究者的关注,并产生了大量的成果。测试用例自动生成算法,从程序本身的结构出发,使生成出的测试用例能够最大限度地覆盖程序分支,从而尽量排除每个代码块中的漏洞。目前,生成算法追求的目的,除了算法本身的效率之外,将注意力集中在程序结构本身的正确性上。
但是每个代码块的使用频率不尽相同,如果将测试力度平均分配到每个代码块中,那么难以集中精力发现软件中用户常用代码块的漏洞。用户使用软件时,最常使用的部分,如果出现程序漏洞,将会极大影响用户的体验,以及软件产品的质量。从程序分支覆盖程度的传统评价指标出发,无法考虑到用户的实际使用情况。目前,尚未有从用户实际使用的角度出发,进行测试用例自动生成的方法发明。
发明内容
针对传统测试用例自动生成方法中,只考虑程序结构,未考虑用户实际使用情况的不足,本发明提出了一种面向用户数据覆盖率的自动生成测试用例的方法。
面向用户数据覆盖率的自动生成测试用例的方法,包括以下步骤:
(1)获得某软件产品的用户使用数据,组成数据集Dorigin,并清洗所述数据集Dorigin得到数据集Dclean
(2)采用机器学习方法处理所述数据集Dclean,获得测试用例集TC;
(3)利用所述测试用例集TC对所述某软件产品进行测试,修复已经出现的漏洞,重复测试直至无严重漏洞,并将修复后的某软件产品重新投入使用;
(4)记录重新投入使用的某软件产品的用户使用数据,组成数据集Dadd,合并所述数据集Dadd和所述数据集Dorigin,得到作为下一轮测试用的数据集Dorigin’。
作为优选,所述清洗所述数据集Dorigin得到数据集Dclean包括:
判断所述数据集Dorigin中数据量是否足够,
若是,直接删除掉所述数据集Dorigin中的异常数据,得到所述数据集Dclean
若否,对所述数据集Dorigin中的重复数据、关键字段缺失数据进行初步清洗,并格式规整初步清洗完的数据,获得所述数据集Dclean
作为优选,所述步骤(2)包括:
(2-1)基于所述数据集Dclean中的N个数据特征,将所述数据集Dclean映射到N个数据特征上,组成数据特征集P={Pi,1≤i≤N},并获得每个数据特征上数据的映射值,Pi表示第i个数据特征;
(2-2)根据数据特征Pi上的数据分布特点,确定所述数据特征Pi上数据划分的数量ki,并采用聚类算法对所述数据特征Pi上数据自动聚类成ki类,
(2-3)基于自动分类结果,将所述数据特征Pi上数据划分成ki类,每类数据用Ci,j表示,并基于Ci,j中包含数据实例的个数,为Ci,j赋予权重Wi,j,其中,1≤j≤ki
(2-4)计算Ci,j包括的数据的均值,将所述均值作为Ci,j的代表性中心点Oi,j
(2-5)将N个数据特征上的所有代表中心点Oi,j进行交叉合成,获得多个测试用例取值组合;
(2-6)根据权重Wi,j计算每个测试用例取值组合的综合权重,选取综合权重排在前50%~75%大的测试用例取值组合组成测试用例集TC。
聚类是一个把数据对象集划分成多个组或簇的过程,使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似。聚类是一种数据挖掘工具,有多种不同的算法可供选择,可以根据实际的数据特点进行具体算法的选择。
作为优选,所述权重Wi,j的计算过程为:
统计所述数据集Dclean中数据实例的个数Ntotal,统计Ci,j中包含数据实例的个数ni,j,则权重Wi,j为:
Figure BDA0001481903940000031
在步骤(2-5)中,将N个数据特征上的所有代表中心点Oi,j进行交叉合成的过程,将每个数据特征的可能取值限定为数据特征的代表性点的值,共ki种取值,一个测试用例包含N个数据特征,每个数据特征的取值,从ki种中选取,共可生成k1×k2×…×kN种不同取值组合的测试用例。
在步骤(2-6)中,每个测试用例取值组合的综合权重的计算中,将每个测试用例取值组合包含的所有代表中心点Oi,j对应Ci,j的权重Wij相乘,获得该测试用例取值组合的综合权重,综合权重越大的取值组合,说明其出现的可能性较大,需要成为重点的测试对象。生成出最具代表性的测试用例,在有限测试资源的情况下,提高对实际使用情况的覆盖率。
本发明具有的有益效果为:
充分利用实际使用产品所产生的数据,从使用数据的角度出发,通过人工智能的方式生成测试用例,改变现有测试用例针对程序覆盖率而非用户实际使用模块覆盖的现状。以数据覆盖率作为全新的测试用例生成标准,提升测试过程的效率和针对性。为产品的测试方式带来革新。
附图说明
图1是本发明实施例提供的面向用户数据覆盖率的自动生成测试用例的方法的流程框图;
图2是本发明实施例提供的使用机器学习分析生成测试用例的详细方法流程图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
本实施例利用机器学习算法,提出了一种通过对用户实际使用产品的数据进行自动分析,生成测试用例,用以提高测试过程效率的方法。
图1是本发明实施例提供的面向用户数据覆盖率的自动生成测试用例的方法的流程框图。参见图1,本实施例提供的方法包括以下步骤:
S101,获得某软件产品的用户使用数据,组成数据集Dorigin,并清洗所述数据集Dorigin得到数据集Dclean
本步骤中,清洗所述数据集Dorigin得到数据集Dclean的具体过程为:
判断所述数据集Dorigin中数据量是否足够,
若是,直接删除掉所述数据集Dorigin中的异常数据,得到所述数据集Dclean
若否,对所述数据集Dorigin中的重复数据、关键字段缺失数据进行初步清洗,并格式规整初步清洗完的数据,获得所述数据集Dclean
S102,采用机器学习方法处理所述数据集Dclean,获得测试用例集TC。
S102的具体过程如图2所示,参见图2,该步骤具体包括:
S201,基于所述数据集Dclean中的N个数据特征,将所述数据集Dclean映射到N个数据特征上,每个数据特征对应一个数据维度,组成数据特征集P={Pi,1≤i≤N},并获得每个数据特征上数据的映射值,Pi表示第i个数据特征,也表示第i维数据;
S202,根据数据特征Pi上的数据分布特点,确定所述数据特征Pi上数据划分的数量ki,并采用聚类算法对所述数据特征Pi上数据自动聚类成ki类,
S203,基于自动分类结果,将所述数据特征Pi上数据划分成ki类,每类数据用Ci,j表示,并基于Ci,j中包含数据实例的个数,为Ci,j赋予权重Wi,j,其中,1≤j≤ki
本步骤中,所述权重Wi,j的计算过程为:
统计所述数据集Dclean中数据实例的个数Ntotal,统计Ci,j中包含数据实例的个数ni,j,则权重Wi,j为:
Figure BDA0001481903940000061
S204,计算Ci,j包括的数据的均值,将所述均值作为Ci,j的代表性中心点Oi,j
S205,将N个数据特征上的所有代表中心点Oi,j进行交叉合成,获得多个测试用例取值组合;
S206,根据权重Wi,j计算每个测试用例取值组合的综合权重,按照从大道小的顺序排列综合权重,并选取综合权重排在前50%~75%(本实施例选60%)的测试用例取值组合组成测试用例集TC;
本步骤中,将每个测试用例取值组合包含的所有代表中心点Oi,j对应Ci,j的权重Wij相乘,获得该测试用例取值组合的综合权重,综合权重越大的取值组合,说明其出现的可能性较大,需要成为重点的测试对象。生成出最具代表性的测试用例,在有限测试资源的情况下,提高对实际使用情况的覆盖率。
S103,利用所述测试用例集TC对所述某软件产品进行测试,修复已经出现的漏洞,重复测试直至无严重漏洞,并将修复后的某软件产品重新投入使用;
S104,记录重新投入使用的某软件产品的用户使用数据,组成数据集Dadd,合并所述数据集Dadd和所述数据集Dorigin,得到作为下一轮测试用的数据集Dorigin’。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种面向用户数据覆盖率的自动生成测试用例的方法,包括以下步骤:
(1)获得某软件产品的用户使用数据,组成数据集Dorigin,并清洗所述数据集Dorigin得到数据集Dclean
(2)采用机器学习方法处理所述数据集Dclean,获得测试用例集TC,具体包括:
(2-1)基于所述数据集Dclean中的N个数据特征,将所述数据集Dclean映射到N个数据特征上,组成数据特征集P={Pi,1≤i≤N},并获得每个数据特征上数据的映射值,Pi表示第i个数据特征;
(2-2)根据数据特征Pi上的数据分布特点,确定所述数据特征Pi上数据划分的数量ki,并采用聚类算法对所述数据特征Pi上数据自动聚类成ki类,
(2-3)基于自动分类结果,将所述数据特征Pi上数据划分成ki类,每类数据用Ci,j表示,并基于Ci,j中包含数据实例的个数,为Ci,j赋予权重Wi,j,其中,1≤j≤ki
(2-4)计算Ci,j包括的数据的均值,将所述均值作为Ci,j的代表性中心点Oi,j
(2-5)将N个数据特征上的所有代表中心点Oi,j进行交叉合成,获得多个测试用例取值组合;
(2-6)根据权重Wi,j计算每个测试用例取值组合的综合权重,选取综合权重排在前50%~75%大的测试用例取值组合组成测试用例集TC;
所述权重Wi,j的计算过程为:
统计所述数据集Dclean中数据实例的个数Ntotal,统计Ci,j中包含数据实例的个数ni,j,则权重Wi,j为:
Figure FDA0002455179090000021
所述综合权重的获取过程为:
将每个测试用例取值组合包含的所有代表中心点Oi,j对应Ci,j的权重Wij相乘,获得该测试用例取值组合的综合权重;
(3)利用所述测试用例集TC对所述某软件产品进行测试,修复已经出现的漏洞,重复测试直至无严重漏洞,并将修复后的某软件产品重新投入使用;
(4)记录重新投入使用的某软件产品的用户使用数据,组成数据集Dadd,合并所述数据集Dadd和所述数据集Dorigin,得到作为下一轮测试用的数据集Dorigin’。
2.如权利要求1所述的面向用户数据覆盖率的自动生成测试用例的方法,其特征在于,所述清洗所述数据集Dorigin得到数据集Dclean包括:
判断所述数据集Dorigin中数据量是否足够,
若是,直接删除掉所述数据集Dorigin中的异常数据,得到所述数据集Dclean
若否,对所述数据集Dorigin中的重复数据、关键字段缺失数据进行初步清洗,并格式规整初步清洗完的数据,获得所述数据集Dclean
CN201711195641.7A 2017-11-24 2017-11-24 面向用户数据覆盖率的测试用例自动生成方法 Active CN107957944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711195641.7A CN107957944B (zh) 2017-11-24 2017-11-24 面向用户数据覆盖率的测试用例自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711195641.7A CN107957944B (zh) 2017-11-24 2017-11-24 面向用户数据覆盖率的测试用例自动生成方法

Publications (2)

Publication Number Publication Date
CN107957944A CN107957944A (zh) 2018-04-24
CN107957944B true CN107957944B (zh) 2020-08-25

Family

ID=61962425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711195641.7A Active CN107957944B (zh) 2017-11-24 2017-11-24 面向用户数据覆盖率的测试用例自动生成方法

Country Status (1)

Country Link
CN (1) CN107957944B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684209A (zh) * 2018-12-17 2019-04-26 北京奇虎科技有限公司 一种测试用例生成方法、装置及电子设备
CN110443045B (zh) * 2019-08-13 2020-12-15 北京计算机技术及应用研究所 一种基于机器学习方法的模糊测试用例生成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521376A (zh) * 2011-12-20 2012-06-27 上海电机学院 一种软件测试用例集的精简方法
CN106294127A (zh) * 2016-07-25 2017-01-04 江苏大学 基于聚类的面向对象软件测试用例生成方法
CN106469113A (zh) * 2015-08-18 2017-03-01 腾讯科技(深圳)有限公司 应用程序测试方法及系统
CN107273284A (zh) * 2017-04-20 2017-10-20 北京小度信息科技有限公司 测试应用程序性能的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600403B1 (en) * 2015-08-30 2017-03-21 International Business Machines Corporation Method and system for creating functional model of test cases

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521376A (zh) * 2011-12-20 2012-06-27 上海电机学院 一种软件测试用例集的精简方法
CN106469113A (zh) * 2015-08-18 2017-03-01 腾讯科技(深圳)有限公司 应用程序测试方法及系统
CN106294127A (zh) * 2016-07-25 2017-01-04 江苏大学 基于聚类的面向对象软件测试用例生成方法
CN107273284A (zh) * 2017-04-20 2017-10-20 北京小度信息科技有限公司 测试应用程序性能的方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于K_means聚类的组合测试用例生成优化算法;冯霞等;《西安邮电大学学报》;20150131;第20卷(第1期);第44-48页 *
基于支持向量机的测试用例自动生成方法;黄勤涛等;《计算机工程与设计》;20170531;第38卷(第5期);第1242-1246页 *
基于聚类技术的面向对象软件测试用例生成方法研究;郭昱池;《中国优秀硕士学位论文全文数据库信息科技辑》;20161115(第11期);正文第2-3、15页 *

Also Published As

Publication number Publication date
CN107957944A (zh) 2018-04-24

Similar Documents

Publication Publication Date Title
US10606862B2 (en) Method and apparatus for data processing in data modeling
CN106201871B (zh) 基于代价敏感半监督的软件缺陷预测方法
CN113792825B (zh) 一种用电信息采集设备故障分类模型训练方法及装置
CN110134588B (zh) 一种基于代码和组合覆盖的测试用例优先级排序方法及测试系统
CN108563555B (zh) 基于四目标优化的故障更改代码预测方法
CN110659207A (zh) 基于核谱映射迁移集成的异构跨项目软件缺陷预测方法
CN106599230A (zh) 一种分布式数据挖掘模型评估的方法与系统
CN108491991B (zh) 基于工业大数据产品工期的约束条件分析系统与方法
CN107480686B (zh) 一种筛选机器学习特征的方法和装置
CN110148435A (zh) 一种闪存颗粒筛选分级方法
CN111382875A (zh) 联邦模型参数确定方法、装置、设备及存储介质
CN107957944B (zh) 面向用户数据覆盖率的测试用例自动生成方法
CN108681505B (zh) 一种基于决策树的测试用例排序方法和装置
CN115357764A (zh) 一种异常数据检测方法及装置
CN116127695A (zh) 一种基于综合性能评价的生产线构建方法及系统
CN113793057A (zh) 一种基于回归分析模型的建筑招投标数据生成方法
CN116089504B (zh) 一种关系型表格数据生成方法和系统
CN117541095A (zh) 一种农用地土壤环境质量类别划分的方法
Kusa et al. Vombat: A tool for visualising evaluation measure behaviour in high-recall search tasks
CN109376080B (zh) 时间适配的自动化缺陷定位方法和装置
CN108446213A (zh) 一种静态代码质量分析方法和装置
TW201435584A (zh) 應用於回歸測試案例選擇之混合機率模型
CN114546841B (zh) 基于云计算的软件质量评估方法
Akkouche et al. Analog/RF test ordering in the early stages of production testing
CN115827618A (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