Win10事件思考

最近,微软Win10事件在测试圈刷屏了。这个事件讲到,前些年微软新CEO上任之后,为了实现"Windows即服务"(Windows as a Service, WaaS),将Windows原本庞大的测试团队砍掉大半,取而代之的是大量基于虚拟机的自动化测试。结果,虽然Win10的发布频率提高了,然而它的质量变差,用户怨声载道。

这是一个有代表性的事件,它关系到软件的测试策略问题。近些年来,随着敏捷开发,持续集成,自动化测试,DevOps等理念的不断普及和深入,软件的测试策略也随之发生改变。

一个整体发展趋势是,为了应对快速和高频交付的压力,软件测试越来越依赖于自动化。然而,做过自动化测试的人都清楚,越是系统/端到端(E2E)层面的测试,越难以实现自动化。即使实现了自动化测试,也难以让它快速,稳定,覆盖度高。

这意味着,软件测试本质上是越来越依赖于低级别的自动化测试,例如静态分析,动态分析,单元测试,接口测试等。端到端测试虽然也有,但是其空间被大大压缩。

根据测试金字塔理论,投入大量资源到低级别测试是合理的,毕竟它们单位成本低,执行速度快,效果也不错。然而,处于金字塔顶层的端到端或系统虽然单位成本高,耗时长,但是其测试完整性好,接近用户场景,容易发现对用户直接产生影响的软件缺陷。

一个理想的测试策略应该是"两条腿走路",即低级别测试和系统测试各司其职,相辅相成,共同担当软件质量保障的重任。Win10事件之所以发生,正是因为它轻视了"系统测试"这一条腿的缘故。

在一些情况下,这种平衡状态可能会被主动打破。例如,许多互联网公司为了快速抢占市场,愿意为了进度而牺牲一部分质量,经过简单的系统测试就向市场发布产品。

需要注意的是,互联网产品有几个特点,能够减少缺乏系统测试而遗漏的缺陷,以及减少已发生缺陷的负面影响。这些特点包括:1) 许多互联网产品提供基于容器化的微服务,其开发环境接近生产环境,在开发阶段也能发现许多系统缺陷, 2) 互联网公司广泛使用了灰度发布,热修复,线上监控等技术,3) 互联网应用程序相对轻量级,易于升级和回退。

与互联网产品不同,操作系统与各种硬件设备联系紧密,其开发环境与生产环境之间的差异较大;由于系统日志非常庞大,操作系统的远程监控不易做到;操作系统的版本升级困难,用户接受程度低。

因此,对于类似操作系统这样复杂度高,与底层硬件关联度大的产品,其测试策略与互联网产品还是存在差异的,不可以盲目模仿。系统测试(以及探索性测试),在这类产品的测试中占据重要地位。毕竟,用户希望安装好之后,它就稳定地拥有高质量,而不是通过不断升级来维持高质量。

不过,互联网测试的一些思想仍然值得借鉴。例如,微软现在要求Win10所有开发人员的电脑上都安装Win10的测试版本,开发自己去做功能测试。这就借鉴了灰度发布的思想:先在小范围试用,收集用户反馈,暴露并解决问题,然后才大面积铺开。

当然,开发人员对功能缺陷的敏感程度,以及他们识别,报告和推动软件缺陷解决的积极性是否能够达到专业测试人员的水平,从而实现同样的测试效果,还有待观察。

本文分享自微信公众号 - IT测试前沿(gh_a3e0fe8fdded)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 软件测试服务能力

    软件评测能力:功能测试、性能测试、安全性测试、自动化测试、可靠性测试、可维护性测试、兼容性等测试。

    muntainyang
  • 软件测试人员的初心是什么?(一)

    现在的技术发展令我们眼花缭乱,java、doceker、jira、sonar、微服务、jmeter、功能、性能、安全性、自动化测试、渗透性测试、探索性测试、BD...

    muntainyang
  • 敏捷测试项目实施后小结

    敏捷的原则:尽早地给客户持续交付 有价值的 成果物。不断地反省调整、最有效的解决方案是面对面沟通。

    muntainyang
  • 微服务架构下:集成服务性能测试从0到1实践分享

    各位好,我叫王捷豪,在测试行业已经有7年,曾从事过酒店、空气质量、电网领域,目前是国内某互联网医疗公司研发中心基础平台部一名测试开发工程师,多年的测试工作对测试...

    测试开发技术
  • 如何优化软件测试成本

    就像对早期发现疾病进行测试很重要一样,在小问题(错误)开始发展成更大(且昂贵)的问题之前,对软件进行早期测试也很重要。通过应用左移测试方法,由于可以跟踪测试人员...

    FunTester
  • 华为专家 | 轻量化微服务测试实践

    前言 在我过去工作的这十年间,IT行业经历了很多的变迁,从单体架构到微服务架构,从传统组织到敏捷组织,我正好都有不同的体验,现在我在华为任软件架构师,华为有各种...

    DevOps时代
  • MySQL 基准测试

    基准测试 ( benchmark ) 是针对系统设计的一种压力测试,通常的目标是为了掌握系统的行为,但也有其他原因,如重现某个系统状态,或者是做新硬件的可靠性测...

    syy
  • 测试金字塔是个是什么鬼?

    我的女朋友是一名测试工程师,但她之前却不知道测试金字塔的概念,为此我曾经在家里的白板上画了一个图一层一层给她讲解过。我和同事在给团队面试测试和开发岗位时,也会必...

    Edison Zhou
  • 探索式测试基础系列——生活浪漫曲

    在经历了初恋的味道,蜜月的旅行,当一切回归平常时,探索式测试可能依然陪伴我们走过岁月?答案是肯定的 在不同的项目迭代阶段,探索式测试并不是固定的实践形式,而...

    腾讯移动品质中心TMQ
  • 测试覆盖与测试工作关系问题的思考

    前言 参考原文:http://sauceio.com/index.php/2015/09/can-you-test-it-all-test-coverage-v...

    腾讯移动品质中心TMQ

扫码关注云+社区

领取腾讯云代金券