探底服务虚拟化工具 应对服务测试挑战

快速推进合成应用的部署让质量管理团队的度日艰难,因为有些服务已经完成并在运行,而另外一些还在开发中。不幸的是,所有的这些服务都要经历不断更新的版本。随着内容的不断更新,企业后端系统和互联网天生的固态正影响着虚拟化测试。

2003年,Parasoft声称其弃产品SOATest体现了服务虚拟化概念。这一术语是在2007年由iTKO在LISA平台发布时发明出来的,2011年CA收购了iTKO。近年来,包括IBM及惠普在内的主流企业软件供应商已经开发或收购了一些服务虚拟化工具,服务虚拟化已蓄势待发,准备成为主流的工具类型。

CA LISA服务虚拟化

服务虚拟化

服务虚拟化成为一类新兴的组件建模工具的基础。利用一种新的仿真方式,在软件服务实现之前,开发团队就可以与这些服务协同工作了。这涉及到在创建高质量的复合应用时遇到的某些最大的瓶颈,并帮助敏捷开发工作,努力跟上快节奏的Web应用的步伐。

在应用开发生命周期中植入虚拟化的想法值得推广,而且会令面临困境的企业感到兴奋。CA Technologies服务虚拟化高级顾问王志明表示:“这会使得包括开发、测试及运营团队在内的IT组织管理可以管理典型的成本、质量及时间进度的三角关系。”

服务虚拟化工具使得软件开发团队可以在已有或计划服务的上下文中,使用预期要交互的新代码测试新服务的性能及行为。这降低了在开发中测试代码的门槛,使得在开发过程可以更早更容易地发现缺陷,并打开了应用敏捷开发之门。

最近的一项调查发现组织与平均8到10个受测应用存在依赖关系。而开发者在任何时间点上只能接触到这些依赖关系的30%。服务虚拟化工具可以移除若干开发过程中对测试硬件可用性、服务及隐私方面的约束。

服务虚拟化解耦约束

服务虚拟化解耦约束

通过服务虚拟化,开发团队还可以针对新服务的特定行为进行测试,而不是等待代码开发完毕再开始。极大地改善并加快了寻找、解决缺陷问题的能力,同时强化了朝着更敏捷、高度迭代开发技术趋势的演进。

传统上开发者已经建立了stub和mock来表示新代码需要交互的服务。这一方案把开发者的注意力从写代码上转移,从而减少了其有用的输出。开发者针对mock进行测试的时候,他们将服务预期表现出来的行为进行编码,而不是根据实际情况进行。而最令人生厌的集成问题就是由于不好的假设导致的。服务虚拟化对代码有可能需要交互的服务的行为建模。这跟对所有的底层代码逻辑都进行建模相比要容易得多。

针对客户在开发复杂应用时所遇到的系统约束和测试数据相关性等问题,CA LISA产品套件可对传统虚拟化技术不能涉及的无法任意使用的系统进行建模和模拟。通过采用CA LISA,多团队可以进行并行开发,更好地管理测试数据和用例,并减少所需的实时环境数量。

CA LISA服务虚拟化

CA LISA服务虚拟化

在以往的开发流程中,团队通常会花费30%的时间进行开发,剩余的时间则都进行服务整体验证等。在现场演示中,CA LISA虚拟化服务更容易实现和管理,不到几分钟就能建立几个虚拟化服务了。

另外,考虑到服务仿真模拟中的数据安全问题,王志明在演示过程中介绍了CA LISA的“去敏感化”功能,保护了客户环境的真实数据。而且目前,LISA支持大部分主流传输协议,包括HTTP、JDBC、TCP、MQ等,同时也支持自主开发的协议加入到环境中。目前CA LISA按照Licence出售,提供功能测试和性能测试两个版本。

CA Technologies中国区总经理孙志伟表示市场已经准备好聆听服务虚拟化在帮助管理成本方面能做些什么。这已经在金融服务、零售、电信及其他组织内部署了高度复合的应用。在测试组织无法接触大型主机的时候这很有用。此外,云计算也是服务虚拟化测试的推动力之一。