教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 回归测试中机器挑选用例方法研究

回归测试中机器挑选用例方法研究

上传者:网友
|
翻新时间:2022-11-30

回归测试中机器挑选用例方法研究

【摘要】随着测试的发展,这个领域产生了两个大的趋势。趋势一,智能化。传统的自动化方法:首先转自动化测试代码的过程费时费力,并且在测试执行过程中,需要反复的人工干预。趋势二,小规模测试替代大规模测试。测试规模越来越小,测试活动对发现bug的有效性越来越高;在传统的方式下,全体测试用例执行的方法,逐步的为针对代码变动而开展的小型测试活动所代替。本文的主要工作是:提出对于回归测试,使用机器挑选的方法。

【关键词】机器学习;回归测试;测试用例

1.引言

机器学习(Machine Learning, ML)是一门交叉型学科,它涉及到了多个领域,包括:概率与统计学、高等数学、逼近和凸分析等。机器学习人类的学习过程和学习行为,并且加以计算机的模拟或实现。在机器学习过程中,机器本身了获取新的知识或技能。

在机器学习和人工智能的壮大发展的时代背景,对传统的测试工作提出了一些新的挑战。研究通过机器学习的方法,提升传统的测试工作的效率,进一步的提高整个软件开发活动的劳动生产率。

2.软件测试工程的研究综述

软件测试是用于分析是否程序出现错误的过程,测试使用人工操作或者软件自动运行的方式。每个不同的软件有对自身错误的定义方式:通常是软件需求规格中定义了预期结果。

软件测试分类

1、从是否要变异/执行被测试软件分类,分为静态测试和动态测试。如基于代码审查的单元测试,以及相关代码审查工具,都属于静态测试的范畴。

2、从是否要针对软件结构、算法进行覆盖分类,分为白盒测试和黑盒测试。

3、从测试活动在软件开发过程中所处的不同阶段分类,分为单元测试、集成测试、系统测试、验收测试。

我们这里讨论的“回归测试”是属于系统测试的最后一个阶段。

在修改了旧代码后,需要对这部分子都进行测试,以确保这个代码修订没产生新的错误。在大多数情况下,回归测试占测试周期和测试自由的50%。因此,如果能够制定更有效的回归测试用例,将极大的提升整个测试的效率。

回归测试的流程如下:

(1)找出程序中因为新增需求或者故障解决,而被修改的代码

(2)从总的用例库中,去除掉不再合适的测试用例:这部分用例可能是修改没涉及的功能,也可能是一些系统性稳定性的低优先级的测试用例

(3)针对修改的影响部分,增加一部分相关模块的测试用例

(4)搜索出最基本的测试用例,纳入到测试计划:这部分测试用例保证软件不出现意外的基本功能错误

(5)用上述2~4的测试用例集合,形成回归测试的测试范围

3.现有回归测试用例选择方法

对于一个软件开发项目来说,项目的测试组在实施测试的过程中会将所开发的测试用例保存到“测试用例库”中,并对其进行维护和管理。当得到一个软件的基线版本时,用于基线版本测试的所有测试用例就形成了基线测试用例库。在需要进行回归测试的时候,就可以根据所选择的回归测试策略,从基线测试用例库中提取合适的测试用例组成回归测试包,通过运行回归测试包来实现回归测试。保存在基线测试用例库中的测试用例可能是自动测试脚本,也有可能是测试用例的手工实现过程。

针对修改部分的测试是我们希望改进的内容

当前是优秀的高级工程师逐一的查看开发提交的各个修改点,根据自己对相关部分的理解,以及对开发修改点的学习。整理出需要回归的测试点:这种方法的主要问题是:

需要优秀的工程师参与,这位工程师必须同时具备:既了解测试组的全部测试用例库,也需要能够理解开发提供的修订说明。

每一轮测试完成后,就需要人工干预,从而产生下一轮的测试用例

4.机器选择测试用例的方法

用机器来模拟和替代人工的挑选测试用例:是在回归测试中引入智能化方法的先决条件。整体按照如下的流程:

首先进行的是为每一条测试用例,生成不同的特征向量。在这个步骤中,将原始的测试用例转变成为“记录每个词出现的频率”的数学符号。最后生成如下表格:

其中行代表不同的测试用例,列代表不同的词语描述,数字代表不同的词语在不同测试用例中出现的词频。

然后,根据TFIDF算法将测试用例生成的文本特征向量,转换成为最终的文本特征向量。

这样,表一通过TFIDF算法最终转化的向量表示如下:

完成了特征词语的选择后,就要给选出的特征词语赋以权重。比如“测试”一词,在每个测试用例中都有出现,那么这个词虽然词频很高:但是“权重为零”――也就是说这个词对于描述不同测试用例的不同特征,无任何帮助。对于本研究方案而言,我们使用TF*IDF算法,计算出精确的统计量,以描述特征词语对于中文内容的重要性。

最后,将代码变更说明收集起来,计算特征向量。同时将测试用例库中的内容也做成特征向量。逐个的拿代码变更的特征向量,与用例库中的特征向量进行对比:选出与代码变更特征向量相识程度最高的。这个特征向量所代表的测试用例,既为下一轮回归测试的输入。在这个模块中,我们选择KNN算法,KNN算法也叫K最近邻算法。抽取测试用例库中的每个文本,逐一的与被测试的向量进行比较,每个比较完成后相似度被计算出来。下一步:找出K个最相似的测试用例。并在此基础上给每个被选出的测试用例打分,取分值大者作为比较结果。具体计算公式为:

其中:d为待测文本(开发提交的代码变更说明)向量,q为训练集中文本(原始的测试用例描述)向量。

这里给出一个具体实践:

开发提交了一个代码变更说明如下

最后机器推荐的相关性最紧密的四个用例,如下表:

可以看出,这四个被挑出来的点,都是对ACL重定向的测试:并且测试覆盖了物理端口、AP端口、SVI端口三种不同的端口类型。

进一步的,对这部分的测试进行基于代码覆盖率的验证,可以证明机器挑选出的四个测试用例,确实的有测试覆盖到开发修订的代码。

5.结束语

让机器来自主选择回归测试用例,然后将这个方法融入到自动化测试框架中。让自动化测试框架具有一定智能,能够“自主的产生回归测试用例的变化集合”。譬如整个ACL模块测试用例个数达到300,如果全部回归费时费力,而人工参与分析则会打断持续的自动化测试过程。新方法使用四个测试用例,就可以对开发修订提交的代码进行覆盖;这样一方面我们减少了回归测试的测试用例个数,另外一方面开发修订的代码,也被完整的测试了。

参考文献

[2]卢苇,彭雅.几种常用文本分类算法性能比较与分析.湖南大学学报(自然科学版), 2007.

[3]JOACHIMST.A probabilistic analysis of the rocchio algorithm with TFIDF for text categorization Nashville:1997:143-151.

[4]http://zh.wikipedia.org/wiki/回归测试.维基百科全书,internet

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

天灰灰
行走
百日生死祭
遥望星空
高三
不再期待
地震
这个夜
追逐希望
雨,一直在下
矛盾
我愿意和你分享
无尽的思念
一句名言给我的启示
中药泡脚,能治愈失眠吗
基层社区成人发热475例病因回顾分析
硒与癌症发病和死亡相关的奥妙
“春天菜王” 分段尝鲜
10年间骨髓细胞形态学检查结果的变化
有没有副作用小的降压药?
经桡动脉途径急诊冠状动脉介入治疗的可行性研究
湖北省汉川市院前急救流行病学调查
168例妊娠合并卵巢肿瘤的临床特点及治疗分析
优生优育,男士也需“孕前体检”
后牙固定修复中应用氧化锆全瓷冠和全锆冠效果对比研究
腹腔镜胆囊切除术的并发症研究
腹腔镜下子宫肌瘤剔除术47例临床观察
醋浸韭菜治顽固鼻出血
坚果:最大众化的休闲食品(十四)
2009年扬州市中考语文试题及答案
甘肃兰州2009年中考语文试题及答案
2009年云南省昆明中考语文试题及答案
2009年江苏省宿迁市中考语文试题及答案
2009年广西河池中考语文试题及答案
湖南省长沙2009年中考语文试题及答案
2009年湖北恩施自治州中考语文试题及答案
湖南湘西2009年中考语文试题及答案
2009年湖北省咸宁市中考语文试题及答案
湖北省十堰2009年中考语文试题及答案
2009年江苏省盐城市中考语文试题及答案
湖南省常德市2009年中考语文试题及答案
2009年江苏省无锡市中考语文试题及答案
2009年黑龙江省绥化中考语文试题及答案
2009年江苏省南通市中考语文试题及答案