回归测试中决策树算法应用设计与开发毕业论文
2021-04-25 23:25:34
摘 要
软件测试而今无疑是整个软件生命周期中必须重视,有特殊地位且必不可少的重量级流程,它担保了软件的性能和安全保障。测试用例的优化在软件测试过程中是个至关重要的环节,文中阐述如何进行决策树算法的设计,按照决策树算法规则对测试用例按高、中、低的次序优化,在测试用例库中选择最具有代表性的,同时介绍了如何构造该算法。这种方法既使分类更加精准,又能提高测试效率,是行之有效的。目前应用相对普及的决策树算法有ID3算法、C4.5算法和CART算法,这三种算法能有力地对测试用例子集实施分类、排序和优化,使回归测试中的测试用例不会出现冗余和缺少内容的状况,本文主要论述构建决策树的关键步骤,算法的设计需求,算法的实现,对于测试用例做到优化调整和排序。
关键词:决策树;回归测试;测试需求;测试知识;测试子集选取
Abstract
Software testing is now the entire software life cycle can not be replaced, heavyweight and its important and necessary part, it guarantees the quality of the software. The optimization of test cases in regression testing, is a vital link, in this paper, the design of the decision tree algorithm in the regression test, according to the rules of the decision tree algorithm for test case priority sorting, choose the most representative in the test case library, at the same time how to construct the algorithm are introduced. This method not only makes the classification more accurate, and can improve the test efficiency, is effective. At present, a wide range of decision tree algorithms are ID3 algorithm, C4.5 algorithm and CART algorithm. These three algorithms can effectively classify, sort and divide the test case subsets, so that the test cases in the regression test will not appear redundant. This paper mainly discusses the key steps of constructing the decision tree, the design requirements of the algorithm, the realization of the algorithm, and the optimization and adjustment of the test cases.
Key Words:regression testing; decision tree; test requirements; test knowledge;
the test subset selection
目录
第1章 绪论 1
1.1研究背景 1
1.2国内外研究现状 2
第2章 基于决策树算法的分类标准 3
2.1决策树 3
2.2决策树分类方法 3
2.3决策树的学习过程 5
第3章 回归测试 6
3.1测试用例 6
3.2回归测试知识 6
3.3回归测试用例的排序原则 6
3.4回归测试知识约减 7
3.5回归测试知识的表现形式 8
3.5.1知识表示决策树 8
3.5.2根据决策树节点选取子集 9
第4章 基于信息论的决策树算法分析 10
4.1基于信息论的三种算法比较 10
4.1.1ID3算法的性能分析 10
4.1.2 C4.5算法对ID3算法的主要改进 10
4.1.3 CART算法简析 11
4.2ID3算法的数学原理 12
4.2.1 ID3算法信息论基础 12
4.2.2 ID3算法演算过程 12
第5章 基于决策树分类规则构造等价类 15
第6章 结论 17
参考文献 18
致谢 19
- 绪论
回归测试是软件发展过程中的一种检测软件性能的方式,而它是用来担保软件质量的。回归测试往往应用于对公司内即将或已经发布的产品进行测试,由于客户的需求的增多和产品版本的变更,每个版本都要进行回归测试以确保软件在用户心中的可靠性程度和可信度,也能保证软件能适应各种不同的环境。现在社会处于大数据时代,每个软件的输入条件都是很多的,输入方式也变得多样化,数据来源同样也是非常的广泛,这就导致了一个输入前提的测试用例个数必定是无限制的。近期我在杭州海康威视公司进行软件测试工程师的岗位实习,切身体验了每个项目的回归测试过程,项目的测试用例数量是很多的,意味着会消耗大量的时间和增加其他的成本,比如和项目成员的沟通,对新增业务的了解和学习等,由此总结出项目测试时要尽可能地选取数目少而精的测试用例。回归测试所赐予测试工程师的项目周期要比单元测试和集成测试所用的时间少,因此要选择高效的测试用例提高回归测试的测试效率。回归测试的过程往往比项目开发初期的单元测试和集成测试的水平要求要高。第一,在整个软件生命周期中,随着客户的需求不断增多,软件性能的不断优化,软件的部分功能需要进行更改,或增加,或删除,每次的版本更新都要进行回归测试以验证在保证了现有的功能的正常下是否引入了新的缺陷。软件尽管进行了更改,但有时候软件的需求规格说明书未能够同步更新,那需求文档就不适合完全作为筛选测试用例的有力依据。第二,有些新软件是在其旧版本的前提下进行系统重做的,成本可见之大,由于旧版本时间长,很多文档都不再可取,那么测试用例只能脱离文档完成分析可执行程序来作为筛选测试用例的可取途径。
1.1研究背景
软件需要定期地进行维护,而且随着存在的客观因素的变动,它也要不断地满足用户的需求进行实时更新,谁也不能保证修改代码或者为软件添加组件后软件不会出现任何缺陷,这时就要对软件进行回归测试。专业人员都非常清楚,回归测试的任务周期是非常短的,而且需要测试人员特别熟悉软件的需求和业务,加上人员紧张和到多数情况下的项目并行状态,可见回归测试的任务非常紧张。项目的繁重性主要体现在测试用例的数量,很多测试顺序等级为低和中的用例编号会占用项目工程的大部分时间,况且自动化方向的研究成果还不成熟,这也就意味着无意中提高了回归测试的项目成本,同时也是增加了软件的开发成本[[1]]。对于此问题的困扰,业界人士也提出了很多针对测试用例子集的方案,比如针对测试用例子集的选取,决策树算法的优化等研究都能很好地缩小测试用例子集,但是在一些比较重要的区域,像公安和交通系统,这些都是涉及到安防的安全性和严谨性,千万不能因为缩小测试用例子集导致其他模块没有项目用例而产生测试用例遗漏,因此选取测试用例子集时要做到精确。由此可知,工程用例的决策对回归测试乃至工程来说都非常重要。
1.2国内外研究现状
回归测试这一过程是用来检查修改后的程序或者组件是否存在缺陷,根据我在海康威视实习的情况来看,国内的互联网行业人力非常匮乏,而且项目时间紧张,结合项目总结,每个轮次回归测试周期大约是两个星期左右,有时候需要超负荷运作,压力还是蛮大的。针对这种情况,业内是有研究的,目前主要关注在回归测试的子集选取方面和数据的优化排序。
测试用例按照决策树算法的定义进行排序和优化,目前还有一种研究是抉择型回归测试,这种方式是以软件的原版本的测试用例的执行情况为基础,然后结合新版本进行测试用例优化,这相比重新创建测试用例来说已将在很大程度上节约了测试成本,而且也减小了软件测试的周期,但要特别注意软件变更前后修改的模块,测试用例要定位准确,不能出现异常,否则测试工程师会在结果回填时浪费较多时间去修改测试用例[[2]]。