当前位置:文档之家› 软件自动化测试理论及其实现

软件自动化测试理论及其实现

软件自动化测试理论及其实现
【摘要】本文阐述了软件自动化测试的基本理论及实现过程,并对其具体应用情况进行了分析和总结,供大家参考和探讨。

【关键词】软件自动化;测试理论;实现与应用
1.前言
在过去,软件测试基本都是由开发人员自己或者专门的测试部门进行检测的,程序开发员及相关部门要消耗大量时间来对软件进行开发测试,工作效率和质量较低。

因此,自动化软件测试技术的出现,可以使开发与测试人员的软件测试工作更加方便快捷,促进软件测试流程的简化,逐渐摆脱复杂的人力测试,推动工作效率的有效提高。

2.软件自动化测试的实现
2.1 软件自动化测试的概念及测试理论
测试自动化指的就是利用自动化测试工具以及其他有效的测试方法,根据测试工程师的原定计划开展自动测试工作,进而达到减少手工测试工作量,促进软件测试质量提高的目的。

软件自动化测试是一项新型软件测试的技术,根据测试的需要,可以调整测试系统运行的环境,接着根据测试的需求和目的对相关的程序功能进行测试,然后通过设置好的系统程序对需要测试的软件进行测试,主要运用在软件的开发完成之后的测试与维护测试。

软件自动化测试的工作原理就是要通过应用专用的软件工具来进行软件测试工作,取代以往的手工测试,实现对软件性能及质量的验证,判定其是否满足预定需求。

软件自动化测试以提高测试效率和质量为根本目的,为软件的实际质量提供保证,通常可以通过可视用户界面或者直接命令实现对脚本的使用,有效应用相关代码完成对应用程序的驱动,完成软件自动化测试工作[1]。

2.2回归测试自动化理论
回归测试是软件测试工作中的一个重要环节,当我们对代码进行修改或者对软件硬件平台进行变更亦或是更换硬件配置时,就一定要开展回归测试。

回归测试作为软件生命周期的一个重要构成部分,在整个软件测试工作中占据很大的比重。

在软件快速更迭开发过程中,软件新版本经常需要连续发布,这就使回归测
试的开展变得更加紧迫和必要。

软件越接近发行,经历过的测试次数就越多,如果在这时候发现软件错误并对其进行修改,就不得不把之前开展过的测试工作再重新进行一次,这就大大增加了软件测试的工作量。

所以,我们必须要选择有效的回归测试方法来促进回归测试效率及质量的提高。

2.3软件自动化测试技术及实现
软件自动化测试技术可以根据机制的不同划分为侵入式测试技术以及非侵入式测试技术。

侵入式技术通常利用某种方法对内部代码进行修改,对其运行环境开展有效控制,非侵入式测试技术则多应用于软件监视及检查工作,而不是对软件内部的具体结构和内部代码进行修改。

软件自动化测试一般使用自动化测试工具,例如IBM的RQM、RFT以及RPT等就能够实现对测试脚本的提供,并针对目标应用程序进行有效测试[2]。

软件测试人员以及软件开发人员必须要不断学习新的自动化测试技术并将其应用在测试工作中,不断完善和优化企业的自动化测试工具,才能真正满足企业的自动化测试需求。

企业从开始设想应用自动化软件测试,到最终实施软件自动化测试,需要经历一段漫长的时间,企业的软件自动化测试需要不断地积累和改进,应用各种软件测试技术循序渐进地实现软件自动化测试。

在实施软件自动化的过程中,我们也遇到了一些难题,例如:刚开始应用自动化测试原理时,我们就将测试项目进行全面覆盖,随着实施进程的不断推进,我们发现这样的实施方式与企业实际不相符,很难得到有效实施,于是我们开始考虑对各个测试项目进行具体评估。

再如,软件开发部门应用的软件测试工具虽然相对比较简单,但是也是在应用了十几个测试版本之后才开始慢慢稳定,应用起来也比较简易,在进行多次测试和反复修改之后,才产生了现阶段我们所需要的自动化测试工具软件,真正满足自动化软件测试需求。

现阶段,本企业的软件自动化测试在软件版本测试中的应用已经越来越普遍,在对软件版本进行颁布以前,本企业的软件测试工作除了包括对基本功能的测试工作以及修改点测试等各项测试项目之外,还增添了一项测试项目,即自动化测试,通过使用上述测试技术以及测试工具,大概可以缩短我企业一半的软件测试周期,大幅度提升企业软件测试效率,使企业软件能够提前进行发布,也促进企业生产时间得以提前,提高企业的服务质量,增加客户满意度。

3.软件自动化测试的具体应用
软件自动化测试在具体应用中需要遵循一定的步骤,具体应用流程如表1所示。

表1 软件自动化测试的实现与应用
3.1自动化测试的主要应用
自动化测试是在程序开发员开发出新的软件之后,除了进行简单的人工测试之外,就要进行自动化的测试,并且自动化测试系统在进行测试的时候会受到网络稳定状态的影响,因此,自动化测试要不受到网络环境影响,并且输入测试的内容与输出测试的结果必须一一对应,那么这部分软件就可以通过自动化软件测试系统来进行测试,并且测试的时间也会缩短,同时提高工作效率[3]。

3.2自动化测试的主要应用工具
现阶段,我们主要应用的软件自动化测试工具主要有白盒测试工具、黑盒测试工具以及测试管理工具等。

黑盒测试工具主要由功能测试工具以及性能测试工具组成。

黑盒测试工具通常通过测试脚本的录制及回放实现对用户操作过程的模拟,再把被测试系统的输出结果记录下来,跟原来制定的标准进行对比。

此类测试工具主要以Rational公司生产的TeamTest以及Robot Compuware公司制造的QACenter作为典型代表。

白盒测试工具通常以代码作为主要测试对象,测试工作中挖掘出的缺陷能够定位到代码级,按照测试工作原理的差异性,我们可以将白盒测试工具划分为静态工具以及动态工具。

静态工具针对代码进行直接分析,采用语法扫描方法开展代码分析工作,针对与编码规范不符的地方则无需运行代码,不用对其进行编译链接,直接生成可执行文件。

静态测试工具以Telelogic 公司的LogiscoPe软件以及PR公司的PRQA软件为主要代表。

动态测试工具则以Compuware公司的DevPartner软件以及Rational公司的Puri系列为主要代表。

测试管理工具一般用来对测试需求、计划以及用例、实施情况进行管理,同时负责对缺陷进行跟踪管理。

此类测试工具主要以IBM Rational公司制造的Test Manager以及Mercury公司制造的Test Director软件作为主要代表[4]。

3.3回归测试自动化理论的应用
回归测试自动化即使用测试工具,实现自动选择测试用例开展回归测试。

本企业在实现回归测试自动化时,通常使用RQM、RFT等测试工具,利用其捕获用户操作功能以及自动回放用户操作功能,促进回归测试有效性的提高。

捕获功能以及回放功能能够将用户在开展测试过程中的具体输入操作完整记录下来,保存软件的响应记录,在我们进行软件修改,再次运行该软件时,就可以通过测试回放功能将之前的输入操作再次应用到新的测试操作中,同时对前后几次测试的响应情况进行自动对比,假如响应出现差异,则表示对该软件的修改存在新的错误[5]。

此外,本企业在进行软件回归测试自动化时,重视测试用例的优化,在整组测试用例中选取用例开展回归测试,将测试用例的数量尽量扩大,尽量减少测试花费的人力物力财力,提高回归测试效率及有效性。

3.4软件自动化在稳定软件测试以及重复性测试中的应用
在对一个测试进行自动化之前,要明确这个软件的实际用途是不是适用与软件自动化在稳定软件测试以及重复性测试中的应用,如果这个测试随着时间的推移会发生重大变化就不需要对其进行自动化改革。

因为应用程序发生变化的时候会导致自动化测试代码跟着改变。

如果一个测试被重复的使用,并且工作量大且不方便就需要将这个软件进行自动化。

4.编辑自动化测试脚本
自动化的软件测试工具在使用之后,首先要做的是编辑自动化测试的脚本,要求脚本覆盖更多的测试项目,并且在编辑格式中要可以兼容不同项目产品的需求,也就是说有新的产品与新的项目时,可以简单的修改与还原原来的脚本,从而使得后续脚本的维护与更新工作量大大的减少。

除此之外还要考虑到脚本编辑的简易操作性,由于脚本不是由专门的人员进行编辑,几乎是全部的测试人员一同进行的,倘若脚本的格式与内容太复杂,就会使得最终脚本不一致,从而影响到自动化测试软件的规范性,因此,在进行脚本的编辑之前,必须要制定自动化测试的脚本规范,使得编辑的脚本具有统一性。

5.结束语
综上所述,根据不同产品具有的特性,选择合适的软件自动化测试工具,开发出简单灵活、成本低并且兼容性强的自动化测试工具,从而合理的应用到软件的测试工作中,提高软件测试的工作效率,加强软件的测试能力,从而实现节约成本与实现软件检测的目的,同时还要保证软件的质量,使得在软件自动化测试下的软件在投入使用的过程当中能够更加高效的利用,从而提高软件的使用率,为开发商提供更好更高的经济效益。

【参考文献】
[1]郑毅,王挺.浅论软件企业的自动化测试[J].浙江水利科技.2010,03(03):256-336
[2]季淑引.软件自动化测试工具的应用研究[J].科技致富向导.2012,04(20):256-548
[3]冯伟,李波,何倩.软件测试自动化应用分析[J].制造业自动化.2011,05(02):589-669
[4]李敏.在软件测试授课过程中加强对学生职业素质的培养[J].考试周刊.2011,07(55):758-625
[5]史永莉,陈元琰,罗晓曙,蒋志刚.软件自动化测试方案的效益分析[J].微计算机信息.2010,08(06):455-364。

相关主题