全新亮相:软件测试能力图谱

经常被测试人员问到这样的问题:

  • 测试工程师的需要什么能力?
  • 我要掌握什么方面的知识?
  • 测试人员最重要的能力是什么?
  • 如何不断提升自己的能力?

今天就呈现自己利用业余时间做的一幅软件测试能力图谱, 全方位解析研发人员(不局限于测试人员) 需要哪些方面的测试能力、具有哪些能力才能成为一名合格的测试工程师。并说明这些能力之间有什么关系、以及如何不断提升自己的能力、向哪些点进行突破……

先从基本能力看,把它归为三项,没有这个基础,不仅难以开展测试工作,今后的成长也会很困难。(由于时间关系,不细谈了,以后见面或在学习平台上再详细交流):

  1. 软实力
  2. 测试基础理论
  3. 基本测试能力(由于微信自动打上水印,个别看不清楚,别急,后面还有机会:竖条、完整图谱)

低水平的测试就会执行,像用户那样执行,几乎没有门槛,那不是专业人员,可以忽略。谈到专业测试,人们往往首先想到的是测试设计。但测试设计的基础是分析而分析的基础是测试思维方式和思维能力。而且测试人员最好先做几年开发——理解架构、程序和代码等,具备良好的开发能力,了解开发人员的思维和习惯,然后再做测试,就更容易成长为优秀测试工程师。在许多公司(如华为),把开发者测试(主要是单元测试、集成测试)称为“LLT:Low Level Testing (底层测试、甚至可以翻译为低层测试、下层测试)”,只有具备底层测试能力,才能走向高层测试。

  1. 测试思维方式能力
  2. 测试分析能力
  3. 开发者测试能力

有了上面两层能力,基本可以干活了,做LLT、做功能测试,但还缺一层能力。纯碎的算法、工具等测试,可能不需要业务,但绝大多数的测试工作都和业务相关,需要业务理解能力。不理解业务,一定做不好测试。基于业务、基于分析,培养自己的设计能力、自动化测试能力,才是靠谱、坚固耐用的。如果没有业务、没有分析、没有测试基础,自动化测试能力只是空中楼阁。现在流行“测试开发”岗位,也应该是“测试在先、开发在后”。

  1. 业务理解拓展能力
  2. 测试设计能力
  3. 测试自动化能力

具备了良好的前三层能力(总共有33种能力,不容易吧),才算是一个合格的工程师。这时,可以追求一些突破,在专项测试上的突破、在测试效率/速度上的突破、在管理上的突破,成为测试领域技术专家、成为技术管理者。

  1. 专项测试能力
  2. 快速测试能力
  3. 测试管理能力

为了让大家看得清楚,换个方向看,可以粗糙地(不够准确)分为三种能力:

  1. 专业测试能力:测试基础、分析、设计等能力;
  2. 计算机技术能力:偏计算机技术,如开发者测试、性能测试、自动化测试工具和框架开发等;
  3. 软实力与业务能力:如沟通交流、思维能力、管理能力等。

最好上一张完整的测试图谱:

当然,欢迎大家批评、建议和补充。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我
  • 上海市嘉定区曹安公路4800号同济大学软件学院
  • kerryzhu@vip.163.com