测试和测试之间的差别在哪里?

测试和测试之间的差别在哪里?

大家都是测试工程师,大家会的技能感觉都差不多,为什么有的人可以步步高升,有的人三五年后却依然在最底层点点点。

是因为对测试的理解出现了差异,还是所掌握的技术不够先进,又或者是思想层次不在一个级别?

同样的一门课,两个人都学会了,都可以熟练的应用到项目里,为什么有的人就能够成为leader,有的人却只能打杂。


[我的回答]2018年8月18日

首先,我们先圈定范围:第一个,题主提到的测试Leader,应该更多的是偏向软件项目层面的测试管理,甚至是做一部分测试管理的测试人员,其主要工作还是测试分析、设计、执行等任务,而不是测试部门经理之类的角色;第二个,尽管测试团队有些人是因为关系或运气好而步步高升的,确实存在一些不公平和偏差。但我们这里探讨的是由于人与人之间真的存在差别,从而有的人做Leader,而有的人只能打杂。

其次,回答题主提到的“大家都是测试工程师,大家会的技能感觉都差不多”这个问题,这应该只是你的表面感觉而已。就以题主提到的“同样的一门课,两个人都学会了,都可以熟练的应用到项目里”,我们以经常说的黑盒技术中的等价类划分和边界值分析为例,通过培训,你们两位都可以熟练的应用到项目中,比如知道怎么划分等价类和边界值,如何组合数据,如何计算覆盖率等,但这还都是表面的。

我们都知道通过培训或自学学习知识,其能力提升是有层次结构的,从记住、理解、应用(就是题主提到的层次)、分析、评估再到创建这样不断提升路径。你看到的是你已经会应用等价类划分和边界值分析了,但是对于另一个人B而言,等价类和边界值他也会应用,但这只是他整个测试知识体系中很小的一部分(此时B的层次处于差不多创建的层次)。我们都知道,测试过程中应用某些测试技术、测试工具都是为了更好的解决问题。那么,等价类和边界值主要是为了解决什么问题?解决测试输入和输入组合太多的问题,而穷尽测试又不可能。你可能只是被动的应用了这2两个技术,而B除了考虑了这2个技术本身,可能还考虑了:

1、穷尽测试不可能,通过等价类和边界值,可以减少输入和输入组合;

2、基于这2个技术选择输入和输入组合,测试内容还是太多,还需要基于风险的思路选择测试重点;

3、时间还是太有限,通过测试执行再去发现等价类和边界值方面的问题,效率和有效性太差,要求测试人员前期参与代码评审,此时等价类和边界值选择的输入可以减少很多;

4、根据前期的需求评审和代码评审发现的缺陷情况,以及分析该部分的质量要求,可能你需要应用等价类和边界值分析的功能,其重要性很低,因此在资源有限情况,测试人员B可能将它的优先级设置为很低;

从上面的等价类和边界值应用过程分析,可以看出,你可能只是懂了两个技术,并被动的应用到测试用例分析和设计过程。而对于B而言,这只是他考虑问题的一小部分,B在应用的时候,已经是置于他构建的整个测试知识体系范畴之下考虑的。但是从你表面看到的感觉两个都差不多。

第三,我们说,每个人都有自己的优点和缺点。假如另一个人B步高升,而我自己在原地踏步,测试人员B一定有很多我所不具备的优势和能力,这应该是去深入模仿和学习的。人与人之间的差别是很大的,表面的测试工作大家可能都差不多,但更多的不同体现在背后的思维不同。

我简单聊聊要做好测试工作,我们需要从哪些维度去学习知识,并作为构建测试知识体系的输入。明确了测试知识体系的构建维度,也就可以从这些层面去查找我和其他人之间的差距在哪里?

领域知识:做好测试工作的基础是你需要深入了解软件产品的行业背景知识,即领域知识。例如我以前是做通讯产品的,那么了解TCP/IP等知识是必须的。而你的测试对象又不是孤立的一个产品,它一定需要和周围很多不同软件产品共同集成为一个更大的系统,因此外围产品的知识你是否也需要去了解?

测试过程:测试不再仅仅关注在测试执行上,我们将测试贯穿于整个软件开发生命周期。因此,你需要知道在整个生命周期内需要做哪些事情,和开发团队等的关系是什么?举个例子:与定义需求的团队的关系是什么?输入输出之间的依赖关系?与项目管理团队的关系?输入输出之间的依赖关系等;就算是测试执行工作,它也不是孤立的,它是整个软件开发生命周期内的组成部分,它必定和周围的所有相关开发活动相关;

测试技术:测试过程中的每个活动,都需要有适合的测试技术支持,从而可以更好的提高测试效率和测试有效性。例如:测试分析与设计,你就需要选择合适的测试分析技术和测试设计技术;制订测试计划,你必定需要测试估算技术和测试风险技术等的支持;

测试管理:测试过程中的每个测试活动都是相互依赖和反馈的,因此对整个测试过程的管理和监控就是必须的,包括收集和分析每个活动的测试数据,并基于分析结果与计划目标进行比较,假如出现大的偏差,必须要采取合适的应对措施活动,以保证测试过程符合计划中的目标要求。

人:前面提到的4个维度,最终一定要落实到人身上,即所有的事情都需要测试人员去完成。此时,每个测试人员除了要具备前面的能力之外,还需要具备其他能力,例如:学习能力、思维能力、沟通能力、解决问题能力、时间管理、动机、性格和价值观等,都会影响你的测试工作。

因此,当测试工作中出现A和B差距不断加大时,大家可以从领域知识、测试过程、测试技术和测试管理,以及关键实施的人几个角度去分析差距的原因,同时,需要将这几个维度构建成适合自己的知识体系,此时你在考虑问题和解决问题时将会从比较全局的视角看待和分析问题。更多内容,也可以参考我的文章:构建高效的软件测试知识体系。

希望,我这个回答能给大家一点思考的思路和方向!

你可能感兴趣的:(测试和测试之间的差别在哪里?)