01 开始前说点什么
1.自动反省
公众号开通了也有两年多了,除了刚开通的那段时间发文比较频繁之外,从去年上半年开始,几乎很少再去打理了,翻了翻历史推文,从时间频率来讲,基本上平均2~3个月才更新一篇文章,工作忙虽是一方面,但这也只是借口,归根原因还是不够坚持。
2. 养成投资自己的习惯
最近一直在思考,当初为什么要开办公众号?有些读者可能会想:“是不是就想弄个渠道引流打广告!”,上周确实也帮朋友在公众号内做过一两次专栏推荐,但我想说的是,虽然有些小部分推文有些推广的成分,但请试想一下,推荐给大家的学习专栏,都是实实在在能帮助大家提升自己技能、打造职场竞争力的有用课程,并不是无用的。经常有周边同事或者读者跟我说:“你怎么会懂得那么多种类的专业知识啊,而我自己啥都不会,但又不知道怎么学,怎么办呢?”,我想对这些人说,放开畏难情节,养成持续学习的习惯,这样知识技能的积累才能越来越多、越积越厚。现在社会上有很多人,喜欢投资房子、投资脸蛋、投资享乐,当然这些都没有错,但真正的长期投资,应该是投资自己,知识的投资对于自己来说,才是永恒属于自己的。
3. 回归初衷
前面说了那么多,更重要的还是想呼吁大家懂得投资学习,投资自己。回想当初为什么要开办公众号,我想最根本的初衷目的还是想提供一个分享交流的平台,在帮助他人的基础上,也是通过这种方式来倒逼自己要持续不断的输出自己的思考、输出自己的实践积累。
4. 定个小目标
因此笔者打算重新激活公众号,并计划后续每周都能有一至两篇的原创文章分享给大家(保底至少一篇),也算是给自己设定的一个小目标!小目标虽然不能像王健林那样霸气,随口就是五个亿,但这个小小的目标至少也是对自己的一个短期成长促进。
5. 开篇写点啥
重新激活公众号,作为开篇,写点啥呢?公众号之前的名称叫【技术大全】,觉得这个名称范围太大,一时间也很难让公众号的内容涉及到技术方方面面,于是思考良久,在上周重新定位了公众号的受众和作用,改名为:【测试开发技术】,旨在围绕分享以质量保障技术、测试开发技术实践及行业发展、工作思考等。既然公众号取名为:测试开发技术,作为开篇,不妨先聊聊分享一些笔者对于测试开发岗位及工作的一些理解。
02 为什么会产生测试开发岗
1. 测试开发是趋势
测试开发是近几年行业中一个流行词,但有很多人并不太理解测试开发的工作和意义,认为测试开发岗就是整天写写自动化测试、开发出一些高大上的测试平台、测试工具出来。并且从近几年行业发展趋势来看,越来越多的公司都设立了专门的测试开发团队,也因此越来越多的传统手工测试从业人员都想转型到测试开发岗。
2. 来自测试开发的诱惑?
手工测试从业人员想转型成为测试开发,从想法上并没有错,所谓“人往高处走”,但很多人转型前,并不理解测试开发真正意义是干什么的,甚至不明白自己为什么要转型,大多数人是看到现在行业中越来越多的人往测试开发岗转型,因此也跟着随波逐流罢了,这一类人我暂且称之为行业跟风者。另一类想转型的,我想无为乎两方面:
一方面手工测试做腻了,认为测试开发不需要参与业务测试,从而摆脱功能“点点点”的苦日子。
另一方面,来自测试开发岗高薪资的诱惑,认为转型成为测试开发岗,就能拿到高薪,从而摆脱屌丝,迎娶白富美,成为人生赢家。下图是部分互联网公司测试开发岗薪资区间(从薪资区间来看仅是中高级的测试开发岗),可以看出,相对于传统手工功能型测试人员的薪资来说,这个薪资范围确实有一定诱惑力。
3. 先思考几个问题
在谈测试开发是干什么之前,我们先思考一下,早期软件行业中只能看见测试工程师、开发工程师这类的职位,为什么近几年冒出一个测试开发工程师?这个岗位是怎么产生的,它的存在意义是什么,这个岗位的存在真的有必要吗?(这几个问题欢迎读者下言留言讨论)
4. 行业发展带来的质量保障挑战
相信大家都能感受到,当今互联网行业,特别是从2012年之后,各种新技术和新概念层出不穷,例如:移动互联网、人工智能、大数据、云计算、区块链、微服务等,随着各种新技术和新产业不断涌现,软件测试的理论、流程、工具、技术、需求等都随之发生了变化。这些新技术和新概念给软件质量保障带来了巨大的挑战。
5. 企业对产品更高的质量要求
同时企业对软件质量的要求也不断提高,这也给从事软件测试工作的工程师带来了很大的压力。 早年软件测试追求的基本都是大而全,而现如今软件交付的周期越来越短,用户对产品的质量要求也越来越高,软件测试追求的也演变成了基于风险驱动的精准测试策略:一方面强调测试的”左移“,即需要开发人员在早期更多地参与到软件测试的活动中,另一方面强调测试要遵循”少就是多“的原则,在不牺牲产品质量的前提下节约成本,科学合理地缩小测试的覆盖率,这些都对软件测试从业人员提出了不小的挑战。
6. 顺应行业变化+企业用人需求而产生
传统的测试从业人员大多都只关注业务功能测试,俗称“点点点”纯黑盒测试,他们当中大多数人并不了解开发知识,不理解业务技术架构实现,不知道甚至没有想过该如何让自己提能增效从大量重复的工作中解放出来。而软件测试作为保证软件质量的有效手段和途径,要想有效和高效地保障软件质量并不容易,它涉及多方面因素,包括对软件质量的认知、软件测试技术和方法、软件测试管理、软件测试过程和过程改进、测试工具的支持、测试环境的搭建和管理等,这些都需要软件测试人员不断探索新的、合适的测试方法,并从测试过程本身的改进去适应新的技术和发展。
软件质量作为软件成功的决定性因素之一,随着对软件开发周期要求越来越高,为了又快又好地交付软件,行业或者各个公司里,需要有一类人,能在这种新技术变革推动以及业务快速迭代发展之下,仍然可以科学合理、精准高效的保障产品质量,相信这个也是大部分公司设立测试开发团队最原始的原因。
03 测试开发是干什么的
1. 测试开发不是什么!!!
正如前面谈到的,很多人认为测试开发岗就是整天写写自动化测试代码、开发出一些高大上的测试平台、测试工具出来就行了。不可否认,测试开发工程师在实际工作过程中,确实需要结合团队及业务现状,设计开发出一些自动化测试框架、测试工具或者平台,但这些绝对不是测试开发工程师工作的全部。
甚至还有些人认为,测试开发不用去关注业务,不用去理解参与业务需求,他们只关注如何实现预先设计的功能,而完全不关心所开发的测试框架和工具平台在测试中的具体应用场景。如果是这一类的人,即便他的开发能力再强,但他的核心能力还是开发,并不能胜任测试开发岗位。
一名合格的测试开发工程师一定可以成为合格的开发工程师,但是合格的开发工程师不一定会成为合格的测试开发工程师。
2. 测试开发是什么
当前因公司、团队现状的不同,测试开发主要分为两类:
一类是基于业务驱动型的测试开发,这类型测试开发,或者可以理解为就是业务测试工程师,只是多具备了开发能力和质量改进思维。他们需要扎进业务中,主动去挖掘业务过程各个环节质量的薄弱点并想法设想解决,并且通过流程改进、开发出得心趁手的工具,让自己测试工作能持续高效。(现在大部分一线互联网大厂的测试开发工程师都是属于这个类型:50%测业务、50%进行效率改进)
另一类,是基于框架平台型的测试开发,这类型测试开发,需要站点更高的维度来看待产品质量,他们会针对研发整体过程或某个大的专项去开发设计出一些测试平台、框架,并将其这些能力以服务的形态提供给各个业务线使用,以此来保障全局内建质量。
但不管是哪一类,测试开发岗位的核心其实仍是”测试“,”开发“的目的是更好的服务于测试,测试开发应该看重的是对测试的理解,以及在此基础上设计、能开发设计出帮助测试人员或开发、运维人员提高效率并解决实际业务问题的工具。
关于测试开发岗位的工作职责范围,不同公司之间会存在一定的差异,但不妨参考一下现在一些知名互联网公司对测试开发岗的职位范围描述。(如下供参考)
04 测试开发需要具备哪些技能
既然是测试开发工程师,那么代码开发能力是最基本的要求!!!除了代码开发能力之外,测试开发工程师还需要具备分析测试系统需求的能力,系统质量风险识别能力,要能够站在测试架构师的高度,识别出测试基础架构的需求,提出提高效率的方法。
另外,测试开发工程师需要具备非常广的知识面,因为它不仅需要和开发工程师打交道,还要和CI/CD、运维工程师有紧密的联系。除此之外,还要能对测试架构部署、生产架构部署所采用的各种技术非常熟悉。
关于测试开发岗位的能力要求,不同公司以及职级(专家、资深、高级、中级、初级)的不同,能力要求也会有所不一样,下面列举了几家知名互联网公司对测试开发职位能力的要求描述。(可作参考)
从上面附图中列举的能力要求中,可以看出,对于测试开发工程师来说,开发能力已经成为最基础的能力要求了,前两年行业一直在流行全栈工程师,可以很肯定地说,一名优秀的测试开发工程师是最能接近全栈工程师能力的人。当然能力越大,能从企业获取回来的薪资也越高!
关于如何打造提升自己测试开发能力,推荐给大家一个学习进阶专栏《软件测试52讲》:
专栏的作者茹炳晟曾在世界五百强公司担任资深测试架构师,专栏内容非常全面(深入讲解自动化测试、性能测试和测试架构设计的核心原理,带你从软件测试的“小工”进阶为“专家”。),实战性强 ,推荐读者可以订阅学习一下 笔者自己也有订阅 内容确实值得推荐!
如果需要的,大家可以扫下方的二维码,目前订阅优惠中,只需要65元(超值专栏)!!!
05 最后小结
今天的测试工程师不再只是充当产品质量的”守门员“,更是掌握多种技能和知识的全能选手,他们既要熟练运用测试领域的相关技术,又要对产品开发全流程中每个环节都要有所了解,现时还要及时领会相关行业里的最新技术及其发展趋势,因此,对从业者学习能力的要求越来越高。
作为产品研发中的一个重要环节,测试质量直接影响产品交付的质量,随着互联网的发展,测试的场景越来越复杂,这些对软件质量保障工作都带来了越来越大的挑战。此外,产品的迭代速度对于企业来说是核心竞争力之一,怎样通过自动化、工具化、平台化的建设提升测试的效率显得尤为重要。不管是测试工程师还是测试开发工程师,第一要责都是需要通过高效的策略手段,来保障产品交付质量。
欢迎交流
若对测试开发技术感兴趣或者对测试开发职业发展需要相互交流看法的,欢迎加Q群交流:50316345,也可直接添加笔者微信:jinjian_762357658