(有那么一闪而过的想法——将文章名定为“史上最全的软件测试能力图谱”,但我具有良好的批判性思维素质,深知“没有最全,只有更全” ;还有那么一闪而过的想法——将文章名定为“让你尖叫的软件测试能力图谱.....” 但有某种倾向 😄, 还是回归朴实为好)
经常被测试人员问到这样的问题:
-
测试工程师的需要什么能力?
-
我要掌握什么方面的知识?
-
测试人员最重要的能力是什么?
-
如何不断提升自己的能力?
今天就呈现自己利用业余时间做的一幅软件测试能力图谱, 全方位解析研发人员(不局限于测试人员) 需要哪些方面的测试能力、具有哪些能力才能成为一名合格的测试工程师。并说明这些能力之间有什么关系、以及如何不断提升自己的能力、向哪些点进行突破......
先从基本能力看,把它归为三项,没有这个基础,不仅难以开展测试工作,今后的成长也会很困难。(由于时间关系,不细谈了,以后见面或在学习平台上再详细交流):
-
软实力
-
测试基础理论
-
基本测试能力
(由于微信自动打上水印,个别看不清楚,别急,后面还有机会:竖条、完整图谱)
低水平的测试就会执行,像用户那样执行,几乎没有门槛,那不是专业人员,可以忽略。谈到专业测试,人们往往首先想到的是测试设计。但测试设计的基础是分析,而分析的基础是测试思维方式和思维能力。而且测试人员最好先做几年开发——理解架构、程序和代码等,具备良好的开发能力,了解开发人员的思维和习惯,然后再做测试,就更容易成长为优秀测试工程师。在许多公司(如华为),把开发者测试(主要是单元测试、集成测试)称为“LLT:Low Level Testing (底层测试、甚至可以翻译为低层测试、下层测试)”,只有具备底层测试能力,才能走向高层测试。
-
测试思维方式能力
-
测试分析能力
-
开发者测试能力
有了上面两层能力,基本可以干活了,做LLT、做功能测试,但还缺一层能力。纯碎的算法、工具等测试,可能不需要业务,但绝大多数的测试工作都和业务相关,需要业务理解能力。不理解业务,一定做不好测试。基于业务、基于分析,培养自己的设计能力、自动化测试能力,才是靠谱、坚固耐用的。如果没有业务、没有分析、没有测试基础,自动化测试能力只是空中楼阁。现在流行“测试开发”岗位,也应该是“测试在先、开发在后”。
-
业务理解拓展能力
-
测试设计能力
-
测试自动化能力
具备了良好的前三层能力(总共有33种能力,不容易吧),才算是一个合格的工程师。这时,可以追求一些突破,在专项测试上的突破、在测试效率/速度上的突破、在管理上的突破,成为测试领域技术专家、成为技术管理者。
-
专项测试能力
-
快速测试能力
-
测试管理能力
为了让大家看得清楚,换个方向看,可以粗糙地(不够准确)分为三种能力:
-
专业测试能力:测试基础、分析、设计等能力;
-
计算机技术能力:偏计算机技术,如开发者测试、性能测试、自动化测试工具和框架开发等;
-
软实力与业务能力:如沟通交流、思维能力、管理能力等。
最好上一张完整的测试图谱:
当然,欢迎大家批评、建议和补充。