霍格沃兹测试开发学社

《Python测试开发进阶训练营》(随到随学!)
2023年第2期《Python全栈开发与自动化测试班》(开班在即)
报名联系weixin/qq:2314507862

高效测试 | 如何完成被拆解的任务?

本文为霍格沃兹测试学院特别顾问、资深测试专家刘晓光老师对研发效能的思考,是《高效测试|如何拆解一个任务?》的姊妹篇。

前提

  • 最重要的一个前提:任务被拆解前,需求是明确的。

  • 什么样的需求是明确的需求呢?这是一个不小的问题。有一个很好的验证方法:这个需求是否可以写出来代入数据和步骤的测试用例。强烈推荐《实例化需求》这种实践方式,这是一个大话题,需要单独来说。

  • 确保工作量是可完成的,而不是 overload 的。对于团队生产力的估算能力,提高的最好的方法就是不断的总结上一个迭代产出了什么。

  • 越忙的时候,越要保证这两个前提,因为它本质上可以帮助你提升效率。

分工 & 步骤

  • 拆解的时候一定考虑可测性。在初期,QA 一定要与开发就可测性达成统一认知。

  • 任务分解后,除了开发,需要并行开展的工作是:测试案例编写。最好的实践方法是《实例化需求》方法,骨架的验收测试用例在开发前就作为需求 Ready 了。

  • 如果没有采取《实例化需求》,则应该马上开始发起测试案例编写工作,保证在 " 提测 " 之前,骨架测试案例是具备的。

  • 案例应该分级,如 P0,P1,P2。P0 是冒烟测试,P1 覆盖最核心,一定要保证的功能。P2. 是优先级略低的案例。

  • 开发应该充分利用上条提到的测试案例,最低要求是 P0 一定要全部通过,一个比较理想的状态是 P1 全部通过。

  • 案例自动化能够同期开发是最好的。在 “提测” 的时候,所有测试案例都是自动化案例的话,测试执行就会变得非常快,通常一日内可以搞定,提测的轮次会大幅度减少,大概率会一轮过,因为在自动化案例开发和调试的同时,就已经在做测试了。而 QA 可以花时间来做更多的异常情况的思考和探索性测试,发现隐藏的很深的问题。

技术上的难点

  • 如果是主干开发的分支策略,feature 之间的解耦是至关重要的。feature 开关是开发中必不可少的东西。

  • 任何一个新 feature,在开发完成前, 默认是关闭的 。这样可以保证合入代码不影响他人的工作,不影响主干的发布能力。

  • feature 开关不能解决所有问题,但如果设计很好,feature 开关可以解决绝大部分问题。仍然有其它方法可以解决 feature 开关解决不了的问题,如代理层,如抽象分支(branch by abstraction)等。

  • 同期自动化建设是非常难的事情。可以逐步实现,对应的 tips 如下:

    • 自动化一定是分层的, 测试金字塔 的理论是这么多年来,测试界被极少被证实了的极为正确的理论之一。

    • 单元测试作为最底层,一定要做到同期建设,这是最基本的要求。如果达不到这个要求,则很难在并行开发的模式下快起来。

    • 单元测试说着容易,但是全研发级别变为标准十分的难。特别在国内的大环境下,转型需要非常多的努力。

    • 接口层面的自动化建设,应该有完备的工具链来大幅度缩减实施时间。接口自动化最花时间的三样东西:1. mock 的编写。2. 入参的编写。3.assert 的编写。

    • 目前来看,录制回放类工具是最能提效的,它可以大幅度降低这三部分的成本。并且可以把开发调试阶段的成果记录下来变成自动化用例。很可惜的是,市面上完备的通用工具很少,只在大厂有相对成熟的应用。举个例子,在 Java 的 Server 端技术栈,目前开源的 JVM-sandbox-repeater 是一个不错的脚手架,可以在它的基础上做二次开发(大量的二次开发)实现。

    • 在有好工具支撑的基础上,接口自动化案例的建设,QA 和开发的良好协作是基础。没有好的协作,有工具也不行。

    • 端到端的自动化案例也推荐录制回放工具,分层 mock,各司其职,并且保证稳定性。
      为了保证代码质量, CR 是重中之重 ,必须做好。

    • CI 流水线也需要比较完善。一个明显的检查点是:1. 是否有有效的静态代码和单元测试卡点。2. 接口自动化是不是也放到标准 CI 流程里面去了。

收益

  • 真正做到了,系统测试会非常快(一天内)。

  • 基本上具备了每天发版的能力(这可以看成一个比较高的目标) 。

参考

[测试金字塔] https://martinfowler.com/bliki/TestPyramid.html
[JVM-sandbox-repeater] https://github.com/alibaba/jvm-sandbox-repeater

** _

来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
点击获取更多信息

posted @ 2022-01-27 18:05  霍格沃兹测试开发学社  阅读(112)  评论(0编辑  收藏  举报