前段时间面试了某零售电商企业的测试经理岗位,面试官当时提了这样一个问题:我们这边测试团队开展自动化测试工作将近一年了,但目前还未看到明显的对测试过程或者质量的改善效果。如果是你,你会如何做?
自动化测试其实是一个老生常谈的话题了,业内各种自动化测试平台/框架,或者最佳实践已经足够多。按理来说大家照猫画虎摸着别人的路走应该都不至于难以落地,但现实是依然有很多团队面临难以落地或者说落地了没到达预期效果。
我想结合自己的落地实践经验,试着分析为什么难以落地拿不到好结果,并给出自己的一些思考和建议。
在传统的软件研发交付流程中,大致有五个阶段:需求-设计-编码-测试-发布。测试更多的只是这个流程中的一环,主要负责QC(质量检测),即分析需求,评估测试点,设计测试用例,执行case,发现并追踪BUG。
由于测试处在软件产品发布前的最后一环,且在前面几个阶段往往有各种原因(比如需求变更、临时需求)导致延期提测,真正用于测试活动执行的时间会被压缩。这就导致了一个问题:测试要用更少的时间为可能更多的工作量来兜底。线上正常发布没什么问题还好,如果出了问题大多第一时间找测试问责。
自动化测试,就是将手动执行的部分交给机器或者工具自动执行,通过一定的规则和判断逻辑自动出具结果,提高执行的过程效率,让测试人员单位时间内的执行效率可以有大幅提升。
随着软件工程和质量保障的相关理念不断发展,以及各种开源商用工具平台的出现,自动化测试从一开始的提高执行效率向着更多方向扩展,比如造测试数据、线上业务场景巡检,这些其实也对应着测试左移右移。
总结一下,自动化测试要解决的问题主要如下:
但如果我们换个思维来看待自动化测试,我们会发现自动化测试最大的价值在于:缩短了各个阶段的信息反馈链路。即通过提高效率,可以更快的发现可能存在的风险,风险越早发现修复的成本越低,对质量的影响也越小。
自动化测试属于高度和业务场景绑定的技术项目,要落地就要解决以下问题:
总的来说,自动化测试有很显著的对质量保障和提升效率的优点,但要实践落地依然要面临诸多挑战。而发现问题,用合理可行的方法解决问题,并考虑投入产出比,这些才是落地一个技术项目的根本要素。
我们在做一件事之前,一般都会对其赋予目标,比如开展自动化测试是为了提供测试过程效率。所谓的预期结果,就是针对做这件事所设定的度量指标,比如自动化测试的预期结果是降低版本回归测试的耗时。有了指标就需要对其进行可量化的考核,才能保证结果是否符合预期,比如原来版本回归耗时2人/日,通过自动化测试希望达到0.5人/日。
自动化测试要落地达到预期效果,在我看来主要有这几点需要考量:
比较合理的执行过程可以参考下列内容:
将大目标拆成比较小的几个目标,以自动化测试来说:刚开始只覆盖核心业务场景的P0场景,先拿到好的结果,然后再扩大覆盖范围,细化case的粒度,直至最终目标。 则是小步快跑,做出MVP结果(最小可行性方案),用好的结果说服团队和上级,扩大覆盖范围,不断改进和优化自动化测试的提效效果。 制定自动化测试的落地里程碑,以及预期的交付时间和交付效果。比如第一周demo跑通,第一个月覆盖主流程P0场景,第二个月覆盖P0+P1场景,提升回归测试效率30%。
以我的经验来说,成功的技术项目要落地达到预期效果,要具备这些特质:可落地可执行,有明确的落地时间+执行方式+预期结果。
精彩内容推荐