软件自动化测试的应用研究分析

软件自动化测试的应用研究分析

东莞新科技术研究开发有限公司523087

摘要:随着信息时代的来临,软件的开发与更新周期也越来越短。在开发与更新周期缩短的同时,如何保证软件质量与可靠性就变得十分重要。随着计算机的普及,计算机应用范围也越来越来广,相对的,对于各类软件的需求量也逐步提高。一款软件开发出来,就需要进行测试。自动化软件测试技术的出现可以让开发人员可以更便捷的测试软件,摆脱繁杂的人工测试,简化测试流程,有效提高工作效率。

关键词:软件;自动化;应用研究;测试

引言:软件作为依托计算机发展起来的一项新产品,其应用领域越来越广,软件在开发过程中,需要经过多次测试才能完成,这就是软件测试。软件测试最主要的目的就是检验软件系统与规定的需求、预期的结果是否相符合,或者检验他们之间的差别,然后再据其进行系统改善,确保产品在投入运行时,能避免出现错误,在提高公司的社会效益的同时还能提高公司的经济效益。当前,在软件测试过程中,由于其工作的复杂性和繁琐性,往往需要耗费很长的时间,使得软件测试在软件工程开发过程中占据较长周期,不利于软件的开发及利用。

1、软件测试的相关概念

软件测试需要在模拟的实际运行环境下进行检测,通过执行某个特定的程序或系统发现被测软件系统或程序中存在的漏洞和错误,它是有针对性、有目的地对软件产品的自检,即发现问题。软件自动化测试是软件测试新的分支,即由机器代替人的手工操作,按照测试工程师预先设定的计划,利用特定的自动化测试工具和编写好的测试脚本,模拟人工手动测试步骤来执行测试用例,完成对目标应用程序的半自动或全自动测试,用以验证各种软件测试的需求。从本质上讲,测试自动化是“再测试”技术。

软件测试的分类方法:根据测试方法分为黑盒测试、白盒测试;根据软件开发的阶段分为单元测试、集成测试、验收测试、系统测试;根据是否借助测试工具分为人工手动测试、自动化测试;根据是否需要执行被测软件分为静态测试、动态测试。

2、软件测试自动化的设计及实施

2.1软件自动化测试脚本设计

一般情况下,软件自动化测试脚本设计包括以下几种:线性脚本,结构化脚本,共享脚本,数据驱动脚本,关键字驱动脚本。

线性脚本包括鼠标的移动以及用户在界面上的操作,在实际处理中,测试环境的些许改变会使得整个程序界面被改动,所以,线性脚本仅对于那些不需要进行深入的计划或需要跟踪实际操作、仅提供工具的演示等部分工作是比较适合的,由于线性脚本的过程较为繁琐,所有的工作均依赖于捕捉的内容,且维护费用较高,不利于长期或大量测试,仅仅依赖于线性脚本不太现实。结构化脚本包含循环控制结构、选择控制结构、调用结构三种结构模式,其性能较好,且对开发人员的要求较高。但由于加入了条件判断语句,使得整个脚本变得复杂,容易发生处理功能类错误,降低了脚本对被测系统的依赖性。共享脚本较结构化脚本有进步,前者是指一段已编写完成的脚本可以被多个测试用例所使用。其出发点是当某个功能被测试脚本实现以后,其它的测试会需要反复地调用这个功能。数据驱动脚本是将所需要测试的数据存放于独立的数据文件当中,使得测试数据与测试操作得以分开,其最大的优点是能够利用同一个脚本进行多种测试。关键字驱动脚本是一种较为复杂的逻辑扩展,要求每个测试例执行的具体操作必须一样,所以,即便是改变了测试工具,重新实现支持脚本便可,方便测试人员进行测试。

总的来说,选择脚本的原则是能够为用户或管理者提供帮助,同时在执行任务时,可以重复使用,其结构能够被测试人员接受和理解,客户在使用时,能够有清楚、简明的文档,方便用户或管理者在日后维护软件。

2.2软件自动化测试的特点

自动测试技术最初的研究主要集中在如何采用自动方法来实现和替代人工测试中的一些繁琐和机械重复的工作。自动化测试最开始的出现只是偶然行为,但随着各工作量的增大,人们对测试的要求越来越高,测试的自动化不仅是为了节省人工和测试资源,更需要确定自动测试技术能否在测试效果上达到人工测试的水平。在自动化测试过程中,其测试结果必须准确,在最大程度上减少误差,确保测试结果的精准性。只有保证了自动测试结果的可靠性,自动化测试才具有实际的意义,也才能将其应用于指导测试的自动化过程以及对测试的结果进行评估。软件测试是带有目的性、针对性地发现错误,并不是偶然的。在传统的测试当中,统计指标虽然可以帮助提高测试的可信度,但由机械重复或穷尽搜索方式实现的自动测试在性能和效率上的效果都不太理想,在自动测试方面,人们希望能够在某些方面达到或甚至超过人工测试的能力。于是,各种高新技术被运用到自动化测试当中,不仅减少对人工的依赖性,而且大大增加其测试结果的准确性,使得软件自动化测试逐渐被推广和广泛运用。

2.3软件测试自动化框架设计

软件自动测试与软件开发过程相融合的过程中存在的问题决定了软件测使用自动化测试技术或是采用人工测试方法。当前,由于自动化测试技术的发展尚处于发展阶段,其测试结果和测试方法难以完全能匹配到整个项目当中。更为实际的情况是项目开发中同时包含了可实现自动化的测试活动,以及难以完全实现自动化的测试活动,这就要求设计出具有较大可塑性的自动测试模型,可在较少改动或者配置的情况下,最大化适应自动化测试的需求。

2.4软件自动化测试的实施

测试用例是针对被测系统各项功能而设计并开发的,需要以下几个步骤共同实施,具体包括:标识测试条件、设计测试用例、建立测试用例、运行测试用例、比较结果。

标识测试条件是测试活动的第一步,必须明确对测试的内容,标识出测试条件。在同一个系统中,测试条件有被测试的系统所决定,包括被测系统的功能、性能等方面,而测试条件可以由被测试的环境通过不同的方法所描述,例如简单的语言、表格形式、图画列表等。设计测试用例是按一定顺序执行的与测试目标相关的一系列测试,产生相关的结果或其他测试信息。建立测试用例包括准备测试脚本、测试输入、测试数据以及期望输出,通过文本的形式,将测试的结果保存,且能够在同时实现多个测试用例。在测试脚本时,其测试形式既可以通过手工的形式执行,也可以通过手工的形式执行,此外,测试输入和期望输出既可以包括在脚本中,也可以以脚本外的文件或数据库的形式存在。运行测试用例是被测软件在运行时使用的测试用例,在手工测试当中,测试人员在测试前做好相关准备,包括录入相关数据,观察数据的输出,从中发现问题;在软件自动化测试当中,测试人员只需要启动测试工具,同时告诉工具执行哪些测试用例即可,使得人力从繁琐的工作中解脱出来。

2.5软件自动化测试的设计

当软件自动化设计不合理时,常具有以下几种表现:首先,在测试任务和测试时间的压力下,测试人员很难把精力专注在实现自动化测试的地方,使得测试人员在测试时缺少足够的时间进行。其次,由于为了节省时间,测试人员需要在同一时间里同时做好很多事情,加大了测试人员的工作量,团队的不同,其工作和任务也会有所不同,这就使得测试人员常出现目标不明确等现象。此外,缺乏足够的经验也是软件自动化设计不合理最常见的表现,尝试测试自己极限的初级开发人员经常会绊倒在测试自动化项目,其结果常常是很难继续下去。再次,会出现人员流动大的情况,其工作经验难以得到传递和积累,不利于软件自动化测试的设计。除上述现象外,还会出现使得测试人员在工作过程中出现不愿意积极思考的现象,一些测试人员会以自动化的项目为不涉及测试为借口,在工作上表现出不积极、懒惰现象。最后,在测试中,由于自动化测试软件是与技术相关的问题,使得项目部门过于重视技术而忽视软件其他方面的设计。

针对自动化设计不合理出现的一系列不合理的问题,在进行测试自动化是,必须进行精心的设计,在最大限度上减少风险,实现利益的最大化,因此,软件自动化测试的设计需要从以下几个方面进行综合考虑。

第一,实现软件自动化测试的可测试性。软件测试的接口包括命令行接口、应用程序编程接口、图形用户界面,绝大多数软件只有其中两个或一个,在开发过程中,需有制定合理的测试计划,测试部门要和开发部门协调各类需求,确保在代码编写和对象创建的时候就插入了标识符。第二,实现软件自动化测试的可维护性。软件自动化测试中最终重要的问题便是维护成本问题,当前,在竞争激烈的电信领域中,各类软件更新换代的速度较快,这就要求软件的测试必须跟上时代发展的脚步,防止软件升级造成自动化测试的维护工作量过大是很重要的一个环节,若不能处理好,将导致整个测试自动化工作被较廉价的手工测试所取代,不适合时代的要求。第三,加强相关测试人员的培养。对于软件测试人员而言,加强其相关人员的培训是非常重要的,能够在很大程度上控制测试预算成本、提高测试结果,确保软件测试过程高效、合理,也利于测试人员提升在测试方面的专业水平。除此以外,软件自动化测试的测试数据、构建测试过程、可审查性、可重复性等都是其设计过程需要考虑的因素。

3、结束语

本文从软件自动化测试的意义到应用进行了简单讨论分析,从各方面对比来看,软件自动化测试在软件测试行业中占有重要地位,在未来的发展中,应当加大对自动化测试的研究力度。让自动化测试继续发挥更大的作用。

参考文献:

[1]面向服务器集群的自动化测试监控平台的研究和实现[J].汪旺,夏凤,陈哲,黄志球.计算机与现代化.2014(09)

[2]Web服务自动化测试技术[J].马春燕,朱怡安,陆伟.计算机科学.2012(02)

[3]软件测试自动化技术应用研究[J].董娜娜,詹惠琴.电子测试.2010(11)

[4]一种面向应用的测试任务自动生成与运行方法[J].杜德鑫,孙继银,张翼飞.电子技术应用.2009(09)

标签:;  ;  ;  

软件自动化测试的应用研究分析
下载Doc文档

猜你喜欢