前言
大家好,我是洋子
五一节如期而至,在这里先祝大家假期快乐。放假的同时也不要忘了学习,假期可是弯道超车的好机会
对于 23届 的同学还有接近2个月就要开始秋招了,来咨询我关于测试开发岗位工作内容的同学日益增长
集中的问题一般如下
测开真的有很多工具去开发吗
测开是不是就是每天在点点点
测开就是在做业务测试和自动化测试
你所在的公司业务测试和工具开发的比例是什么样子的
这些问题可以总结为一道面试考题,那就是你对软件测试(测试开发)的理解,这道题基本也是面试测试开发岗位的必考题
之一
曾经在20年参加秋招时,我也被问到过,当时我还是一个0软件测试经验的小白,在我的认知里,测试不就是给开发提Bug吗,于是毫不犹豫的给面试官说出了我的答案,面试官笑着摇头否定了我的回答,接着说我对测试的理解太浅了
是呀,和大多数完全没有接触过软件测试的同学一样,当时的我,也只能想到这个答案
如今我在百度工作快1年半了,对测试开发岗位也有了新的认识和思考,如果你即将去面试【测试开发】岗位,这篇文章一定得好好看啦
测试开发的两个关键词
测试开发的日常工作一般如下:
- code review、业务测试
- 工具开发
- 对接用户反馈
- 自动化测试框架建设以及自动化测试case补充
- CI(持续集成)流水线建设和 CD(持续交付、持续部署)建设
- 监控平台建设以及监控case补充
而这些日常工作的背后,都是围绕着【质量】和【效能】这两个关键词在展开。想要做好测试开发工程师,一定要多去思考如何提升软件质量
以及研发效能和测试效率
,这也体现了我们做测试开发的价值
什么是软件质量
质量这个词大家基本都耳熟能详了,买了一件衣服,穿了很久衣服也没有掉色、洗了也没有起球,我们就会说这些衣服的质量真好
同理,我用了一款APP,界面和功能用户都很喜欢,使用过程中也没有发现问题,或者发现问题后能及时处理,我们就会认为这款APP软件的质量真好
那是不是我们测试工作做得很细致,发现并解决了很多Bug,软件就有高质量呢
答案是否定的
软件的高质量不是软件测试人员测试出来的
单纯依赖测试人员手工测试作为产品的最后一道防线,这款产品的质量无疑是比较差劲的。软件的高质量一方面意味着线上用户功能使用正常,另一方面是出现问题后能及时解决闭环
那怎么样才能提升软件质量呢?
想要提升软件质量,有很多方面需要注意:
- 在需求分析、需求评审阶段,产品与开发、测试共同讨论,避免需求理解不一致,涉及到的异常场景、边界条件等,确定好项目排期
- 在研发设计阶段,开发需要充分理解需求情况下,设计出良好的技术架构去实现该需求,同时将技术方案同步给测试,确保双方理解一致。同时作为测试需要指出技术方案中不合理、有遗漏或者风险的地方
- 在提测准入阶段,开发需要编写单元测试用例,单测通过,并且利用测试提供的准入测试用例充分自测后才能进行提测
- 在提测后的测试阶段,测试人员根据测试用例和测试方案进行功能(黑盒)测试、接口测试、白盒测试、性能测试等
- 在上线阶段,测试和开发也需要做好验证
- 在上线后的运行阶段,观察监控平台接口或者页面运行情况是否出现异常,若有用户反馈功能异常,快速定位问题原因并处理
总的来说,只有在需求-设计-开发-测试-上线-上线后
各阶段工作都做到位,软件才能获得高质量
近年来,为了进一步提高软件质量,很多大厂都提出并在运用【测试左移】和【测试右移】的概念。以测试阶段做为分割线,测试左移通常发生在提测准入阶段,而测试右移一般是发生在上线分级发布或上线后的阶段
至于测试左移和测试右移有哪些手段,以后的文章我再详细谈到
什么是研发效能和测试效率
我们先来看研发效能是指什么
效能 = 有效性 + 效率 + 可持续性
简单地说,效能就是能长期可持续地、高效地开发出有价值的软件产品
各大互联网公司在注重软件质量的同时,也更加注重研发效能,我们都知道互联网产品一般要求迭代很快,一般一周或者二周就会发一次版。对于一个研发测试周期超过2周的需求,就算一个长尾需求
一个需求需要通过测试才能上线,即软件测试人员QA也是属于研发体系当中的一环,要提升研发效能,减少长尾需求,就需要我们进一步提升测试效率
一个需求开发10天,给测试人员测试的时间通常只有3天,开发时间:测试时间通常是1:2到1:3不等,可见测试人员没有太多时间去进行手工测试
并且在互联网大厂,技术架构一般都比较复杂,单靠手工测试没有办法提升测试效率,这时,作为一名测试开发就需要去搭建CI流水线,在流水线上建立一系列可以自动触发的工作,如单元测试、代码静态扫描、自动化测试
在原本一系列手动触发的流程自动化,节省测试回归时间,关于此部分内容,可以参考我的文章《什么是CI/CD》
除此以外,测试环境部署、测试数据生成、自动化测试用例补充这些工作基本都是重复、枯燥并且非常占用测试时间的,需要我们去开发出一系列的工具来支撑这些工作
由于业务不同,测试团队还会有其他的痛点问题,这都需要我们去主动发现并开发出对应的工具,提高测试效率
推荐专栏
很多人对测试工程师都有一些刻板印象,比如觉得测试“入门门槛低,没有技术含量”、“对公司不重要”、“操作简单工作枯燥”“一百个开发,一个测试”等等。
会产生这种负面评论,是因为很多人对测试的了解,还停留在几年前,那时对测试的要求确实相对较低。但随着技术发展,企业对测试人员的要求已经逐步从低端的功能性测试,转变为更高级的自动化测试以及测试开发了
在洋子20年极力从功能测试想转型做测试开发的时候,购买了软件测试领域大佬茹炳晟老师的推出的专栏,名字是《软件测试 52 讲》,但茹老师足足写了 63 讲(据他自己说,想分享的内容很多,所以又做了一些加餐,也是很走心了)
现在工作了快两年,我仍然在反复阅读这个专栏,里面基本每一篇文章都是干货,带你进入一个不一样的测试世界
整个专栏系统梳理了软件测试的知识体系,深入讲解了自动化测试、性能测试和测试架构设计等主流测试技术的核心原理,通过 5 大企业级项目实战案例解析,带你掌握软件测试的知识要点,切实提升测试质量和测试效率,打通从测试小工到专家的必备技能
购买方式为扫描屏幕下方二维码,现在极客时间平台也非常给力,推出了极客时间会员,只要开通会员,首月6元,就可以免费看这个专栏了。想当年洋子花了几十块去看这个课程
结尾语
相信看完这些文章,你会不再纠结文章前言部分那几个问题,作为一名测试开发,同样会做业务测试,只有这样,你才能深入了解业务,并开发出符合业务特点的测试工具。如果不了解业务,写的工具没人用,那不白费力气啦
技术结合业务,助力增长业务价值,好了,本期文章就到这里,如果你觉得对你有帮助,麻烦点个赞