使用STAF/STAX框架缩短开发时间并提高软件质量

本文简要地介绍 STAF/STAX 测试自动化框架,并且展示如何使用它来构建一个框架,在复杂试验台中实现测试自动化和持续集成。

回归测试往往用于确保软件变更不会在软件中引入新的问题或故障。另外,还可以用它来确保您不会重新引入之前修复的错误。如果软件对第三方组件和库有诸多依赖项,比如 XML 处理 API 或 JPA 等数据库提取 API,那么新问题的引入会非常常见。在这些情况下,数据库架构的一个小小的改动就可能会导致难以预测的应用程序行为变更。如果软件本身很复杂,对常见代码段的一个小小的更改都会招致不可预测的副作用。

当需要对某个中间件软件的先前版本或不同平台提供持续支持时,这提高了在维护或开发期间引入问题的概率。在某个数据库中间件版本中有效的补丁或功能可能在不同的版本中带来灾难性的后果。而且在添加功能时,只有中间件的较新版本可用的 API 可能会给使用先前版本的客户端带来损害。在支持不同平台时,要对依赖于命令行接口或脚本的功能进行完全测试。否则不同的行为可能会在 Windows® 和 Linux® 等不同的操作系统中出现。

回归测试针对整体软件,并考虑该软件与其他组件或应用程序的相互依赖性。在开发期间,要专注于正在开发的特定模块或功能。您可以在实现模块或功能时递增式地测试它们,而且有时需要使用存根引用其他尚未实现的功能。如果增量测试结构化良好并且足够独立,以至于您可以在给定环境中(比如必要中间件软件、机器或配置)重复它们,那么您可以在未来的回归测试中重用它们。这一结构及其独立性减少了返工,并改进了测试质量,因为每一段代码在开发时都经过详细审查测试。

当您在一组架构、操作系统和中间件版本上测试开发中的功能时,可以考虑使用自动化增量测试。以针对 Linux、AIX®、Windows 7 和 Windows XP 支持的一个命令行接口为例。在开发期间,在这些操作系统中每个操作系统上执行测试可能都需要花费不少资源和时间。在某些情况下,测试新功能所需的时间超过开发它所需的时间。考虑到许多功能是由不同">开发人员在一个项目中同时开发的,这一情况变得更加麻烦。让这一格局变得更加复杂的是,用于测试的机器数量通常是有限的,即使使用的是虚拟机。测试通常需要一个预配置环境,包括数据库服务器、应用程序服务器,等等。专用于测试的机器越多,更新和配置它们所需的时间就越多。由于自动化增量测试由一个工具在一组环境或试验台中运行,您可以节省在每个环境中手动运行测试所需的时间,从而更好地共享资源。

自动化回归测试可以使用与增量测试一样的试验台。例如,将回归测试设置为一天运行一次之后,无需消耗通常可能用于开发和增量测试的资源。您可以设置冗长的回归测试,让它按照更长的间隔运行,比如在周末运行。

STAF/STAX Framework

软件测试自动化框架 (STAF) 是一个开源框架,包含专门适用于构建自动化解决方案的一组内置服务。这些服务是可重用的组件,提供了 STAF 中的所有功能。每个 STAF 服务提供一组特定功能,比如:

日志记录 文件系统操作 安全性和进程调用 一组请求的定义

其他服务,比如电子邮件服务、FTP 服务和计时器服务,都不是内置的,但可轻松插入框架中。

STAX 服务是一个在 Java 环境中实现的特殊服务,或支持通过 XML 调用其他 STAF 服务的执行引擎。它还提供了以下支持:

并行执行 执行控制的用户定义的粒度 对嵌套测试用例的支持 控制执行时长的能力 在运行时导入模块的能力 对现有 Python 和 Java 模块和包的支持

STAX 定义的 XML 元素能够像编程语言一样运作,包含语言的所有必要元素:

循环 条件 错误处理 函数调用

可以使用元素脚本嵌入 Python 脚本,从而支持更复杂的逻辑和对于定义 Python 模块的访问。

Python 代码由 Jython 运行。Jython 选择使用 Python 编程语言语法,让其在 Java 平台上运行。这样可以实现与 Java 库和其他 Java 应用程序的集成,从而提高 Java 开发人员团队的工作效率。

STAX 的一个有趣特性是,它允许导入包含辅助功能的现有 STAX 文件。该特性改进了自动化代码的组织和代码的重用。

STAF 作为一个守护进程运行,监听来自预配置端口的请求。STAF 服务通过这些请求加以访问,这些请求是所需命令的指令。 Stafcmd 是 STAX 定义的元素,可用于表示一个请求。如 清单 1 所示,一个请求包含:

命令运行的位置 运行它的服务 实际命令

清单 1. 清单 1 一个请求的示例

<stafcmd> <location>'lab01.mydomain.com'</location> <service>'FS'</service> <request>'CREATE DIRECTORY /tmp/CVT_TEMP' </request></stafcmd>

清单 1 中的代码请求在机器 lab01.mydomain.com 上创建目录 /tmp/CVT_TEMP。定义该命令的服务是 ‘FS’(文件系统服务)。如果命令运行位置不是 ‘local’,请求命令的 STAF 实例发送请求到指定位置。这一通信对于调用方来说不明显。一个在本地机器中创建目录的请求拥有相同的语法。惟一的区别在于,由您指定位置 ‘local’,然后 STAF 了解到必须在本地(而非其他机器中)运行命令。

时间: 2024-08-21 15:39:33

使用STAF/STAX框架缩短开发时间并提高软件质量的相关文章

在ADO.NET中用参数化查询缩短开发时间

ado 一段时间以来,存储过程一直是企业应用程序开发数据访问的首选方法.存储过程的安全性更高.封装能力更强,并能执行复杂的逻辑,且不会打乱应用程序代码.但是,它也存在一些缺点: • 开发者倾向于在存储过程中加入商业逻辑. • 更改过程时必须改变开发环境. • 查找过程所需的参数比较费时. • 许多时候,存储过程提供的功能超出所需. 嵌入到应用程序代码中的内联SQL代码是数据访问的另一个常见方法.虽然企业在开发过程中很少用到这种方法,但许多小型项目应用这种类型的数据访问方法.应用内联SQL可以实现

越来越强大的SAFS/STAF/STAX自动化测试框架

上一次,向大家介绍了Openqa.org社区提供的.适合web应用的.开源的自动化测试框架 (开源测试工 具/社区(Selenium /OpenQA.org)--今非昔比 ).最近,看到STAF+STAX发布了最新版本,包括许多服务 组件,可以看出STAF+STAX的框架越来越完整,值得向大家推荐. September 24, 2008: STAF 3.3.1, STAX 3.3.4, Cron 3.3.3, Email 3.3.2, Event 3.1.2, EventManager 3.3.

网站分析:缩短网页开发时间的十大方法

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在当今的开发环境之下,快即是好. 原文:http://sixrevisions.com/web-development/10-ways-to-cut-down-web-development-time/ 在当今的开发环境之下,快即是好. 当今诸如"快速应用开发 ","敏捷软件开发 "以及"异步JavaScript和XML "(如今我们甚至无法耐心地等待网页的重新载入)等流行词汇和术语让你见识到究竟身

使用STAF/STAX 实现测试自动化和持续集成

关于回归和增量测试 回归测试往往用于确保软件变更不会在软件中引入新的问题或故障.另外,还可以用它来确 保您不会重新引入之前修复的错误.如果软件对第三方组件和库有诸多依赖项,比如 XML 处理 API 或 JPA 等数据库提取 API,那么新问题的引入会非常常见.在这些情况下,数据库架构的一个小小的改动就可能会导致难以预测的应用程序行为 变更.如果软件本身很复杂,对常见代码段的一个小小的更改都会招致不可预测的副作用. 当需要对某个中间件软 件的先前版本或不同平台提供持续支持时,这提高了在维护或开发

使用 CodeIgniter 框架快速开发 PHP 应用(二)

原文:使用 CodeIgniter 框架快速开发 PHP 应用(二)二分钟: 建立一个 CodeIgniter 网站 用CI建一个网站很容易. 这一章很短,解释了用CI制作网站时发生了些什么,哪些文件被创建,让我们来瞧一瞧: . 创建网站需要什么软件? . 安装 CI 文件: 一个简单的下载和解压缩操作 . CI 的基本设置: 有哪些文件夹及它们是如何组织的 . CI 安装时默认的控制器和视图 . 一些简单的修改来演示CI如何运作 准备知识 CodeIgniter 有较好的版本兼容性. 它工作在

使用 CodeIgniter 框架快速开发 PHP 应用(一)

原文:使用 CodeIgniter 框架快速开发 PHP 应用(一)对 CodeIgniter 的介绍 大多数PHPer都想写出运行状态良好的应用程序,而且希望尽可能做得简单且不费事.这篇文章是有关 CodeIgniter的(以后简称CI),CI是一个达成上面目的的所谓框架. 如果你只是要达成一个最终的结果,而把中间所有的编码细节和复杂统统丢给一个框架,CI是你最好的朋友. CI有很多优点:免费, 轻量级, 容易安装, 它能使你的编程生涯变得很轻松. 这一章我们会告诉你: . CI 能为你做什么

使用 CodeIgniter 框架快速开发 PHP 应用(四)

原文:使用 CodeIgniter 框架快速开发 PHP 应用(四)使用 CI 简化数据库开发 你学习CI 是因为你想要使编程更容易和更有生产力.这一章讲述CI的Active Record类. 如果CI只提供一个Active Record类,它还是物超所值的.当然,CI是免费的,只不过我要强调Active Record(以后简称AR)类的价值是非常高的,它是你提高生产力的主要工具. AR使你以最小的代价获得最大的回报. 它简单,易于使用和维护. 这一章描述CI如何连接到一个数据库,你如何使用AR

.NET 开发助力器——Deklarit,用它可以少写60%的代码,节省一半的开发时间

问题描述 Deklarit概述:Deklarit将VisualStudio.NET变成一个数据.业务层RAD工具.它整合入VisualStudio.NET中并提供一套简单的方法来描述应用程序的业务对象(BusinessComponents)和数据视图(DataProviders).Deklarit将自动为你创建和维护一个标准化的数据库结构和强类型化的DataSet和DataAdapters.使用Deklarit你将获得使同一个商业逻辑通过BusinessFrameworks应用到不同的UI中的能

web项目经理手册-【2】开发时间估算

       项目经理制定项目时间表的时候,需要估算每个任务所需的时间,其中开发任务中模块的分配和时间估算是其中最主要的部分.本篇专门就这部分作一个阐述. 一.在分配模块和估算开发时间时,我们需要把握的原则和目标: 1.保证项目整体的进度. 2.有助于确保开发编码的质量. 3.有助于提高开发编码的速度. 二.每个公司都拥有自己的技术框架,开发人员主要的工作通常投入在具体的商业逻辑上. 通常每个模块所需的开发时间取决于以下三个因素: 1.该模块的商业逻辑的复杂程度. 2.开发人员的技术水平和对项目