首页 / 软件开发 / 数据结构与算法 / 使用STAF/STAX 实现测试自动化和持续集成
使用STAF/STAX 实现测试自动化和持续集成2013-10-08 IBM Fabio Negrello关于回归和增量测试回归测试往往用于确保软件变更不会在软件中引入新的问题或故障。另外,还可以用它来确 保您不会重新引入之前修复的错误。如果软件对第三方组件和库有诸多依赖项,比如 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 模块和包的支持