资深大佬带你换个角度认识软件测试

本文将从岗位要求看软件测试软件测试技术的认识和理解质量保障与软件测试的关系构建质量保障系统的要点这四个方面简单聊一聊作者的理解,带你换个角度来认识软件测试。

从岗位要求看软件测试

首先,我想请大家和我一起思考一个问题:我们要以什么标准来区分初级、中级、高级软件测试工程师、测试专家这几个岗位。

也就是这4个职位怎么去界定,我们自己属于哪个级别呢?(为什么选这4个呢?因为现在整个行业基本都是这么去划分软件测试工程师岗位级别的。)

从众多的招聘信息上看到,似乎是可以用工作年限来界定的:

1年以下是初级、1-3年是中级、3-5年是高级、5年以上是专家。

那有的人就会想了,我已经工作5年了,是不是我可以去应聘测试专家了呢?答案是不一定。

为什么呢?因为先不说以工作年限作为判断的标准是对还是不对,仅仅简单地依据年限来判断这个方法就是会有偏差的。

不是有个段子嘛,说是10年工作经验,其实是用1年的经验工作了10年。

资深大佬带你换个角度认识软件测试

继续从众多的招聘信息上看到,似乎是可以用工作技能来界定,功能测试是初级、会用工具是中级、能开发自动化脚本是高级、能开发自动化框架是专家

那又有人会想了,现在这么多培训,线上线下都有,各种方面的,比如python编程,自动化测试培训等等。

那是不是我参加这些培训班,学会了python、学会了自动化测试框架的使用,那我至少可以应聘高级软件测试工程师了吧?

答案还是不一定,为什么这么说?我们先把这个问题记下,继续往下,看完我后面的认知理解,我们再回来看这个问题应该就能有答案了。

软件测试技术的认识和理解

现在我们稍微转换个话题,讨论一下什么是软件测试,什么是软件测试技术

很多时候,很多从业者一提到软件测试技术,想到的就是自动化测试、测试开发这样的字眼,比如接口自动化、UI自动化、性能测试;

什么postman、Jmeter、selenium、appium、RobotFramework、Cucumber等等,似乎简历里不带有这些字眼就体现不出技术能力。

不过呢,如果把这些信息从简历里拿掉后,我们又会发现绝大部分简历似乎都一样了。难道说软件测试技术真的就是通过上面所说的测试类别或内容、测试工具或框架来体现的?

我个人认为这个理解没有错,但是呢不全面。

这个理解是站在狭义的技术上去看,让我们换个角度,从广义的技术上来看软件测试应该是什么样。

我理解的软件测试技术包括四个方面:工艺、工序、方法、手段。这四个方面环环相扣、是个有机的整体。其中工艺、工序是一对,理解起来略显抽象;方法和手段是一对,这一对是我们经常谈到的。

这里先举个例子做下说明,便于大家对我接下来要说的内容能更好地理解。

我们大家都有过体检的经历,体检就是对人体这个复杂的系统进行一项项的检验,来确认健康或者是有什么问题。

体检的时候我们要验血、验尿等,化验的有很多细分项,比如血小板、红细胞、白细胞、血红蛋白、(尿糖、尿蛋白)等,每项都有个正常的指标范围;

然后查心脏会拍心电图、查肝脾肾会做B超、查肺会拍X光等等,影像或者片子出来后,医生会以他脑子里记忆的正常标准的影像图来进行比对,从而确定是否健康。

讲到这儿,思维比较活跃的人是不是已经感觉到体检和咱们测试很像了?只不过体检测的是人体系统;而咱们测试呢,测的是软件系统,被测物不一样、指标不一样、方法手段不一样而已,但道理是一样的。

好了,我们回来接着聊广义的软件测试技术。

首先来说工艺,它是指测试的指标体系,也就是标准。构建指标体系,就是针对测试对象,从多个方面,不同维度,构建一个测试指标项的集合。

测试的指标项简单地来看,就是我们常说的测试点或检查点或checklist再加上针对这些点的指标要求,它是工艺的核心,更是软件测试技术的根本。

就好比我们体检时要做哪些检查项,每项检查中细分哪些指标的检测。体检结果准不准,主要就看检查的指标全不全、细不细。同理,我们的测试做得好不好,就要看我们的指标体系构建的合理不合理、完整不完整了。

接着来说工序,它是指测试的工作项的顺序,也就是流程

就像我们体检的时候要先查什么、后查什么,哪些项可以没有顺序,哪些项又必须串行,查某项的时候有什么前提,比如空腹、憋尿等等。

我们有不少从业者一说起测试流程就是参加需求评审、评估测试周期、设计测试用例,有的流程严谨些的会有测试用例评审,有的可能没有,然后是执行测试,记录、跟踪并验证bug,测试总结报告,就完了。

太粗犷!不妨借鉴某些食品或者饮品广告里说的“经过21道工序加工而成”来仔细琢磨一下,我们还做了什么必不可少的环节?

比方说功能需求or软件需求到测试需求的转换、梳理上下游系统的关联和交互、根据调用链or数据流圈定回归测试范围、结合业务设计全流程覆盖的测试场景并造数据等等。

当你把工序细化到每一项有明确产出物的工作项时,你就会清楚哪做得到位,哪做得还不够;同时,对应这些工序要做到什么程度也就有了目标了。

在工艺和工序上深入思考,就能基本上搞清楚“测什么”这个问题。下面我们再继续来谈谈怎么测。

先说方法,它是指测试的方法和策略,也就是思路。这个是大家经常讨论,有很多借鉴和参考,并且已经有很多方法论可供学习的。

核心也基本上都是从软件产品质量六性出发,划分出测试类别,然后针对测试类别思考采用什么测试方法。

需要注意的是对于测试方法的灵活运用,以及考虑投入和产出的平衡。这部分内容在网络上或者测试专业书籍都有大量的、详细的介绍,大家有兴趣可以自行搜索阅读。

再说手段,它是指我们测试方法的具体落实,也就是实操。大多数情况下工具就代表了手段,毕竟咱们人类使用工具基本上已经成了一种本能。

做什么事之前都会想想有什么可用的工具没有,这正是工欲善其事,必先利其器。它和测试方法经常被一起提及,我相信大家说起来也是如数家珍。

手段这方面是目前大多数软件测试职业培训主打的一点,也是大多数想入行或者入行后想迅速提升的同学们可以选择的路径。但是请大家注意,手段只是软件测试技术中的一个方面,应该重视,但不能过于重视。

不能因为会用工具、会些自动化测试就鄙视手工测试,因为两者没有优劣之分。

上一页123下一页


留言