转载

应对持续挑战

最近的历史证明了测试的重要性和价值。当时间线设置不当,被拉得很长时,测试是可以简化的区域之一。美国最近的医疗问题已经证明,测试非常重要。将应用程序交付给公众时,无论是通过政府、企业还是非营利机构,都必须交付价值。当站点没有正常运行或性能不足时,测试体制(特别是测试体制)的缺乏往往是罪魁祸首。

DevOps 的运动和方法都始于开发人员与运营人员之间的协作。它反映了推动如今高度随机的市场的全渠道现状背后的紧迫性 — 这个巨大的全球市场不仅是企业的工具,也是客户的工具。这个受万物互联支持的环境是一个充满挑战的舞台,需要不断监视才能确保组织的市场和财务地位。持续的集成和交付周期(即 DevOps)使得创建适当的测试数据集充满了挑战,而必须对其在全渠道情况下执行足够测试的需求让这一挑战变得更加复杂。此外,作为新的不可知信息和通信技术模型的另一个关键组件,除了测试系统性能和可伸缩性之外,迁移到云还需要在云中测试用户体验。

测试是 DevOps 的必要组件

DevOps 包含测试。事实上,质量保证 (QA) 和测试的角色在 DevOps-敏捷模型中也很重要,它将开发和测试结合在一起。持续集成和持续交付需要持续测试。传统的测试人员角色(在开发之后和运营之前)正变得过时。如今的一种常见做法是让开发人员和测试人员作为一个团队共同协作。在这个环境中,他们的工作几乎同时进行的。

测试与开发和运营的关系可用图 1中所示的图表来表示。

图 1. DevOps 维恩图

应对持续挑战

持续测试通过使用虚拟化的依赖性服务来消除瓶颈,减少了配备和简化测试环境创建流程的成本。除了降低与测试相关的成本外,实现持续测试还有助于开发人员平衡质量和速度。持续测试对运营人员也有巨大的价值,使他们能够看到创建的环境在支持应用程序方面的表现,为团队提供执行所有必要增强的时间。及早地向一个类似生产的环境公开应用程序,在某些情况下,从开发流程一开始就公开了。这使得团队能够使用可重复的交付流程更早地测试和验证应用程序。

当然,测试的工作不会在生产环境中停止。测试还必须在云中执行 — 即执行 TestOps。采用 DevOps 的推动力很大一部分来自对业务能获得更多利润和更快地响应市场需求的需求。在如今的社会感知和快节奏的市场中,速度、敏捷性和洞察是成功的关键。寻求竞争优势的组织必须快速开发和交付应用程序和服务,否则就会被遗忘在历史长河中。

自动化是关键

在 developerWorks 文章 “重新构建 IT 运营重新以实现以应用程序为中心”(参见参考资料获取链接)中,从开发和运营的角度描述了虚构公司 Acme Knowledge Services。现在让我们看看测试。

Acme Knowledge Services 测试人员的第一步是联合开发和运营团队,使用 Git 存储库来存储其测试脚本,使用 Atlassian JIRA 执行跟踪。JIRA 插件 Zephyr for JIRA 提供了 JIRA 的测试管理,使测试团队能够变成 DevOps 团队的全面合作者。Zephyr for JIRA 还添加了对其他涉及规划、开发、错误跟踪和报告的流程的测试功能。

同样重要的是,业务人员能够访问与 IBM® Rational® Quality Manager 提供的质量保证相关的报告和指标。所以 Acme 需要一个在 JIRA 与 Rational Quality Manager 之间通信的工具。这使得测试人员能够在使用 JIRA 的过程中与 DevOps 团队合作,并通过向 Rational Quality Manager 提供数据,仍然继续支持业务需求。他们找到的工具是 CM-Logic JazzConnect-JIRA,该工具使组织能够同步 Atlassian JIRA 和 Rational Quality Manager。

测试数据仍需要管理

测试数据管理 (TDM) 对敏捷开发尤为重要。在每次交付中,都必须测试代码,因为持续集成和持续交付需要持续测试。测试要具有价值,必须适当地设计数据,以便可以支持迭代式测试运行,同时实现一种严格的数据治理体制。

DevOps 依靠 TDM 提供合适的数据来支持项目开发。参见图 2。

图 2. 测试数据管理

应对持续挑战

此环境中的 TDM 可能变得非常复杂且容易出错,更别提一些安全隐患或法律担忧。解决 TDM 难题是基于 DevOps-敏捷的项目取得成功的前提条件,因为 TDM 是想要幸存下来的组织必须提供的功能。

Acme 决定依靠 IBM InfoSphere® Optim™。InfoSphere Optim 调节测试数据管理流程,确保所有策略和标准在整个生命周期中都得到遵守。它加速了更新的测试数据的交付,通过屏蔽敏感数据来降低风险。

回页首

TestOps,因为它永远不会停止

目前的测试体制的主要问题是,测试会在应用程序部署到生产中后停止。此模型不再可行。测试必须在开发中开始,延续到生产中,只在应用程序退役时才终止。在传统上,测试人员的质量信号来自测试结果。在大数据时代,测试人员能够且必须开始使用来自其质量战略中包含的真实用户和真实部署的数据信号。如图 3所示,当在云中执行测试,而且测试基于起源于组织的自有系统的大数据信号时,您就拥有了执行 TestOps 的基础。

图 3. TestOps 图表

应对持续挑战

TestOps 从在生产环境中实际运行的服务获得其质量评估结果。它利用实际用户交互中固有的多样性来发现在生产前测试器件无法识别的错误。TestOps 提供了真实信息,并因此成为非常宝贵的指标,因为它是测试软件服务和用户交互的自然且有机的方式。要从起源于生产的大数据中获取价值,必须模仿运营团队进行测试,开始关注实时场所以及生产前测试。生产测试的设计不仅要能测量系统的性能,还要能够分析用户体验。必须评估用户体验来确定软件在真实世界中的效力和实用性。

回页首

曝光控制和性能

人们常说您的业务不是您创造的结果,而是您的客户想要的结果。营销人员使用了词汇 零关键时刻 ,它指的是某个人触发其计算机、平板电脑、移动电话或其他设备,并开始了解他或她在考虑的给定服务或产品的过程的关键时刻。这是潜在的商业交易中的关键时刻。如今,移动客户正在使用电话辅助的对比购物来制定决策。理解这类新的、更机智的客户(他们拥有很强的能力来利用移动市场)在经济上势在必行。客户做出选择的时间和方式已发生改变,而且在不断快速演变。这种快速变化必须受到持续监视,系统本身的性能也必须受到监视。

只有 3 种方式来确定客户在您的系统上做什么。您可以:

  • 进行有根据的推测
  • 倾听他们的言语
  • 观察他们的行为

猜测不是很有效。有根据的猜测可以带来正面的结果,但它仍然只是猜测。

询问更有效一些,推荐您使用这种方法,但您可能不会总是提出正确的问题,或以适合给定用户的正确方式来设计这些问题。出于一种或另一种原因,用户可能也希望传达全部事实。

但是,观察用户实际执行的操作和方式,就会了解他们与您的系统的交互方式。因为 Acme Knowledge Services 已迁移到 IBM SmartCloud®,所以它能够在生产中使用各种曝光控制方法来评估其应用程序。这是 TestOps 中的关键,因为云允许您快速反复建立环境。在 IBM SmartCloud 中,可以创建专长模式,并采用这种模式执行各种测试,比如金丝雀部署(canary deployments)、A/B 测试和性能测试。

金丝雀部署

云向测试添加了一个新维度。现在可以执行金丝雀部署 — 一种关键的 DevOps 最佳实践。金丝雀部署允许您基于各种因素来测试一些用户,比如按照浏览器类型、按照位置或简单地按用户比例(比如 10%),向他们公开您想要测试的应用程序版本。

使用网络的人们经常参加某个实体在其系统上执行的测试。站点的新版本在原始代码中通常仍然有效,且可供访问者在访问的情况下激活。两个版本中的系统性能和用户活动的对比为您的分析提供了牢固的基础。

图 4提供了一种基本的金丝雀部署的图示。在这个示例中,这个站点的 1/3 的访问者被定向到系统的 N +1 版,而其他 2/3 被定向到系统的当前版本。如果 N +1 站点经证明是稳定、准确且用户友好的,那么它最终将变成新版本。

图 4. 金丝雀部署

应对持续挑战

金丝雀部署允许您更改测试的用户数量、位置(用户必须来自该位置),甚至是使用的浏览器类型。您可以找到导致意外或不想要的结果的模式。最重要的是,您可以轻松地关闭对 N +1 版本的访问。您不再害怕部署后发现有重大问题。借助金丝雀部署,如果功能没有按计划运行,只需删除对测试的站点的访问即可。

A/B 测试

在 A/B 测试或 分离测试 中,会测试两个或更多的页面,评估系统在通用数据性能和遗留数据的转换上的效力。您应该使用 A/B 测试在客户群感到舒适的熟悉气氛中评估新特性。评估的最少页面数为 2 个页面,最大页面数没有具体限制。

A/B 测试(如图 5所示)有助于确定将人们引导至某个特定页面或一组信息的最佳方式。57% 的转换率比 34% 优秀得多,而且最终会带来巨大的财务差异。

图 5. A/B 测试

应对持续挑战

性能测试

生产性能测试可确保应用程序在最佳的生产负载处理级别上运行。它能够在一个无法在生产期间测试的规模上揭示可能的处理故障。在制造新的汽车、火车或飞机时,会使用模拟器测试设计,但在准备好将车辆用于实际的现场使用之前,仍然必须执行 “路” 试。不驾驶汽车、在轨道上试验火车或让试飞员驾驶飞机,结果将无法想象。

回页首

使用您的大数据

当 Acme 迁移到云时,它选择了 IBM SmartCloud,因为后者支持 OpenStack。它还选择了 IBM InfoSphere BigInsights™ 作为管理其 Apache Hadoop 实现的最佳选择。Hadoop 在处理结构化和(这个方程中的关键元素)非结构化数据时非常高效。Hadoop 和 InfoSphere BigInsights 使您能够评估业务人员每天创建的指数级倍增的数据量。

InfoSphere BigInsights 通过简化构建大数据应用程序的流程,让所需的学习曲线变得扁平。还可以将它用作可查询的归档,这使得 Acme 能够收集、存储和剖析大量可操作的大数据。InfoSphere BigInsights 允许 Acme 建立任务关键型数据和模式,使它部署到的系统精于提取快速且经济的宝贵数据。

Acme Knowledge Services 现在可分析它的大数据,这使组织能够制定更精明、更有意义的业务和技术决策。

回页首

结束语

DevOps 的目的是通过建立不仅包含开发和运营,还包含测试的团队,让复杂混乱的世界变得井然有序。无法实施正确的测试规程和方法,这无疑是任何开发项目的自杀毒丸。敏捷性旨在确保高质量特性和产品的快速交付,而不是它们的微弱幻象。如果企业没有适当地关注健全的测试流程,它会遇到切实的风险,然后不得不告知客户相互规定的交付日期会延迟,或者更遭的做法是,尝试通过某种意图隐瞒真实情况的骗术来欺骗客户。最终,一切都体现在用户体验上,因为您的组织最终就是客户所想的那样。穿上您最佳的数字化外衣,尽早测试,永远不要停止测试。

原文  http://www.ibm.com/developerworks/cn/devops/d-testops-continuous-test/index.html?ca=drs-
正文到此结束
Loading...