转载声明::文章来源https://zhuanlan.zhihu.com/p/592594360
当下网络上关于互联网测试开发的培训有很多,名词解释也有很多,但仍然有许多人不明白什么是测试开发,到底是测试还是开发?什么地方需要测试开发?在我就业之前我也有诸如此类的问题,我也对这个岗位、这个行业、个人发展十分迷茫。但从我毕业到现在,通过从工作中的体会,慢慢捋清楚了自己之前的疑问。我希望我的分享能在大家就业道路上带来帮助。
什么是测试开发
说到测试开发离不开软件测试这个名词,测试就是为了保证质量。其实不只是软件,理论上所有的产品都需要测试,包括药品、食品等任何出现在市场上的东西,因此便有了产品质量这个说法。谁为产品质量负责?难道是消费者吗?当然不是~因此在产品上线之前需要经过若干轮次的测试环节,以确保产品上线之后不会影响到消费者体验和权益。这个工作的执行者便是测试工程师。
回到互联网中来,测试工程师和测试开发工程师仅仅差了“开发”两个字,真正的区别是什么?通俗来说具备开发能力的测试工程师就可以称为测试开发工程师,传统的功能测试工程师在快速迭代工程中,只能通过人力堆积的来进行保障,缺点是成本高、效率低而且产出的效果不好。故企业需要技术更为全面的测试工程师,来尽早的介入测试,提高测试效能。但就测试这件事,在企业的定义中还是被提升了门槛。就拿负责业务测试或者效能提升来说,业务测试是为了保障业务质量,保障业务质量不仅是点点点,也同样需要一些效率提升的工具来支持测试效率,例如CD(持续部署)、CI(持续集成)等;而效能提升开发出来的工具最终也是需要反馈到业务侧来体现效能工具的价值。测试开发可以理解成需要把测试中的开发工作和开发中的测试工作抽离出来,以一种更好的方式来呈现,提升易用性和效率,需要比测试具有更深层次的思考和业务保障逻辑。
测试开发需要做什么
关于软件质量,始终坚持:软件质量不是测试出来的,需要对整个软件项目的整个流程进行构建,以及质量保障体系的建立。因此从宏观角度出发,测试开发工程师需要构建一个全链路的质量体系(至少在心里要有这样的一个全局意识)。而宏观视角在日常工作中,可能分为以下几个部分:
第一,贯穿需求迭代的整个生命周期
测试开发工程师首先要有产品质量的概念,从测试的视角分析需求迭代的过程中可能出现的问题,通过分析PRD和技术文档,需要对功能的改良和产品的创造提出测试的质疑,全方位多角度覆盖产品质量,同时也要考虑到一些边界场景产生的影响,毕竟咱们不知道用户到底会怎么使用我们的产品;其次,测试也需要对效能把关,比方说需求流程中从PRD的产生到各端的发布,我们都需要积极去校验各个环节执行的效率是否到位,产品是否达到了提测标准,积极高效地推动每个环节的运行。
第二,需求迭代的质量把控
不同的产品有不同的迭代周期,迭代周期长的产品可能可以通过堆叠人力的方式实现迭代质量的保障。但是有些互联网产品的迭代速度非常快,堆叠人力来完成迭代质量保障会耗费巨大的人力和物力。因此需要有自动化保障能力,包括UI自动化和API自动化等,这个过程就需要测试开发工程师开发稳定的、可用的自动化能力,通过定时触发或MR触发等方式定时定版对质量保障。
第三,日常质量效能提升
要做一个高级测试开发工程师不能局限于需求测试和自动化测试,需要明确我们的目标是提升产品质量和效能。因此我们在需求测试和自动化测试之外,还有诸多流程上的优化和规范,例如进一步完善事故处理SOP、指定服务端SLA标准等等,凡事有助于质量提升和效能提升的点,都是我们要考虑的范畴和工作的指向。
成为测试开发工程师需要具备什么能力和条件
引用自《你希望成为哪类质量工程师》
可以参考上图的工程师打怪升级模型,需要专业能力和综合能力的并行提升。专业能力体现在以下几个方面:
测试能力:
充分了解所负责业务核心指标、产品功能及效果、重点业务逻辑、上下游依赖、用户群体、竞品情况等,可以多从PM/UX侧考虑产品的预期,以及站在用户的视角体会产品测试
掌握基本测试理论和方法,要有产品、用户安全意识
具备质量问题分析能力
基础技术能力:
计算机基础知识
基本开发工具和语言的了解,需要有至少一门精通的语言可以用于编程,其他的语言了解即可,目的用于阅读代码定位问题
专项技术能力:
算法、NLP、CV等
而综合能力就体现在个人沟通、创新能力上,因为这个岗位需要打交道的同事会比较多,较好的沟通能力能助力与项目的推进;同时,我们需要推层出新、举一反三,从一个单点问题发散到多点多面问题,总结出这类问题的抽象,形成一种通用的方法。
为什么选择测试开发
这个问题是很多面试官在面试的时候喜欢问的问题。从个人角度来说,我不是计算机专业科班出身,所以在专业知识上会有薄弱环节,虽然很努力在补齐相关的知识,但仍然没有科班同学的知识来得系统,因此去搞研发挑战和压力会比较大;但是另一方面来看,其实跨专业也带来了一些好处,比如能看到计算机之外的一些东西。前文也提到,测试开发相对不是专业性太强的岗位,因此知识面了解较广,对于测试过程中问题的思考、综合能力的提升也是有所帮助。
再从行业本身来说,我是觉得测试要比开发重要,为什么?因为从整个行业来讲,不缺的永远是优秀的开发人员。但是能够站在测试的角度,能够提炼测试的需求,并且把测试当中的一些难点,或者一些能够提高工程效能的点进行提炼,并把它做成工具,这种测试人才是很稀缺的。同时,这个过程的成长对于个人来说是全面的,随着工作经历的积累,不仅可以一针见血得发现质量问题,还可以在质量、效能方面继续推层出新,是职业发展路上一个大挑战。
总的来说,我选择了测试开发这条路,反观过去到现在自己在职业方面的成长,十分感谢mentor对我的指导,让我能更加坚定地在这条路继续走下去。
帖子还没人回复快来抢沙发