软件自动化测试技术研究

时间:2022-09-18 06:59:18

软件自动化测试技术研究

摘要:软件测试作为软件开发的一个重要环节,对提高和保障软件质量起到关键作用。该文从软件自动化测试的设计原则、自动化测试框架的选择和自动化测试用例的生成等几个方面出发对软件测试自动化技术加以探讨,其目的是为企业实施自动化测试过程提供参考。

关键词:软件测试;自动化;框架;测试用例

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)12-2923-03

软件测试作为软件质量保障的重要手段,其存在于软件开发生命周期的每一个过程。在整个软件项目的开发过程中,测试人员必须对所开发的软件进行不断测试,以保证软件的正常运行。统计数据表明:软件项目中超过一半的预算投入到软件测试中,所以软件测试代价高昂。缺陷发现的越晚,修正缺陷的代价也越高,给企业造成的损失也越大。

随着软件规模的增加,测试工作量的增大,需要投入大量的人力,原本的手工测试逐渐暴露出诸多缺陷,例如,覆盖率量化困难、重复测试效率低下、不一致性和可靠性低、依赖人力资源等。软件自动化测试技术正是在这种情况下产生的。其根本目标是使所有的测试行为包括测试用例的设计、驱动、结果检查、缺陷定位和移除等都尽可能实现自动化。事实证明,正确、合理的实施自动化测试,能够对软件生命周期的各个阶段进行快速、全面的测试,提高软件测试效率,保证软件的质量,节约软件的开发成本,缩短软件的开发测试周期。但实际上,并非所有的自动化测试技术都可以达到测试活动的预期目标,诸多软件开发机构在实施软件自动化测试的过程中通常存在无法正确找准测试自动化的切入点、程序开发过程和测试自动化过程相互独立、软件测试脚本的质量低劣、测试自动化过程对测试用例的依赖程度过高等方面的负担造成工期延误和成本浪费,甚至最终被完全放弃等问题。

自动化测试技术要想有效地解决测试质量与效率、降低测试自动化的投入、提高其产出等问题间的矛盾,必须形成一套系统的自动化测试体系,在质量保障方面有所作为。因此,深入研究软件自动化测试技术和方法,保障软件质量,已经成为国内外软件行业和相关机构的研究热点。

1 自动化测试的设计原则

软件自动化测试是相对于手工测试而存在的,自动化测试可以被理解为使用一个商业通用测试自动化工具编写一个软件来发现其他软件的缺陷。开发测试脚本以执行键盘、鼠标动作和后台进程并验证应用程序响应和行为。一个良好的自动化测试体系在设计时,需满足以下条件:可维护性 - 使测试更新跟上软件升级的步伐;高效性-实现效率最大化;可靠性 - 使测试结果准确而且可重现;兼容性-允许测试用例为不同的测试目标而以不同的方式组合;可用性-测试人员或用户容易掌握定制或更改测试用例的方法;健壮性-可以处理意外情况而不退出或终止;可移植性 - 测试脚本可以在不同环境中运行测试。

2 自动化测试框架的选取

自动化测试框架是一组自动化测试的规范、测试脚本的基础代码,以及测试思想、惯例的集合。自动化测试框架的好坏对自动化测试的成功有直接影响。目前业界公认的自动化测试框架,主要有四种:数据驱动框架、测试脚本模块化框架、测试库架构框架和关键词驱动框架。

1)数据驱动框架

测试驱动引擎从数据文件读取输入数据,通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例,数据驱动脚本将测试脚本(执行步骤)和数据分离,将测试输入数据存储在独立的数据文件中,而不是直接存储在脚本中[1]。在脚本中引入变量,执行时通过变量来读取数据文件中的数据。通过数据驱动脚本,同一个脚本可以测试不同的输入数据,提高了脚本的重用率和可维护性。其缺点是初始建立的开销较大,由被测试应用程序的变化所导致的工作量在所有架构中是最多的,因此维护成本是相当高的。

2)测试脚本模块化框架

测试脚本模块化框架的测试脚本中包含了各功能点的控件识别和业务逻辑操作,其中包含调用外部测试数据。框架结构如图1所示。图中箭头方向代表的是调用关系。负责自动化测试脚本维护的开发工程师必须了解自动化编程和业务逻辑。负责为花测试数据的工作由测试工程师完成。它的优点是控件和业务逻辑一旦发生变化,底层的测试脚本就要进行修改和维护(这比没有任何抽象封装的自动化测试程序稍好一点)。缺点是几乎所有大的变更导致的工作量都要交给自动化测试开发工程师来完成;控件识别和业务逻辑本身属于不同的领域,

没有很好进行抽象封装。

3)测试库构架框架

所有的针对测试系统本身的控件识别和支持的操作将被封装在测试库中;通过测试脚本调用测试库的同时传递外部的测试数据;自动化测试开发工程师在编写测试库的同时(无需了解业务),还需要负责控件的变更和维护;对业务比较熟悉的自动化测试开发工程师编写测试脚本,并负责业务逻辑的变更和维护;测试工程师则只需要维护测试数据(无需了解自动化开发)。框架结构如图2所示。其优点是在被测试系统中,无论是哪一层的变化,其需要的变更维护工作只需要交给相应人员即可;这从根本上实现了控件识别操作和业务逻辑的抽象分离。其缺点是由变更引起的工作量还是附加在自动化测试开发工程师身上。

4)关键词驱动框架

关键词驱动框架是数据驱动框架的一种改进类型。在该框架中,需要定义关键词表格,关键词表格一般存储在测试数据库、Excel或文件中,表格一般包括所需要的所有对象、操作和测试数据。编写驱动代码读取表格数据,分析测试对象、测试操作和测试数据。关键词驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离[2]。关键词驱动模式具有以下优点:在同一个特定格式的数据表中就可以实现测试步骤、测试数据以及验证结果的编写;独立于测试脚本语言开发测试用例;所需脚本数量是随着软件的规模而不是测试的数量而变化的;可以用于工具无关的方法实现测试;实现测试的方法可以剪裁适合测试者而不是测试工具。

上一篇:探究高密度聚乙烯双壁波纹管在市政工程中的应... 下一篇:第一时间应对眼睛受伤