印象里在前几年,特别是2015-2019年,大家更多的认为在测试过程中技术实践更重要,比如自动化测试。而近几年大家开始回归本质,从更底层来思考质量保障和业务之间的关系。对此我是这样理解的:国内的IT行业发展至今,主要经历了三个阶段,用几个词语概括则是按部就班、百花齐放、方法沉淀。
第一阶段:按部就班,大体对应04-10年。这个阶段国内的IT互联网技术领域并没有太多创新和应用空间,基本是照搬国外的方法来开展技术工作。比如瀑布模型,比如QPT/LoadRunner等商业工具,比如用Jira进行需求和项目管理。虽然在整个研发测试流程中,也会遵循各种规范,但测试在其中的左右,更多的是QC角色,即质量检测。这个过程中研发和测试的关系,更像是流水线的上下游,大家各行其是,没有很好的配合。
第二阶段:百花齐放,大体对应12-18年。伴随着移动互联网的爆发,业务场景越来越复杂,线上流量访问压力更大,系统架构也变得越来越复杂。业务的复杂性和多样性对技术的要求更高,与之对应的则是各种各样的技术探索和工程实践落地,比如测试岗位出现了专职的自动化测试、性能测试、测试开发等岗位。
第三阶段:方法沉淀,大体对应19-22年。互联网狂奔猛进的势头放缓后,大家开始降本增效,更追求投入产出比,从以前的粗放式实践回归到思考本质。且经过多年的技术实践和各种分享,大家逐渐积累了很多方法论,也有了更有普遍性认同的一些最佳实践,比如测试左移右移,而测试的角色也逐渐演变为质量保障(QA)。
影响测试进度的因素有很多,且大多数因素并不归属于测试环节,只是这些因素带来的风险在测试环节开始集中爆发,这也是为什么很多测试同学自嘲自己就是背锅的由来。
当测试同学开始肩负起质量保障的责任时,为了解决需求不明确的问题,就要主动去推进需求评审,提前暴露风险,将问题扼杀在初始阶段。为了使研发的编码质量更好,就有了技术方案评审、静态代码扫描、和研发show case以及冒烟提测的各种实践。
每个项目或者版本迭代都有交付的deadline,需求和研发阶段预防还不够,还要想办法提升测试阶段的效率和质量,随之就有了自动化测试、精准测试、端到端测试各种方法和实践。不仅如此,产品发布后的线上质量更能引起技术同学敏感的神经,因此线上巡检、业务防资损、完善的监控体系和应急响应机制以及项目复盘也成了质量保障的必备措施。
降本增效大环境下,为了控制成本,自然而然投入的资源就降低了,如果能保证需求范围明确和时间因素不变,那质量理论上来说是可控的。但在实际工作场景中,频繁的需求变更和不明确的需求依然是频发现象。