CN107957944A - 面向用户数据覆盖率的测试用例自动生成方法 - Google Patents
面向用户数据覆盖率的测试用例自动生成方法 Download PDFInfo
- Publication number
- CN107957944A CN107957944A CN201711195641.7A CN201711195641A CN107957944A CN 107957944 A CN107957944 A CN 107957944A CN 201711195641 A CN201711195641 A CN 201711195641A CN 107957944 A CN107957944 A CN 107957944A
- Authority
- CN
- China
- Prior art keywords
- data
- data set
- clean
- origin
- test 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.)
- Granted
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
-
- 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/3676—Test 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为:
在步骤(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为:
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 (5)
1.一种面向用户数据覆盖率的自动生成测试用例的方法,包括以下步骤:
(1)获得某软件产品的用户使用数据,组成数据集Dorigin,并清洗所述数据集Dorigin得到数据集Dclean;
(2)采用机器学习方法处理所述数据集Dclean,获得测试用例集TC;
(3)利用所述测试用例集TC对所述某软件产品进行测试,修复已经出现的漏洞,重复测试直至无严重漏洞,并将修复后的某软件产品重新投入使用;
(4)记录重新投入使用的某软件产品的用户使用数据,组成数据集Dadd,合并所述数据集Dadd和所述数据集Dorigin,得到作为下一轮测试用的数据集Dorigin’。
2.如权利要求1所述的面向用户数据覆盖率的自动生成测试用例的方法,其特征在于,所述清洗所述数据集Dorigin得到数据集Dclean包括:
判断所述数据集Dorigin中数据量是否足够,
若是,直接删除掉所述数据集Dorigin中的异常数据,得到所述数据集Dclean;
若否,对所述数据集Dorigin中的重复数据、关键字段缺失数据进行初步清洗,并格式规整初步清洗完的数据,获得所述数据集Dclean。
3.如权利要求1所述的面向用户数据覆盖率的自动生成测试用例的方法,其特征在于,所述步骤(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。
4.如权利要求3所述的面向用户数据覆盖率的自动生成测试用例的方法,其特征在于,所述权重Wi,j的计算过程为:
统计所述数据集Dclean中数据实例的个数Ntotal,统计Ci,j中包含数据实例的个数ni,j,则权重Wi,j为:
<mrow>
<msub>
<mi>W</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mi>n</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<msub>
<mi>N</mi>
<mrow>
<mi>t</mi>
<mi>o</mi>
<mi>t</mi>
<mi>a</mi>
<mi>l</mi>
</mrow>
</msub>
</mfrac>
<mo>,</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>i</mi>
<mo>&le;</mo>
<mi>N</mi>
<mo>,</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>j</mi>
<mo>&le;</mo>
<msub>
<mi>k</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>.</mo>
</mrow>
5.如权利要求3所述的面向用户数据覆盖率的自动生成测试用例的方法,其特征在于,所述综合权重的获取过程为:
将每个测试用例取值组合包含的所有代表中心点Oi,j对应Ci,j的权重Wij相乘,获得该测试用例取值组合的综合权重。
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 true CN107957944A (zh) | 2018-04-24 |
CN107957944B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684209A (zh) * | 2018-12-17 | 2019-04-26 | 北京奇虎科技有限公司 | 一种测试用例生成方法、装置及电子设备 |
CN110443045A (zh) * | 2019-08-13 | 2019-11-12 | 北京计算机技术及应用研究所 | 一种基于机器学习方法的模糊测试用例生成方法 |
Citations (5)
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 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及系统 |
US20170060734A1 (en) * | 2015-08-30 | 2017-03-02 | International Business Machines Corporation | Method and system for creating functional model of test cases |
CN107273284A (zh) * | 2017-04-20 | 2017-10-20 | 北京小度信息科技有限公司 | 测试应用程序性能的方法及装置 |
-
2017
- 2017-11-24 CN CN201711195641.7A patent/CN107957944B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521376A (zh) * | 2011-12-20 | 2012-06-27 | 上海电机学院 | 一种软件测试用例集的精简方法 |
CN106469113A (zh) * | 2015-08-18 | 2017-03-01 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及系统 |
US20170060734A1 (en) * | 2015-08-30 | 2017-03-02 | International Business Machines Corporation | Method and system for creating functional model of test cases |
CN106294127A (zh) * | 2016-07-25 | 2017-01-04 | 江苏大学 | 基于聚类的面向对象软件测试用例生成方法 |
CN107273284A (zh) * | 2017-04-20 | 2017-10-20 | 北京小度信息科技有限公司 | 测试应用程序性能的方法及装置 |
Non-Patent Citations (3)
Title |
---|
冯霞等: "基于K_means聚类的组合测试用例生成优化算法", 《西安邮电大学学报》 * |
郭昱池: "基于聚类技术的面向对象软件测试用例生成方法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
黄勤涛等: "基于支持向量机的测试用例自动生成方法", 《计算机工程与设计》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684209A (zh) * | 2018-12-17 | 2019-04-26 | 北京奇虎科技有限公司 | 一种测试用例生成方法、装置及电子设备 |
CN110443045A (zh) * | 2019-08-13 | 2019-11-12 | 北京计算机技术及应用研究所 | 一种基于机器学习方法的模糊测试用例生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107957944B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408359A (zh) | 一种软件测试过程质量度量方法和系统 | |
CN106021771A (zh) | 一种故障诊断方法及装置 | |
CN104461896B (zh) | 基于可信属性的航天系统关键软件评价方法 | |
CN104021248B (zh) | 一种航空机载机械类产品fmeca分析方法 | |
CN105528288A (zh) | 一种软件测试方法以及装置 | |
CN104573977A (zh) | 一种质量数据管理系统与方法 | |
CN110148435A (zh) | 一种闪存颗粒筛选分级方法 | |
CN111125868B (zh) | 一种电子产品的多应力寿命评估方法及装置 | |
CN113255778A (zh) | 基于多模型融合的焊点质量检测方法、装置及存储介质 | |
CN106548278A (zh) | 一种高标准基本农田建设项目区优选自动化计算方法 | |
CN103559303A (zh) | 一种对数据挖掘算法的评估与选择方法 | |
CN110827169B (zh) | 一种基于分级指标的分布式电网业务监控方法 | |
CN107957944A (zh) | 面向用户数据覆盖率的测试用例自动生成方法 | |
CN110109834A (zh) | 一种测试报告自动生成装置及方法 | |
Haghighi et al. | Applying mining schemes to software fault prediction: A proposed approach aimed at test cost reduction | |
CN103902798B (zh) | 数据预处理方法 | |
CN111144021B (zh) | 一种燃料电池寿命预测方法及系统 | |
CN117556366B (zh) | 基于数据筛选的数据异常检测系统及方法 | |
CN105954695A (zh) | 一种基于同步的同质传感器突变参数识别方法与装置 | |
CN106651167A (zh) | 一种生物信息工程师技能评级系统 | |
TWI740105B (zh) | 資訊輸出裝置,資訊輸出方法,及程式 | |
CN116307858A (zh) | 测绘成果质量检查与评分系统 | |
US9665795B2 (en) | Method and apparatus for identifying root cause of defect using composite defect map | |
CN109886288A (zh) | 一种用于电力变压器的状态评价方法及装置 | |
CN109376080A (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 |