基于图形遍历算法的回归测试方法的研究以及应用硕士学位论文.doc
《基于图形遍历算法的回归测试方法的研究以及应用硕士学位论文.doc》由会员分享,可在线阅读,更多相关《基于图形遍历算法的回归测试方法的研究以及应用硕士学位论文.doc(64页珍藏版)》请在三一办公上搜索。
1、 基于图形遍历算法的回归测试方法的研究及应用 摘要自从发明计算机以来,信息技术飞速发展,相应的软件开发与测试也在飞速成长。软件并没有人们想象当中的那么抽象与遥远,在日常生活中接触到的电脑软件、手机软件都涉及到了软件开发。当然,软件在开发出来之后就需要经过测试来检测一下软件开发的结果,这就是软件测试。在软件测试当中经常用到的验证测试方法当属回归测试。虽然回归测试成本比较贵,但是其测试结果较准确。当然,在现实中是非常激烈的。如果使用一种有效手段,通过这种机制既可以大大降低回归测试所带来的成本又可以提高监测的效率,那么就会在竞争中处于领先地位。因此,如何研发这种机制是当今软件测试的重点和难点。Ext
2、end-Dejavu算法是目前使用广泛的回归测试用例选择算法,但是该算法需要利用元数据来构造控制流图和收集覆盖信息,因此在实际使用中难度很大。本文借鉴Extend-Dejavu算法精华,开发了基于修改点控制流图的回归测试用例选择算法,能够对C语言单元函数进行逻辑结构上的比较。从而减少测试用例,提高测试效率。算法主要包括以下内容:根据控制流图对比技术检测出有效修改点;根据语句节点的数据和控制之间的依赖关系构建基于修改点的软件切片;以切片得到的节点集合作为目标覆盖集合,从基准用例库中选取相关测试用例构造回归用例选择子集T0;运行T0中测试用例;基于覆盖情况分析是否存在未覆盖的目标节点,若存在则构造
3、回归用例新增子集T1;最后合并T0和T1得到回归测试用例集合。与Extend-Dejavu算法相比,本论文主要有以下改进和创新:基于控制流图对比技术检测有效修改点,能够精确定位代码修改点;在修改点的基础上进行语句级别切片,降低了回归测试的覆盖范围;补充新的用例以保证回归测试的充分性。所以,本文提出的回归测试方法具有用例选择精度高、回归测试更加充分的特点,显著提高了回归测试的效率,明确体现了其有效性。关键词:软件测试,回归测试,Extend-Dejavu,测试切片AbstractSince the computers have been invented, the information tec
4、hnology is developing rapidly, at the same time, the corresponding software development and testing is also developing rapidly. In the process of software development, the more important aspect is the regression test. Software development is not so far from us, in our life, we are all exposed to com
5、puter software and cell phone software, and they are all related to the software development. Of course, software developers need to come out after the software has been tested to detect what the result of the development, and this is what we know software testing. Regression test is often used to s
6、oftware development. Although the cost of regression testing is very expensive, its test results are very accurate. Of course, in todays society, competition is very fierce. If you master an effective mechanism, we can greatly reduce the cost of regression testing at the same time, we can improve th
7、e efficiency of monitoring through this mechanism .It will compete in a leading position. Therefore, how to develop such a mechanism is the focus and difficulty of todays software testing.The Extend-Dejavu algorithm is widely used the regression test cases selection algorithm, but the algorithm need
8、s to use metadata to control flow graph and collect information, so in the practical use is very difficult. Essence, this paper Extend - Dejavu algorithm is developed based on the modified point control flow graph of regression test case selection algorithm, can carry on the logical structure to the
9、 function C language unit in comparison. To reduce the test cases, improve the test efficiency. Algorithm mainly includes the following content: according to the control flow chart compares technology to detect the effective modification point; According to the statement data dependency and control
10、dependency between nodes based on modified point build of the software section; To slice the node set as the target coverage set, from the baseline test cases selecting the related test case library T0 select subset regression cases; Run test cases in the T0; Based on the analysis whether the cover
11、has not covered the target node, if there is the structure new subset regression case T1; Finally merge T0 and T1 regression test case set. Compared with the Extend-Dejavu algorithm, this thesis mainly has the following improvements and innovations: detection based on control flow chart compares tec
12、hnology modification, can accurate positioning point code change; At modify the statements on the basis of the level section, narrowed the range of regression testing; Add new test cases to ensure the adequacy of the regression test. Regression testing method is proposed in this paper, therefore, th
13、e use cases with higher precision, more fully the characteristics of regression testing, greatly improve the efficiency and effectiveness of the regression test.Key Words:Software Testing,Regression Testing, Extend - Dejavu,Test Section目录摘要IAbstractII图目录III表目录IV第1章 绪论11.1 课题背景11.2 国内外研究现状及进展21.3 本文主
14、要研究工作51.4 论文组织形式51.5 本章小结6第2章 软件测试和回归测试的策略72.1 软件测试72.1.1 软件测试的目的72.1.2 软件测试方法72.1.3 软件测试策略82.2 回归测试92.2.1 回归测试分类92.2.2 回归测试策略92.3 软件测试与回归测试比较112.4 本章小结12第3章 基于字节码控制流图的回归测试用例选择算法综述133.1 Dejavu算法以及扩展算法的介绍133.2 UT2测试实例153.2.1 测试环境153.2.2 新旧版本字节码163.2.3 原始Dejavu算法控制流图163.2.4 Extend-Dejavu算法控制流图173.2.5
15、测试结果183.3 本章小结18第4章 基于修改点控制流图的回归测试用例选择算法194.1 算法概述194.2 无效修改点判定设计194.2.1 基本概念194.2.2 设计原理与算法234.3 确定测试切片294.3.1 基本概念304.3.2 设计原理与算法324.4 UT3测试实例344.4.1 无效修改点判定测试344.4.2 确定测试切片测试364.5 本章小结39第5章 优化算法对比分析及实际应用405.1 对比分析405.1.1 单测试用例算法精度对比415.1.2 多测试用例算法精度对比425.2 TD-LTE项目中自动化测试平台应用435.2.1 用例库管理445.2.2 系
16、统运行445.2.3 OMCR-CT及DEBUGTOOL475.2.4 测试结果及分析49(一)测试报告49(二)结果分析505.3 本章小结51第6章 总结与展望52参考文献54作者简历57致谢59图目录图2.1 软件测试一般过程图11图3.1 TD-LTE项目中旧版本方法Dispenser.dispenseO的控制流图17图4.1 删减语句导致的控制流图的变化24图4.2 广度优先对比25图4.3 深度优先对比26图4.4 N1为终结符节点,N2为普通节点的示例图28图4.5 N1为普通节点,N2为终结符节点的示例图28图4.6 计算修改点的流程图29图4.7静态切片(左)与动态切片(右)
17、30图4.8 静态切片(上)与动态切片(下)31图4.9 TD-LTE项目中equation函数的原代码(左)和修改后代码(右)35图4.10 被测单元f1的控制流图36图4.11 被测单元f修改前后的代码37图4.12 被测单元f的控制流图38图4.13 被测单元f关于节点decl_stmt_1的依赖图39图5.1配置文件存放形式44图5.2用例库管理操作界面44图5.3 TR-PC启动45图5.4 TmView操作界面45图5.5 TmView操作界面46图5.6 TR-PC执行操作界面46图5.7 TR-PC执行操作界面47图5.8 OMCR-CT工具操作显示界面48图5.9板件消息显示
18、48图5.10 OMCR-CT启动48图5.11 OMCR-CT结束48图5.12 DEBUGTOOL启动49图5.13 DEBUGTOOL结束49表目录表2.1渐增性回归测试和改错性回归测试主要区别8表4.1 修改点有效性分析23表4.2 函数f的控制流图和源程序的对应关系35表5.1两种回归测试用例选择算法的回归测试用例选择集42表5.2 2种不同算法针对3个实例运算的运算结果对比44第1章 绪论1.1 课题背景其实计算机在安全上的问题已经存在很久了,特别在软件层面上,软件产生的故障问题越发的频繁,随之造成的危机也经常导致严重的后果,给人们带来了很多的教训。从这些教训中我们可以总结出:软件
19、开发过程中软件测试对最后软件成功与否意义重大。当然,随着计算机的普及,各种软件进入了人们的视野。从普通的软件到一些专业的软件,软件的应用领域非常广泛,规模也是非常庞大。现在人们面临的技术层面的难题就是如何在琳琅满目的软件当中选择符合人们要求的软件,如何在符合要求的基础上确保这些软件的质量及可靠性。软件的一些很小的差错就有可能对国家、财产、军事、航天事业以及生命等方面造成巨大的损失,我们必须极力的阻止这类事件的发生。有人对美国当今的软件的现状进行了相应的研究,这些研究表明:到上个世纪末为止,美国的软件领域的从业人员已经达到了接近130万人。作为关键领域的巨头,微软每年在软件方面的销售总额在整个美
20、国也是相当可观的。但是,虽然销售总额很高,利润却没有人们想象当中的那么高。这些损失很大成份是由软件错误造成的。降低了软件产生的错误,就可以挽回很大的损失。如何改进软件系统的质量问题已然成为取得高回报的有效手段,在安全和财产保障中,软件质量影响深远,也是国家、人身安全、军事航天事业等方面的保障。软件工程概念的提出是针对高质量和高可靠性的软件设计提供了基础。而在软件工程中的软件测试的概念由Bill Hctzel在1972年首次提出。在软件开发过程中,软件测试更是重中之重,它是软件开发过程的最后一道保障环节。软件测试经过最近几十年的发展已经越来越迅速,尤其是最近几年。软件测试最重要的也是最直接的目的
21、就是发现系统软件中的漏洞以及错误,及时通知软件开人员,避免重大损失。据统计,在美国,那些对于安全性要求较高的软件来时,软件测试所要花费的费用可能会超过40%以上。因此,软件测试已经受到越来越多的专家的重视,很多专家也对如何降低测试费用进行了探讨。在软件的整个生命周期中,软件的代码这一因素也是相当重要的。如果软件设计过程中软件的代码发生了变化,那么软件开发会带来很多的问题,所以,在软件开发之前就应该把相应的需求分析做好。软件测试的时候必须注意以前已经测试过得基本模块,以便确定相应的修改是否有影响到原来的功能实现,并要确认其修改是否产生了新的问题,这种测试就是著名的回归测试。软件在开发过程中所涉及
22、的软件代码是相当复杂的,而且代码之间都具有关联性,如果软件部分代码被改正以后相关联的代码可能就会瘫痪掉。特别容易放生在修改后产生新的错误,有数据表明这种情况发生的概率高达20%以上。回归测试自从被提出来之后就获得了广泛的应用。在基本的回归测试用例确定以后,后面即使有更改,先前确定的测试用例还是可以重用的。随着项目的不断发展,后期加入的测试用例数目越来越多,在测试人员的流动性,测试用例的运行周期的冗长性等因素的影响下,对后期测试用例的控制性回越加把握不住,这些相关问题都会使得前期测试投入很大,也导致在后期测试工作中,每当有改动都要从头到尾重新测试,这不仅浪费时间也是没有必要的。软件在开发过程中一
23、定要有相关经验的软件人员,这样软件可以尽可能的减少代码的重写,从而降低由于代码重写所带来的回归测试的成本的增加。当然,软件开发的时候最好是有一定的人员对软件测试用例库进行相关的维护以及管理,这样就会有个合理的组织、统一的管理。计算机的发展带动了许多相关学科的发展,如今全球化的迅速发展也对移动通信提出了较高的要求。随着移动通信系统的发展,我们的“空间”变得越来越小。当今移动通信系统中的最新进展就是LTE,它延续了移动通信家族的技术演进,而且LTE完成了对移动通信业务的扩展。世界上第一部电话发明出来的时候人们都被惊呆了,多年以后谁会想到移动通信系统会发展的这么迅速。它不仅仅解决了人们日常生活中所用
24、到的语音通信功能还建立了多业务空中接口。因此,LTE现在已经被各个通信公司所看重,都当作通信企业的研究中心。软件测试在软件开发工作中所占据的重要位置使得各个企业正向研发一个幼小的机制。本课题即基于上述背景,设计并实现了用于TD-LTE项目的基于图形遍历方法的回归测试用例优化算法。1.2 国内外研究现状及进展回归测试方法在软件测试当中广泛应用,它的研究包括许多方面,包括捕获回放机制以及测试环境的自动化,当然还包括测试用例时所用到的选择优化技术等等3,这些在回归测试当中应用十分广泛。回归测试涉及面十分广泛,归纳起来主要包括四个方面的问题。首先,代码修改后给软件开发带来的影响如何评估;其次,修改部分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 图形 遍历 算法 回归 测试 方法 研究 以及 应用 硕士学位 论文
链接地址:https://www.31ppt.com/p-4022560.html