使用 Sencha Test 持续交付

原文链接:http://blog.csdn.net/lovelyelfpop/article/details/52297478


英文原文:《Continuous Delivery with Sencha Test


拥有一个端到端的自动化过程会使企业组织获益颇丰。真正的 DevOps (开发Development和运维Operations两个领域的合并) 是实现开发、测试和运维的同步,并且整个过程完全自动化。

许多开发团队不进行自动化测试, 因为他们认为这会减慢开发速度。这个问题通常是由于孤立的工具使得很难把测试集成到源码控制仓库中, 还要在构建和持续集成系统过程中执行它们,识别出失败的测试并对其做出反应也很困难。除非团队将单元测试和端到端测试纳入自动化流程, 否则他们的应用程序将容易在生产环境中出现缺陷和运行出错。

本文, 我们将讨论如何实现完整的端到端的自动化, 通过结合两个测试的运行和测试的报告,最终在某种程度上, 开发人员可以很容易地理解并加以实践。

开发流程

开发现代敏捷项目需要复杂的测试和过程工具一起工作, 可以把它们集成到你的开发过程中。关于集成和自动化,有很多开源和商业版的产品, 持续集成(CI)解决方案尤其受欢迎。

大多数团队通过自动化构建和部署流程, 集成源代码控制和构建系统, 以确保构建错误等, 冲突和丢失文件等错误会被自动报告,以便快速解决。持续交付(Continuous delivery, CD)在此基础上更进一步, 精简了从交付产品到生成环境的过程。

表现良好的应用程序不仅仅是构建高效, 而且精心测试过。从长远来看,手动测试一个面向用户的web应用程序,而且要跨多个web浏览器和平台,已经被证明是不可持续的, 不可扩展的方式了。手动测试的总体成本可以超过自动化测试的成本的2倍, 因为手动测试在测试阶段需要更昂贵的资源,开发过程中未及时修复缺陷的成本也更高。手工测试如此繁琐,高效的自动化测试的选择也不多, 于是许多团队就不进行严格测试,并依赖于点对点(ad-hoc)的方式。因为发布日程紧张, 构建出来的产品很容易带有未被发现的缺陷, 这些产品在完成有效测试之前,会进入生产环境。

为了有效地把测试合并到CI / CD的过程中, 团队需要理解什么样类型的测试适合自动化的过程, 以及他们采取的工具, 不仅可以能够有效测试, 还能集成到CI / CD过程。如何把测试结果有效地传达给开发团队,是非常重要的, 因为开发人员通常需要知道关于测试所执行的上下文环境的大量信息, 才能了解测试结果。

软件开发和测试

为了更短的发布周期, 更快的应用程序部署,很多企业组织转向了敏捷开发。团队开发人员在对本地工作目录树进行单元测试之后,把代码签入源代码源管理系统中(顺便说一下,这是一个高度推荐的做法)。这段代码会被团队里其他开发人员审查,然后合并到他们所写的代码中。在这个阶段,应该对集成代码库做一些其它的测试:

  • 单元测试 (Unit tests)

  • 集成测试 (Integration Tests)

  • 功能端到端测试 (Functional end-to-end tests)

单元测试允许开发人员为单独的一段代码创建测试, 比如一个数据模型(model), 并确保在模型中定义的所有验证逻辑都能正常运行。集成测试则包括对相关组件更广泛的测试, 比如创建视图(View),测试视图, 并在测试完成后销毁视图。功能的端到端测试甚至能跨越广泛整个应用程序的上下文, 比如最终用户可能会操作的流程。

以这种方式测试代码可以帮助开发团队效率最大化, 同时提高产品质量。有限范围的快速测试可以经常运行,以便快速找出某些问题, 而费时, 昂贵的大范围测试则可能运行在那些不太可能会失败的代码上, 因为它们已经通过了许多其他测试。


理想情况下, 这些测试将运行在许多不同的应用程序上下文环境中, 如与api交互、数据库操作、并发性和负载场景, 等等。通过及时有效地、自动测试代码的各个方面, 开发团队可以迅速识别并解决问题 —— 实现接下来更加可预测的开发时间表, 更高质量的代码, 以及生产环境下更少的缺陷。

能够完成严格测试的这些团队,通常要避免人工测试,还要创建一个基于开源框架的定制的自动化测试框架,使用大量的定制开发的代码。为了在多个浏览器和平台保持可用性, 这些定制的解决方案通常工作在web客户端或DOM级别。由此产生的测试通常难以开发,也很脆弱, 因为开发者需要理解并解决特定于浏览器的兼容性问题和底层的DOM操作。

将 Sencha Test 集成到你的工作流程中


Sencha Test 旨在通过提供一个全面的单元测试和端到端功能测试 JavaScript 应用程序的自动化解决方案,来解决这些测试问题。开发人员和测试自动化工程师可以使用行为驱动开发(BDD)策略来创建测试。Sencha Test 利用 Jasmine v2.4 测试框架和其提供的 api, 使你能够充分与 Ext JS 应用程序中的组件交互。

当你将测试添加到你的工作流中时, 你已经有了应用程序服务器, 包含你的项目的本地工作区, 和运行了应用程序的浏览器。Sencha Test 包括所有的测试 api, 测试执行逻辑, 和错误报告界面, 它使你的团队有效地创建必要、相关的测试。

Sencha Test 的神奇之处是它的命令行工具(CLI),它使得 CI / CD 服务器, 包括 Jenkins 或 TeamCity, 能在适当的时间来执行相关的测试。这些测试运行在浏览器农场(browser farm), 不管是内部解决方案,比如 Selenium,还是基于云计算的解决方案, 比如 Sauce Labs, 以确保可以根据工作负载, 以及你需要支持的浏览器类型,来扩展测试的规模。要了解更多, 请阅读我们的博客 Using Sencha Test with Jenkins and Selenium Grid.

测试结果存储在Sencha Test 档案库, 它为测试人员和开发人员提供了丰富的接口, 可以用于评估测试结果和历史。档案库经过优化, 能帮助用户有效地根据上下文理解失败的测试, 以便问题可以尽快解决。

结论

Sencha Test 是一个功能强大的工具,能为提高你的开发和测试工作效率, 实现完整的端到端自动化。使用简单的集成点和利用现有的开箱即用的功能, 你可以很容易地把运行在你 Ext JS 应用程序上的自动化、无人值守的测试,作为 CI / CD 过程的一部分。你可以在整个开发过程中测试,在问题出现的时候, 快速定位并解决它们。你的测试也将更加持续稳定, 并且减少因测试失败、或耗时的手工测试而带来的对下一阶段的延迟。





欢迎加入Sencha Touch + Phonegap交流群

1群:194182999 (满)

2群:419834979

共同学习交流(博主QQ:479858761

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值