大咖分享

收藏 | 测试工程师必备教科书级教程
北大青鸟总部

摘要:互联网已经由蓝海市场进入了红海市场,由粗犷式增长变为精细化运营,由高耦合低内聚变为高内聚低耦合。随着互联网趋势的变化,在产品上也有了微妙的变化,大厂们更看重质量而非速度,于是一个岗位开始变得炙手可热,那便是测试工程师。

承认吧,互联网已经由蓝海市场进入了红海市场,由粗犷式增长变为精细化运营,由高耦合低内聚变为高内聚低耦合。随着互联网趋势的变化,在产品上也有了微妙的变化,大厂们更看重质量而非速度,于是一个岗位开始变得炙手可热,那便是测试工程师。那么测试是什么?主要分类是什么?如何成为一个优秀的测试工程师?


· 第一个问题,测试是什么?

测试指的是使用人工或自动化手段,来检测某个系统的过程。在软件产品开发过程中,产品经理进行需求设计,开发人员按照需求编写代码,在把产品呈现用户之前,需要经过测试,保证产品在使用的过程中是没有任何问题的,都是符合需求预期的。

所以测试是软件开发过程中必不可少的一环,互联网早期的时候,大家刚成为网民,能接受一些bug,加上开发人员修复的也很快,所以没有测试工程师这个岗位出现。随着越来越多的人成为网民,越来越多的企业加入互联网,对于产品质量的要求变得高了起来,要求上线之前必须要经过精细、全面的测试,必须保证质量,因此测试工程师岗位越来越炙手可热了。


· 第二个问题,主要分类是什么?

回归到测试的目的是为了保障产品质量,产品质量可以从两个维度衡量,其一是功能,其二是性能。功能指的是在使用的时候一切看得见的页面/按钮等都可以点击,都可以有符合人类思考逻辑、使用路径的返回。性能指的是当上万人、上亿人在使用产品的时候,仍然一切看得见的页面/按钮等都可以点击,正常使用。所以产品的测试也包含功能测试、性能测试两类。

在功能测试中,主要是通过编写测试用例,穷尽所有用户使用场景来模拟用户使用。根据能否看得见代码逻辑、是否人工可以细分为,白盒测试&黑盒测试、手工测试&自动化测试。所谓白盒测试指的是,像盒子一样是透明的,能看见代码逻辑,再根据所有逻辑路径进行测试。黑盒测试指的是,盒子是黑色的,看不见代码逻辑,只能根据可能的用户场景进行使用、测试。所谓自动化测试指的是,不再使用人工去频繁的测试、使用,使用程序来模拟人进行页面的点击、使用,看返回是否符合预期。

在性能测试中,主要是通过测试工具来模拟各种峰值、各种异常负载来对系统的各项性能指标进行测试。性能测试包含负载测试、压力测试,两者大同小异,负载测试是确认在各种负载下系统的性能,并且随着负载变化,系统各项指标如何变化,压力测试是不断的模拟峰值,来找到系统能承受的点,获取系统所能提供的最大请求数。通过性能测试,我们知道系统的负载点之后,可以作出对应的降级措施,确保使用用户的体验。


· 第三个问题,如何成为一个优秀的测试工程师?

通过上面的介绍,测试工程师其实是一个介于产品域和开发域之间的岗位,工作复杂度也挺高的,所以要成为一个优秀的测试工程师,在能力模型上要求也高,总结下来,至少要具备以下能力之一;

1.业务理解能力,只有真正的理解业务、理解产品、理解用户,才能找到可能存在的操作路径有哪些,才能去执行全面的测试;

2.技术能力,在执行测试中,发现bug后,要能准确的定位出是前端问题、后端问题、网络问题,这样才能提高开发同学的效率,双方交流起来也会很顺畅。

3.开发能力,人工的去执行测试,在人工智能的时代是很低效的,因此利用好互联网手段,通过测试框架、测试工具开发等,高效保证产品质量。

除此之外,良好的沟通能力、细致谨慎、不断学习、思考能力也是必备的。上述的三个能力任何一个做好了,都能在互联网大厂中有一席之地。

总的来说,测试工程师毫无疑问是快速了解业务、接触到产品线所有核心角色的岗位,并且在该岗位上可以继续横向扩展做产品经理或开发人员,纵向扩展可以做测试开发、测试专家。所以,如果你刚加入互联网行业,并且还不太清晰自己的职业规划,那么我建议可以从测试工程师开始;如果你已经是互联网人士了,也可以转岗测试工程师,毕竟互联网大厂的缺口还是挺大的,工作压力也相对会小一些。综上所述,测试工程师都是一个不错的选择噢~


相关阅读
【分享】10大常见软件测试误解!
热门推荐