CN110362489B - 一种测试用例生成方法、生成装置及软件自动测试系统 - Google Patents
一种测试用例生成方法、生成装置及软件自动测试系统 Download PDFInfo
- Publication number
- CN110362489B CN110362489B CN201910635069.4A CN201910635069A CN110362489B CN 110362489 B CN110362489 B CN 110362489B CN 201910635069 A CN201910635069 A CN 201910635069A CN 110362489 B CN110362489 B CN 110362489B
- Authority
- CN
- China
- Prior art keywords
- test
- dice
- similarity
- similarity calculation
- case set
- 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
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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种测试用例生成方法、生成装置及软件自动测试系统,所述方法包括:获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列;根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合,所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建;推送所述用例集合。与现有技术相比,本发明可提供有针对性的测试,具有智能性高,测试效率高等优点。
Description
技术领域
本发明涉及软件测试技术领域,尤其是涉及一种测试用例生成方法、生成装置及软件自动测试系统。
背景技术
在目前的软件测试过程中,自动化测试已经得到了人们越来越多的关注,目前很多公司也都已经成立了自动化测试团队,在产品测试过程中应用也越来越广,自动化测试用例也越来越多,那么如何在一次代码提交中从众多的用例中选择与本次代码修改相关匹配的用例呢,以及如何在一次全回归测试结果中,针对某个失败用例的修复,如何选择与其相关的用例集合进行重新测试呢,目前的解决方案为:
1、针对持续集成测试,通过人工评估选择测试用例集合在每次研发代码提交时进行测试,这样每次运行的均是相同的用例集合,只能做到冒烟测试,无法达到根据代码修改内容测试其相关的用例集合;
2、一次全回归测试结果中,针对某个失败用例的修复,再次测试时也需要人工评估选择相关用例集合进行测试。
以上方案均需要测试人员的参与,大大增加了自动化测试的维护成本,也无法很好的达到效果,故需要探索智能推荐测试用例集合的方法。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷而提供一种测试用例生成方法、生成装置及软件自动测试系统。
本发明的目的可以通过以下技术方案来实现:
一种测试用例生成方法,该方法包括:
获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列;
根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合,所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建;
推送所述用例集合。
进一步地,所述特征词典根据测试用例集采用的语句频率建立。
进一步地,所述用例生成请求根据提交代码修改内容或失败用例产生。
进一步地,所述相似度计算模型具体为:
similarity=(dice-0.2·order)·I{dice≠0}
其中,dice为Dice距离系数,order秩和系数,I为示性变量。
本发明还提供一种测试用例生成装置,包括:
特征提取模块,用于获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列;
相似度计算模块,用于根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合,所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建;
推送模块,用于推送所述用例集合。
进一步地,所述特征词典根据测试用例集采用的语句频率建立。
进一步地,所述用例生成请求根据提交代码修改内容或失败用例产生。
进一步地,所述相似度计算模型具体为:
similarity=(dice-0.2·order)·I{dice≠0}
其中,dice为Dice距离系数,order秩和系数,I为示性变量。
本发明还提供一种软件自动测试系统,包括所述的测试用例生成装置。
与现有技术相比,本发明具有如下有益效果:
1、本发明在产品自动化测试过程中,可从众多的自动化测试用例中根据代码修改内容智能地推荐相关的测试用例集合,提供有针对性的测试,智能性高,改变传统手工的方式,提高测试效率。
2、本发明采用基于Dice距离与Wilcoxon秩和检验构建的相似度计算模型搜索获得相关的用例集合,可靠性高,有效提高软件测试准确度。
3、本发明可适用于如下以及更多的应用场景:1)在持续集成测试场景中,根据提交代码修改内容推荐相关测试集合,达到智能地测试其相关的功能用例;2)在一次测试结果中,根据失败用例,智能地找到与其功能相关的用例集合进行再测试。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
本实施例提供一种测试用例生成方法,基于衡量字符串相似度的dice距离与非参数统计中的Wilcoxon秩和检验法,提取测试用例/代码的核心特征,并量化各个特征的相似度,以达到推荐用例与求解用例关联分析的目的。如图1所示,该方法包括以下步骤:
获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列,特征词典根据测试用例集采用的语句频率建立,用例生成请求根据提交代码修改内容(代码commit信息)或失败用例产生;
根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合;
推送所述用例集合。
所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建。Dice距离用于度量两个集合的相似性,因为可以把字符串理解为一种集合,因此Dice距离也会用于度量字符串的相似性。此外,Dice系数的一个非常著名的使用即实验性能评测的F1值。Dice系数定义如下:
其中A,B表示两个集合,分子表示两个集合的相交操作后长度的两倍,分母表示两个集合长度之和,所以其范围也在0到1之间。
Wilcoxon秩和检验,是由Mann、Whitney和Wilcoxon三人共同设计的一种检验,用来决定两个独立样本是否来自相同的或者相等的总体,基于样本数据秩和,先将两样本看成是单一样本(混合样本),然后由小到大排列观察值统一编秩,如果原假设两个独立样本来自相同的总体为真,那么秩将大约均匀分布在两个样本中,即小的、中等的、大的秩值应该大约均匀被分在两个样本中,如果原假设两个独立样本来自不相同的总体为真,那么其中一个样本将会有更多的小秩值,这样就会得到一个较小的秩和,另一个样本将会有更多的大秩值,因此就会得到一个较大的秩和。
上述方法主要分为特征提取和相似度计算两个部分。
1、特征提取
一般自动化用例是存在固定的语法的,而且代码提交后的commit信息亦可以形成一定的语法形式,于是则可根据预先设置好的规范提取其特征。
以用例为例,首先我们需要根据经验将一些出现频率较高的、有代表性的语句提取出来。
举例来说,先看如下用例:
"添加项目,缺省配额":["点击身份管理->项目2->创建项目",
"输入名称为pro1%时间戳",
"点击配额->创建项目",
"循环10秒,页面上存在pro1%时间戳",
"清理项目为pro1%时间戳"]
"项目名称为空":["点击身份管理->项目2->创建项目",
"点击创建项目",
"检查页面上存在取消"]
"创建1个云硬盘":["点击项目->云硬盘->云硬盘2->创建云硬盘",
"输入云硬盘名称为volume%时间戳",
"点击创建云硬盘",
"检查页面上存在volume%时间戳",
"循环10秒,类型为云硬盘,名称为volume%时间戳的对象状态为可用",
"清理云硬盘为volume%时间戳"],
"使用cirros镜像创建云硬盘":["点击项目->云硬盘->云硬盘2->创建云硬盘",
"输入云硬盘名称为volume_from_image%时间戳",
"点击没有源,空白云硬盘。->镜像",
"点击选择一个镜像->cirros-0.3.5-1(12.5MB)",
"点击创建云硬盘",
"检查页面上存在volume_from_image%时间戳",
"清理云硬盘为volume_from_image%时间戳"]
在以上用例中,可以看出,前两个用例主要与项目相关,其中身份管理->项目2、创建项目、pro1、清理项目等语句的出现,均可用于判定这个用例用到了项目相关的功能;而后两个与云硬盘相关,其中,出现“云硬盘2”、“创建云硬盘”、“volume”等字样,则可用于断定这个用例用到了云硬盘相关的功能。
直观上可以看出,特征语句出现的频率与用到此功能的紧密程度成正相关的关系,而不同用例之间的相同语句频率可以作为一种衡量它们相似程度的度量。根据上述内容即可构建特征辞典,并在辞典的语句上标注高亮以提高特征提取效率。另外构建特征辞典时,需要排除一些干扰字样,如“镜像”、“项目”这些字样,看起来说到了这些功能,但事实上只是在用其他功能时“路过”了它们,而并未真正用到。
基于以上用例,假设特征辞典为:
{
“项目”:[“身份管理->项目2”,“创建项目”,“pro1”,“清理项目”]
“云硬盘”:[“云硬盘2”,“创建云硬盘”,“volume”,“清理云硬盘”]
}
那么将上述四个用例变为:
{'添加项目,缺省配额':['项目','项目','项目','项目','项目','项目','项目'],
'项目名称为空':['项目','项目','项目'],
'创建1个云硬盘':['云硬盘','云硬盘','云硬盘','云硬盘','云硬盘','云硬盘','云硬盘','云硬盘'],
'使用cirros镜像创建云硬盘':['云硬盘','云硬盘','云硬盘','云硬盘','云硬盘','云硬盘','云硬盘','云硬盘']}
由此,将每一个列表看做一个有序的特征序列,则特征提取步骤完成。通过上述例子可以看到:
'添加项目,缺省配额'是与项目功能结合最紧密的。
'创建1个云硬盘'与'使用cirros镜像创建云硬盘'它们用到的功能几乎完全相同。
可以看到,这与直观上的经验是符合的,那么由此得到特征词典为:
{
“项目”:[“身份管理->项目2”,“创建项目”,“pro1”,“清理项目”]
“云硬盘”:[“云硬盘2”,“创建云硬盘”,“volume”,“清理云硬盘”]
}
2、相似度计算
从上述用例可得出一二两个用例之间相似度较高,而三四两个case之间相似度极高。经过特征序列提取后,计算用例之间的相似度转换为了计算特征序列的相似度,现将特征“项目”看做“a”,特征“云硬盘”看做“b”,那么直观上看,四个用例则变为了:aaaaaaa,aaa,bbbbbbb,bbbbbbb。
接下来用处理字符串的相似度去处理它们。但是传统的字符串对于顺序十分看重(例如:three与there就是完全不同的意思),而用例则对于重现频率更加侧重。本发明选择dice距离,这是衡量两个集合之间相似度的一种距离,表达式为:
这个指标可以衡量用例/代码commit信息之间的内容相关性。
另外,用例中特征出现的顺序对相似性也是有所影响的,举例说明:
假设有两特征序列:
rank(ai/bi)=1 2 3 4 5
a=['项目','实例','项目','用户','项目']
b=['实例','项目','实例','项目','项目']
它们的元素相同,但是涉及到的功能的先后顺序不同,说明它们也并不完全相同。为了衡量顺序的差异,借鉴非参数统计中秩和(排名的和)的概念,表达式为:
其中,pi为第i个特征关键词出现的频率,diffranki为两个序列中秩的差的归一化,其中秩和是用作衡量模糊顺序中常见的处理方式,衡量顺序的有效性由wilcoxon严格证明过。计算秩和的差,则是衡量出他们顺序的差异性,归一化是为了将order控制在[0,1],那么每一个功能都有一个秩和差,但是由于出现的频率不同我们不能将它们同等看待,所以则用加频率权的方式计算。
最终得到相似度表达式为:
similarity=(dice-0.2·order)·I{dice≠0}
其中,dice为Dice距离系数,order秩和系数,I为示性变量。dice衡量内容相关性,而order衡量顺序差异性,由于更加注重内容相关则将order系数降为0.2。特别地,引入示性变量I是因为如果内容相关度为0,那么讨论顺序则毫无意义,直接默认相似度为0。
以上述特征序列为例;试计算a、b之间相似度,首先:
其秩和分别为:
{'实例':2,'项目':9,'用户':4}
{'实例':4,'项目':11}
秩和对应的差为:
{'实例':2,'用户':4,'项目':2}
归一化后为:
{'实例':0.25,'用户':0.5,'项目':0.25}
分别占比为:
{'实例':0.3,'项目':0.6,'用户':0.1}
最终:
order=0.3×0.25+0.6×0.25+0.1×0.5=0.275
由此得到:
similarity=(0.8-0.2×0.275)×1=0.745
通过上述相似度计算过程,遍历测试用例集,获取与所述特征序列相似度最高的用例集合,智能推荐符合要求的用例集合。
实施例2
本实施例提供一种测试用例生成装置,包括特征提取模块、相似度计算模块和推送模块,其中特征提取模块用于获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列;相似度计算模块用于根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合,所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建;推送模块用于推送所述用例集合。其余同实施例1。
实施例3
本实施例提供一种软件自动测试系统,包括如实施例2所述的测试用例生成装置,通过该测试用例生成装置实现了测试用例集合的智能推荐。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (3)
1.一种测试用例生成方法,其特征在于,该方法包括:
获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列;
根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合,所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建;
推送所述用例集合;
所述特征词典根据测试用例集采用的语句频率建立,所述用例生成请求根据提交代码修改内容或失败用例产生;
所述相似度计算模型具体为:
similarity=(dice-0.2·order)·I{dice≠0}
其中,dice为Dice距离系数,order秩和系数,I为示性变量。
2.一种测试用例生成装置,其特征在于,包括:
特征提取模块,用于获取用例生成请求,基于特征词典将所述用例生成请求转化为有序的特征序列;
相似度计算模块,用于根据相似度计算模型遍历测试用例集,获取与所述特征序列相似度最高的用例集合,所述相似度计算模型基于Dice距离与Wilcoxon秩和检验构建;
推送模块,用于推送所述用例集合;
所述特征词典根据测试用例集采用的语句频率建立,所述用例生成请求根据提交代码修改内容或失败用例产生;
所述相似度计算模型具体为:
similarity=(dice-0.2·order)·I{dice≠0}
其中,dice为Dice距离系数,order秩和系数,I为示性变量。
3.一种软件自动测试系统,其特征在于,包括如权利要求2所述的测试用例生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910635069.4A CN110362489B (zh) | 2019-07-15 | 2019-07-15 | 一种测试用例生成方法、生成装置及软件自动测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910635069.4A CN110362489B (zh) | 2019-07-15 | 2019-07-15 | 一种测试用例生成方法、生成装置及软件自动测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362489A CN110362489A (zh) | 2019-10-22 |
CN110362489B true CN110362489B (zh) | 2023-10-03 |
Family
ID=68219417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910635069.4A Active CN110362489B (zh) | 2019-07-15 | 2019-07-15 | 一种测试用例生成方法、生成装置及软件自动测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362489B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473175A (zh) * | 2013-09-11 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | 一种软件测试用例集的提取方法 |
CN104866426A (zh) * | 2015-05-28 | 2015-08-26 | 华北计算技术研究所 | 软件测试综合控制方法及系统 |
CN105653437A (zh) * | 2014-11-11 | 2016-06-08 | 田鹏 | 基于数据挖掘的软件维护精益模型 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9036878B2 (en) * | 2010-12-17 | 2015-05-19 | Aarhus Universitet | Method for delineation of tissue lesions |
-
2019
- 2019-07-15 CN CN201910635069.4A patent/CN110362489B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473175A (zh) * | 2013-09-11 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | 一种软件测试用例集的提取方法 |
CN105653437A (zh) * | 2014-11-11 | 2016-06-08 | 田鹏 | 基于数据挖掘的软件维护精益模型 |
CN104866426A (zh) * | 2015-05-28 | 2015-08-26 | 华北计算技术研究所 | 软件测试综合控制方法及系统 |
Non-Patent Citations (4)
Title |
---|
Wilcoxon–Mann–Whitney test for stratified samples and Efron"s paradox dice;Karthinathan等;《Journal of Statistical Planning and Inference》;20070301;第137卷(第3期);第720-737页 * |
基于切片谱的错误定位框架影响因素分析;鞠小林等;《计算机研究与发展》;20141215(第12期);全文 * |
基于持续集成的冒烟测试;姜文等;《计算机技术与发展》;20180428(第08期);全文 * |
越南语分词词典半监督集成构建算法;刘伍颖等;《郑州大学学报(理学版)》;20180125(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110362489A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428044B (zh) | 多模态获取监管识别结果的方法、装置、设备及存储介质 | |
CN109101620B (zh) | 相似度计算方法、聚类方法、装置、存储介质及电子设备 | |
Sun et al. | On the importance of building high-quality training datasets for neural code search | |
CN111831802B (zh) | 一种基于lda主题模型的城市领域知识检测系统及方法 | |
CN109542247B (zh) | 句式推荐方法及装置、电子设备、存储介质 | |
CN111274267A (zh) | 一种数据库查询方法、装置及计算机可读取存储介质 | |
CN112580357A (zh) | 自然语言查询的语义解析 | |
CN107220384A (zh) | 一种基于相关性的搜索词处理方法、装置及计算设备 | |
CN112100396A (zh) | 一种数据处理方法和装置 | |
CN111813944A (zh) | 一种直播评论分析方法、装置、电子设备及存储介质 | |
CN111046667A (zh) | 一种语句识别方法、语句识别装置及智能设备 | |
Marion et al. | Structured context and high-coverage grammar for conversational question answering over knowledge graphs | |
CN111651569B (zh) | 一种电力领域的知识库问答方法及系统 | |
Gupta et al. | Joint bootstrapping machines for high confidence relation extraction | |
CN116561264A (zh) | 一种基于知识图谱的智能问答系统的构建方法 | |
Wang et al. | Keml: A knowledge-enriched meta-learning framework for lexical relation classification | |
CN113239143B (zh) | 融合电网故障案例库的输变电设备故障处理方法及系统 | |
CN114676698A (zh) | 一种基于知识图谱的设备故障关键信息提取方法及系统 | |
CN114676346A (zh) | 新闻事件处理方法、装置、计算机设备和存储介质 | |
US10191786B2 (en) | Application program interface mashup generation | |
Zhong et al. | Javascript code suggestion based on deep learning | |
CN110362489B (zh) | 一种测试用例生成方法、生成装置及软件自动测试系统 | |
CN113869049B (zh) | 基于法律咨询问题的具有法律属性的事实抽取方法及装置 | |
CN110413757A (zh) | 一种词语释义确定方法、装置及系统 | |
Zhang et al. | FactSpotter: Evaluating the Factual Faithfulness of Graph-to-Text Generation |
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 |