第1部分:部署重现缺陷的环境
简介:本文为系列的第一篇文章,首先简述了系列的主旨和每部分的内容。然后针对敏捷开发和测试中开发人员重现测试人员开出的缺陷这一问题,具体描述了如何用IBM工具Rational Automation Framework以及IBM Workload Deployer快速记录和部署重现缺陷所需的测试环境,从而让开发人员可以更快速准确地获得重现缺陷的环境。
系列背景简介
在敏捷开发的大环境下,产品需要根据用户的需求不断进行变化,产品版本的研发周期越来越短,产品的交付速度越来越快,只有开发和测试人员之间保持更加有效更加频繁的交互才能保证产品按时高质量地交付给用户。其中,开发人员和测试人员之间交互最多的部分就是缺陷 (defect) 问题的讨论。当测试人员发现问题并提交缺陷以后,开发人员需要重现测试人员发现的问题,并进行研究。最终针对缺陷的产品代码改动被开发人员提交到产品中,测试人员需要迅速对产品代码的改动进行验证,以确认缺陷不再出现在产品新的版本中。
图 1. 缺陷生命周期示意图
为了适应产品交付速度的加快,我们从缩短缺陷验证周期的角度描述了如何使用 IBM 工具来帮助我们。以下是系列文章的三部分内容:
● 敏捷开发和测试中重现缺陷和验证缺陷解决方案,第1部分:部署重现缺陷的环境
● 敏捷开发和测试中重现缺陷和验证缺陷解决方案,第2部分:重现缺陷
● 敏捷开发和测试中重现缺陷和验证缺陷解决方案,第3部分:验证缺陷
一个具体的实例
"Garden of Summer"是一个基于 IBM WebSphere Application Server 中自带的以销售鲜花、水果、绿植为主的电子商务网站。
图 2. WAS 中的电子商务网站实例
时,开发人员需要重现测试人员发现的问题并进行研究。在重现缺陷的过程中,开发人员用于重现缺陷的环境往往与测试人员的测试环境存在不一致,而这些配置的详细描述信息又不能非常准确没有疏漏的填写在缺陷的描述中,这样开发人员不能方便重现缺陷问题。为了保证环境配置一致,开发人员和测试人员之间需要花费大量的交流时间,或者我们经常做的是测试人员直接把测试环境交给开发人员去使用。
例如上述的电子商务网站应用,可能存在复杂的应用服务器配置,所以如何方便快速搭建一个同样的发现缺陷的环境使我们急需解决的。
下面我们来分享一下如何使用 Rational Automation Framework(RAF) 来记录测试环境的配置信息,然后直接通过 RAF 和 IBM Workload Deployer 的无缝集成实现缺陷环境的云端重现。
IBM Rational Automation Framework 简介
IBM Rational Automation Framework 能够自动执行中间件环境构建、中间件管理以及应用程序和相关工件的部署。这种可定制且可扩展的框架支持 IBM WebSphere?中间件、Oracle WebLogic Server 和 JBoss Application Server。现在,您可以利用该产品降低成本,自动执行复杂的管理和部署任务,并且可以掌控中间件环境。要点是:
● 降低运营成本 - 通过降低有关部署、维护及合规性的成本,以及与管理大型异构中间件相关的其他开支,降低运营成本。
● 提高生产力 - 通过自动执行易于出错的手工任务提高生产力。Rational Automation Framework 使团队能够利用较少的资源完成更多的工作,并且缩短完成任务所需的时间。
● 改进应用程序交付 - 通过提高速度、一致性和质量,使您能够使用一致、准确且可复用的流程交付应用程序。
RAF 是一个定制化的,并且可扩展的自动化框架,它包括了中间件自动化管理,应用自动化部署以及产品安装和补丁安装的自动化。从 RAF 3.0..0.5 版本开始,RAF 实现了与 IWD/PureAS 系统的集成,并且作为 Advanced Middleware Configuration 成为了 IBM PureAS 的一部分。这部分的集成,使得 RAF 有能力读取一个现有的环境信息,同时在 IWD/PureAs 系统中生成一个与现有的环境相同配置的一个虚拟系统模式,用户可以使用该虚拟系统模式,在云环境中生成一个与现有环境相同配置的环境。
IBM Workload Deployer 简介
IBM Workload Deployer 是一种硬件设备,提供了对 IBM 中间件虚拟映像和模式的访问,支持轻松、快速、重复地创建可在专用云中安全部署、管理的应用程序环境,加速了将应用程序部署到云和虚拟化环境的过程。要点是:
● 在单独一个模式中利用多个虚拟映像的功能。
● POWER7 支持。
● 增强的部署配置文件自定义。
● 支持 WebSphere Application Server Hypervisor Edition for Red Hat Enterprise Linux Server on System z。
● 提供 WebSphere Application Server Hypervisor Edition - Intelligent Management Pack。
● 通过预先定义的模式和虚拟映像加速 WebSphere 环境的应用程序部署,并大幅缩短设置时间,从数周缩短到短短几分钟。
● 通过消除妨碍生产力的手动流程提高敏捷性。
● 作为安全、防篡改的映像和凭据存储库,确保共享环境中的安全性。
● 全面整合来自 IBM Rational?和 Tivol?的开发和服务管理工具,提供端到端支持。
具体实现
下面我们来描述一下具体使用的方法,这里我们将分为两个部分:
● 缺陷环境配置的捕捉和云端化
→ 捕捉测试人员的环境配置
→ 生成云端虚拟模板 (Virtual System Pattern)
● 部署缺陷环境
→ 实例化云端虚拟模板,部署重现缺陷环境
→ 同步环境配置到已存在的开发人员环境
第一部分:缺陷环境配置的捕捉和云端化
RAF 针对中间件信息的监控提供了集中不同的模式供用户使用:
● Import 模式
● Execute 模式
● Compare 模式
● Augment 模式
● Promote 模式
● Preview 模式
首先我们要捕捉测试人员环境配置信息,这里需要用到 RAF 的 import 模式,这个模式中 RAF 可以把中间件的配置信息捕捉下来并存储到 RAF repository 中。
图 3. RAF 的 import 模式
第一步:打开 RAF 登录界面,输入用户名和密码。
图 4. RAF 登陆界面
第二步:点击 Env Gen( 生成环境 ) 窗卡,选择 Read Existing Cell( 已存在的单元 )
第三步:输入操作系统的登录信息,进行信息验证
图 6. 当前应用服务器单元的配置信息界面
第四步:输入 Websphere Application Server 的 profile 路径并且进行 WAS 路径验证,默认值 (linux 示例:/opt/IBM/WebSphere/Profiles/DefaultDmgr01)
图 7. WAS profile 目录输入界面
第五步:输入 WebSphere Application Server 的 security 信息
图 8. WAS 安全信息输入界面
第六步:这里首先给出一个 Virtual System Pattern(VSP) 的名称,这个名称相当于我们正常理解的 VM template,然后需要用户提供测试环境的信息,hostname,用户名和密码,最后一个选项是提示用户是否覆盖已经存在的同名的 VSP
图 9. IBM Workload Deployer 信息填写界面
通过上述操作我们可以在 RAF 中看到相关的环境配置信息
图 11. RAF 中存储的环境配置信息
同时我们也可以在 IWD 中 Virtual System Pattern 看到已经创建的虚拟模板。( 后面环境创建时会有屏幕信息展示。)
第二部分:部署缺陷环境
上面我们已经通过 RAF 捕捉了环境 ( 中间件 ) 配置信息,并把这个环境的虚拟模板云端化了,下面我们要通过这个虚拟模板把环境实例化,实现云端部署。
在 RAF 读取环境信息的同时, RAF 在与 IWD 的集成环境当中,生成了一个虚拟系统模式。这个虚拟系统模式包括了与现有环境信息相同的中间件拓扑结构和配置信息,以及 RAF 的相应信息和脚本文件。
图 12. 通过 RAF 和 IWD 集成生成的 Virtual System Pattern
第一步:登陆 IWD,并找到之前创建时命名的 Virtual System Pattern
图 13. IWD 主页面
图 14. Virtual System Pattern 中节点拓扑
第二步:选择部署 (deploy) 进行实例化:
图 15. 部署确认界面
第三步:部署结束后开发人员会获得新的虚拟机的 hostname,用户名和密码。
第三部分:同步捕捉的测试环境配置到开发人员环境
在工作中我们还常常会遇到这样的问题,开发人员已经自己搭建了一个环境,他希望能够把自己的环境配置变得和测试人员发现缺陷时的环境一样,可以么?
答案是肯定的,我们可以借助 RAF 的另外两个模式:Compare 模式和 Execute 模式。Compare 模式可以对比开发人员的环境配置和之前我们捕捉的测试环境的差异,然后通过 Execute 模式,可以把这个开发人员的环境配置变成测试环境配置。
第一步:对比开发人员的环境配置和之前捕捉的测试环境配置
图 16. Rational Automation Framework Client 界面
图 17. Compare 模式对比的结果
第二步:针对测试人员和开发人员环境配置的不同,在 RAF Client 中进行相应的修改。
第三步:在 RAF Client 中,右键点击测试人员的环境,选择 Run Action.
图 18. Execute 模式执行界面
第四步:使用 Execute 模式执行 Dynamic Action was_common_configure_all,可以把开发人员的环境配置同步成测试环境配置
图 19. Execute 模式执行界面
使用完毕后开发人员还可以把环境配置变回去。在 RAF Rich Client 中,选择一个 Scope 点击右键,选择 Restore from Local History。选择需要恢复的版本并再一次执行 Execute 模式,用户可以轻松的讲配置恢复到上一步执行 Execute 之前的某一个环境配置信息的版本。
图 20. 恢复到历史版本界面
目前我们已经通过 RAF 和 IWD 把重现缺陷所需的环境部署在了云端,下面开发人员就可以在这个环境上安装被测产品并根据测试人员在缺陷中的描述重现缺陷问题,关于如何提高这部分的效率,我们将在系列第二篇中详细讲述。
未来展望
捕捉更多环境信息
目前使用 RAF 我们只能捕捉应用服务器等信息(IBM WebSphere Family Product,IBM WebSphere MQ Series,WebSphere Message Broker ,Oracle WebLogic ,Red Hat JBoss),但是一下操作系统相关的信息还不能准确捕捉,我们还需要借助其他工具,比如 IBM Tivoli 的产品获得更多测试环境的信息。
最新内容请见作者的GitHub页:http://qaseven.github.io/