自动化功能测试技术框架初探

2011-10-09 14:24论坛中国软件评测中心
字号:
A+
|
A-

  引言

  也许您曾有过这样的经历:软件升级之后第二天被淹没在无尽的故障电话中,没有进行变更的模块报出了莫名的错误。不得不持续发布补丁或者重新上线来弥补因为升级而导致的缺陷。在痛苦之时大家都明白,完善的回归测试能够帮助在上线前检查到上线后暴露出来的绝大多数的错误。但是浩大的回归测试工作量变成了绝大多数企业的一个不可完成的任务。

  软件为了满足市场的需求,软件版本升级的频率越来越频繁,测试周期不断被压缩,让手工测试人员在有限时间内去验证成千上百的测试案例,基本上成为了不可实现的任务,传统的手工测试已经无法满足企业进行有效的回归测试,此时出现了自动化测试技术。但是目前自动化测试技术却很难在企业中进行实际应用。主要有两个原因:

  ● 软件的变更引发的自动化测试程序的变更维护量超出了手工测试的工作量,使得自动化测试技术成为了一个“美丽的谎言”。

  ● 企业内大部分测试人员精通测试业务,但是不熟悉自动化技术,新招聘的自动化测试人员熟悉测试技术,而又不了解测试业务,二者资源无法在短时间内融合,使得企业无法接受所需投入的成本。

  一、新一代的测试框架技术的提出

  随着企业对自动化的期望越来越高,促使了各类自动化测试工具的热销。这些工具基本上都是通过录制技术快速的形成测试脚本,进行一些参数化或者检查点设置的脚本修正工作后点击回放按钮,就很“轻松”的完成了一次回归测试。但是真正按照这个模式去开展自动化测试,发现后期大量的自动化测试脚本维护工作使得企业投入成为了一个无底洞。不仅仅没有真正解决回归测试问题,反而造成“高投入、低产出”问题的凸现。从而使得很多企业不得不再重新回归到手工测试模式。

  为什么会导致大量脚本的维护工作呢?有三个方面的原因:

  ● 自动化测试工具提供了一套便捷的模式生成测试脚本,是它的一个优势,但是同时又导致了一个很大的缺陷,就是脚本静态化,一旦需求变更,不得不进行脚本重新的修正。

  ● 业务之间的复杂性和关联性,驱使着脚本之间需要进行相互调度,来满足不同业务模型的测试,静态脚本的修正,很容易引起“水波效应”,从而增加脚本维护量。

  ● 脚本的复用性比较差,容易引起脚本的重复修正的工作,从而导致工作效率的降低。

  为了解决功能自动化测试技术的应用问题,中国软件评测中心在多年的实践中,总结经验,提出了新一代的测试框架,其架构如图1-1所示,特点如下:

  ● 无需测试脚本,也能去实施自动化测试,从而降低自动化测试脚本维护量;

  ● 现有的测试人员无需技术转型,测试人员只需要关注如何设计出高质量的测试用例,从而降低自动化测试人员投入或者转型成本。

  图1-1 新一代测试自动化框架工作流程

  二、自动化测试框架特点

  1、易维护

  传统的自动化测试技术:自动化测试运行之前编制了大量的测试脚本,因为变更而导致的脚本维护量非常大;

  自动化测试框架:采取动态生成的脚本模式,使用案例驱动策略,使得脚本维护工作量急剧降低。

  2、灵活的数据管理控制

  传统的自动化测试技术:测试数据与脚本的耦合度非常高,从而带来极大的维护量;

  自动化测试框架:测试数据与业务流采取高内聚,低耦合的模式,提供数据管理器、数据生成器、数据组合筛选器,帮助测试人员在实际工作中便利的输入、管理和筛选各类测试数据以及数据的组合。

  3、模块化、即插即用工作模式

  传统的自动化测试技术:测试脚本之间的函数调用耦合度非常高,无法适应企业变更的快速响应的要求;

  自动化测试框架:框架提供的插件相互独立,能够通过UI可视化模式任意组合,快速响应企业的各类自动化测试需求,而且UI操作便捷,即插即用,能够快速的响应工作过程中的需求变化。

  UI层

  负责进行测试用例管理、数据关系、任务调度、作业监控与分析等

  DB层

  保存用户和自动化程序所生成的信息数据

  Webserice层

  负责运行的数据传输到运行机,并获取实时运行数据

  运行控制层

  负责解析案例生成脚本,控制数据之间的关系,控制脚本运行以及错误处理以及结果数据收集

  图2-1 自动化测试框架运行模式控制图

  4、灵活的信息展现模式

  传统的自动化测试技术:测试过程中需要发布各类信息展现(例如:缺陷内容、错误展现、错误分配、缺陷分析等等),因为信息定义的固化,会导致变更时各类程序的重复维护过程。

  自动化测试框架:在自动化测试过程需要展现的信息都可自定义订制,并通过UI模式进行操作,实现了所见即所得,能够满足企业个性化的需求。

  三、新一代自动化测试框架核心技术

  1、案例解析技术

  案例解析框架技术核心思想在于动态化的脚本来替代静态化的程序,同时提供了高复用性、独立性等设计思想来规避传统自动化测试模式的缺点,从而使得自动化测试真正的应用企业实际测试工作中。

  案例解析技术工作活动:

  ● 首先以需求为源头,制定测试需求,设计相关的测试案例;

  ● 框架自动解析案例,并转换成可运行的测试脚本;

  ● 框架驱动测试运行,并进行实时数据交互以及自动化测试过程的其他工作。

  案例解析技术解决的测试难题:

  ● 自动化测试脚本维护时间锐减,后期主要维护的是测试案例,而不再是脚本;

  ● 自动化测试活动实施者角色前移,实施的主体人员是手工测试人员或者业务人员,因为实施阶段主要是在案例的管理过程,然后由计算机自动解析执行;

  ● 解决现在测试活动的一个诟病:“轻案例、重执行”,逐步变为“重案例、轻执行”,从而促使整个测试过程的质量的整体提升。

  2、自动化测试数据管理控制技术

  在功能测试过程中,影响测试质量的一个重要环节即测试数据的质量。如何选择测试数据、测试字段之间组合测试成为永远不可忽视一个关键过程,所以新技术平台花费了大量时间去分析和总结业务测试过程的测试数据之间的关系并进行提炼,设计出一套数据管理模块,采取数学模型帮助设计者在无限的测试数据组合中刷选有限的组合,确保较高的测试覆盖率。

  在大量的业务测试用例数据关系的分析、数据运行过程操作模式之中,提炼出一套完整测试数据关系模型(如图3-1),并将此模型集成到新一代自动化测试平台中。

  ● 为了确保不同用例之间测试数据的独立性、复用性管理控制,自动化测试平台将测试数据分为:

  → 专用数据(只能被指定案例所调用);

  → 共用数据(可以被所有案例所调用);

  → 用例关联(采取关联控制,使得在有限的用例之间数据可以被复用)。

  ● 为了降低测试数据输入的冗余性,新平台设置数据本身的各类关系,降低测试数据的重复输入,并提供测试数据之间的运行逻辑,保证测试数据管理的可视化和有效性。

  ● 为了满足测试数据的多样性,自动化测试平台提供多模式的数据输入控制:

  → 提供接口,可以将各类模式的数据导入到新平台中进行数据管理;

  → 为了满足数据库的动态校验要求,新平台提供了SQL以及StoreProc的两种模式,使得平台能够在测试运行时实时从数据库中获取数据信息。

  ● 根据各类约束条件,从无限的测试数据组合中筛选出有效的测试数据参与测试

  测试设计师根据现实的工作需要,在测试数据管理器中设置和维护各类参与测试的数据,平台将根据设计师预定义的关系实时的去计算或者获取测试数据,实现测试数据管理的可视化、测试运行的自动化,同时在平台的实施监控模块监控数据调度模式。

  总之,根据新一代自动化功能测试框架技术,可以进一步提升测试自动化程度,将业务人员和测试人员进行有效的对接,更大程度的降低测试脚本的维护成本、简化测试数据的管理,实现案例驱动测试的策略。同时,可以极大的提高脚本的复用和组合使用。另外,借助于自动化测试框架,可以进一步强化自动化功能测试中的测试管理思路,有效的提升测试管理效率,有效的沉淀积累测试过程资产,加强测试过程中的测试用例、测试脚本的复用工作,集中整理归纳各种业务系统中出现的缺陷信息,为后续的测试工作积累宝贵的测试资产。

  图3-1 测试数据关系模型

关键字:自动化
  • 网友评论
  • 社交评论