最近有粉丝私信我,问了我一些测试开发岗位的一些情况,以及目前测试相关比较前沿的一些概念。
我本身对此也是比较感兴趣,故心血来潮,作下此文,希望能和大家互相交流讨论。
针对粉丝提出的三个问题,我一一展开作答。
一、测试开发所需要的技术栈
二、什么是测试左移,什么是测试右移
三、目前 DevOps 相对来说比较火,那相应对测试人员的要求是不是更高了?
谈到测试开发所需要的技术栈,我觉得应该没有比「霍格沃滋测试学院」出品的《测试开发工程师技能图谱》更好的图了
测试开发是以质量为中心,以业务为导向,以快速健康地保障产品交付为目标,不仅需要能 cover 日常测试工作,还需要肩负测试与效能齐头并进的使命的一个岗位。
测试开发岗位的难度比普通的测试要大很多,测试和开发都要懂。
上能通过丰富的测试手段去发现 bug,下能开发出效能工具辅助测试,甚至是辅助开发。
那么,传统的测试工程师会被淘汰么?这个谁都不敢做保证。要想在这个行业生存下去,唯一的丛林法则就是:优胜略汰,要跑赢技术更迭。
先说背景,大公司的软件发布流程是怎么样的?
我们做的,仅仅是在测试这一步,假如开发没有开发出来,我们就只能干等着;假如上线之后有 bug,我们就只能背黑锅。
测试处在一个及其被动的局面,全是在等!我工作的第一年,也是在这种状态下渡过的:每次都觉得测试排期被挤压,每次都觉得测试不充分,每次都感觉上线有点虚。
直到我知道了测试左移和测试右移。
测试左移主要说的是 “事前”,理念是:越早测试,越易发现,修复成本越小。
我们在正式测试之前的步骤,其实可以不必等。我们甚至可以在产品需求文档输出时,就可以开始进行测试。
虽然现在普遍的测试工作流程中,已经有了需求评审、编写测试用例、评审测试用例、开始冒烟测试这几个环节来保证初级的测试左移,但是测试左移绝不仅限于此。
看下图:
测试右移主要说的是 “事后”,通过一些生产环境中的测试与监控,来提升软件的性能。
这里也用一张图来给大家看看测试右移可以做哪些事:
假如把测试左移和测试右移加上之后,我们的软件发布流程又会变成怎样呢?
这里再强调一点:
质量不是 QA“测” 出来的, 全流程,全角色的努力,才有质量
所以说,测试左移和测试右移,并不仅仅是测试在做,而是全员努力才能做好。
根据中国信息通信研究院颁布的《DevOps 行业标准白皮书》上的描述,DevOps 是研发运营一体化。
研发运营一体化是指在 IT 软件及相关服务的研发及交付过程中,将应用的需求、开发、测试、部署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续
交付和应用运营的无缝集成。帮助企业提升 IT 效能,在保证稳定的同时,快速交付高质量的软件及服务,灵活应对快速变化的业务需求和市场环境。
研发运营一体化的总体架构如图所示:
主要包含三大块:敏捷开发管理、持续交付、技术运营。
简单来说,DevOps 的目标就是实现快速稳健的把产品交付给用户,并给企业更快的带来商业价值。
最终软件工程将像汽车制造业一样,具备稳健的生产流水线和流程管理方式。
目前行业内的头部互联网公司,都在这块做了不少的专研,也有不少实践案例。可以说 DevOps 是未来的必经之路。
对测试行业的要求会更高,这就意味着,测试不单单是测试,也是 DevOps 里面的重要一环。
这一环就是让测试流程更加规范化,结合测试左移、测试右移,将完整的测试体系搭建起来,需要提供应对复杂业务场景的测试解决方案。
并且往更高层次的自动化去发展,更大程度地去提升人效。
而为了完成这一宏图伟业,就需要在座的各位测试开发同仁共同的努力了。
对于小白来说,万不可安于现状,臻叔眼前的测试行业,仍旧是一片蓝海,还有很多值得探索的地方,比方说:AI 测试、大数据测试、搭建一个功能齐全、服务全线的测试中台,这些都是值得玩味探索的地方。