一种数据驱动的Web测试技术

时间:2022-08-27 07:46:41

一种数据驱动的Web测试技术

摘要:针对目前Web 应用“捕捉/回放”式测试脚本复用率不高的问题,根据Web应用的特性给出了一种基于数据驱动的Web 测试框架,借鉴测试脚本模块化思想,对测试脚本进行分层次嵌套管理,并实现测试数据与测试脚本的分离。仿真实验结果表明,该框架具有良好的独立性及可扩展性。

关键词:Web 应用;数据驱动;测试框架;测试脚本

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)21-5820-02

Web Test Framework Based on Data-model-driven

DU Jing, ZHANG Yan-hong, XING Cui-fang

(Naval Aeronautical Engineering Institue, Yantai 264000, China)

Abstract: Aimed at the problem of low reusability in the context of web application test script based on “capture/replay”. A data-driven testing framework is proposed In view of the idea of script modularization, the nested hierarchical management is conducted to the test script, and the division of test data and test script is implemented. Simulation experimental results show this framework has better performance of independence and expandability.

Key words: web application; data-driven; test framework; test script

软件回归测试是指旧的软件代码被修改后再重新测试软件的功能,以便确定修改没有引入新的错误或导致原有代码产生错误。对于传统软件而言,回归测试是一项非常重要的软件维护手段,在整个软件测试过程中占很大比重[1]。本文研究并实现了一种由数据模型驱动并且支持分布式多平台网络环境的软件自动化测试框架。 该框架对测试对象、测试逻辑和测试数据重新进行了组织,对软件回归测试过程进行了改进。

1 数据驱动测试框架

数据驱动测试是指使用一个预定义的数据集作为输入和响应数据,使单个测试脚本被重复执行的技术[2]。本文基于数据驱动测试,提出了一种数据模型驱动测试的概念,数据模型驱动测试可以看作是数据驱动测试的扩展。因为日常的测试中发现,大多数测试用例中使用的测试数据相互之间存在一定的联系,而这些测试数据之间的联系与被测对象的功能和结构有关,并且可以建立合理的模型来描述这些互相关联的测试数据。按照模型来组织测试数据,可以使测试代码更加清晰合理、意义明确,降低维护的难度。 物理上的数据模型是指一组描述测试数据属性以及它们之间联系的 Bean,加上一组按照测试数据之间关系储存XML 文件中的结构化的属性值[3]。从某种角度看,数据模型驱动测试是一种增强型数据驱动测试,它的数据集是按照其内部元素相互关系组织的,并且对外提供了一种以其内部元素相互关系为逻辑的访问数据集的方法。

2 数据驱动的Web测试框架设计

测试框架应具备如下特点:测试数据驱动,测试流程总体控制,测试框架独立性,测试模块的原子性以及测试模块的可扩展性。

2.1 Web测试框架设计思路

框架应满足的策略有:1) 框架与应用程序相互独立;2) 框架结构必须容易进行维护和扩展;3) 框架所包含的测试策略和设计必须与框架无关;4) 框架所包含的测试策略和设计方法必须易于测试人员使用;5) 框架拥有自己的测试库;6) 框架能够易于进行测试设计的重用和管理。

2.2 Web测试框架结构

依照上述设计思路以及对目前主流测试框架的分析,并结合Web 系统的特点,设计该功能测试框架。 Web 应用测试执行的思想是通过向Web 服务器发送测试脚本文件中事先定义好的HTTP请求来模拟真实用户访问Web的场景,并通过分析统计HTTP响应等数据来检查系统的功能和性能。该测试框架从逻辑上自底向上分为 4 层,如图 2 所示,分别是:由GUIObject 和 TestDataObject 构成的模型层,由 CommonTask构成的任务层,由 TestScript 构成的逻辑层以及由 TestSuite构成的控制层。

1) 模型层:用户界面提供给测试人员一个编写和维护脚本的平台,用户可方便的导入或导出脚本,编写完成的脚本经过DTD定义的检查,通过后即可交付给测试执行模块。测试脚本可根据规格说明书方便地对测试输入和预期输出进行编写。此外用户界面还提供了测试执行中返回的测试结果和运行状态。

2) 任务层:测试数据输入可根据测试脚本中变量的定义读取和操作Web 应用数据库和模拟输入数据。

3) 逻辑层:测试执行是在具体Web应用程序上执行脚本并得到结果的一个过程。该平台使用DOM4J 来解析XML 测试脚本,并用HTTP Unit 来对Web 应用进行测试,实现测试脚本到执行引擎的映射。运用计算机来模拟人的行为来自动化测试Web应用并获得测试结果信息,测试执行还具有并行测试的特点。

4) 控制层:测试报告获得测试执行的结果,并分析执行结果用来确定哪些用例被正确执行;提供错误发生状态、位置、数量等信息统计;测试覆盖率计算等。

3 结束语

本文提出一种基于数据驱动的Web的测试框架,该框架具有独立性、原子性、可扩展性等特点,并已初步成型,可以逐步应用到 Web 项目中。但还存在不足之处,如当测试用例相互调用时,如何更好地设计用例和函数库,以避免在一个用例运行失败导致所有相关的测试用例失败[4]。这也是今后的研究方向。

参考文献:

[1] Qian Zhongsheng,Miao HuaiKou,Zeng Hongwei.A practical web testing model for web application testing[C].Third International IEEE Conference on Signal-Image Technologies and Internet- Based System,2007:434-441.

[2] Kelly M.Framework Automation with IBM Rational Functional Tester: Data-driven[EB/OL].(2005-11-20)./ developerworks/rational//library/05/1108_kelly/?S_TACT=105AGX52&S_CMP=cn-a-r.

[3] 刘晓丹,武君胜,刘博.基于数据驱动的自动化测试平台设计[J].科学技术与工程,2008,8(3):779-782.

[4] Johnson D J,Roselli P.Using XML as a flexible,portable test script Language[C].Proceedings of IEEE Systems Readiness Technology Conference,2003:187-192.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于JSP的校园新闻系统设计与实现 下一篇:数据加密技术初探