学习软件质量报道朱少民老师的软件测试能力图谱。
看过相声的,都知道相声基本功有说、学、逗和唱。那有没有思考过测试有哪些基本功呢?
你是不是也会经常被测试人员问到这样的问题:测试工程师的需要什么能力?我要掌握什么方面的知识?测试人员最重要的能力是什么?如何不断提升自己的能力?
先从三项基本能力看,没有这个基础,不仅难以开展测试工作,今后的成长也会很困难。这三项基本能力是软实力、测试基础理论和基本测试能力。
低水平的测试就会执行,像用户那样执行,几乎没有门槛,那不是专业人员,可以忽略。谈到专业测试,人们往往首先想到的是测试设计。但测试设计的基础是分析,而分析的基础是测试思维方式和思维能力。而且测试人员最好先做几年开发——理解架构、程序和代码等,具备良好的开发能力,了解开发人员的思维和习惯,然后再做测试,就更容易成长为优秀测试工程师。在许多公司(如华为),把开发者测试(主要是单元测试、集成测试)称为“LLT:Low Level Testing (底层测试、甚至可以翻译为低层测试、下层测试)”,只有具备底层测试能力,才能走向高层测试。
这一层能力总结为测试思维方式能力、测试分析能力和开发者测试能力
有了上面两层能力,基本可以干活了,做LLT、做功能测试,但还缺一层能力。纯碎的算法、工具等测试,可能不需要业务,但绝大多数的测试工作都和业务相关,需要业务理解能力。不理解业务,一定做不好测试。基于业务、基于分析,培养自己的设计能力、自动化测试能力,才是靠谱、坚固耐用的。如果没有业务、没有分析、没有测试基础,自动化测试能力只是空中楼阁。现在流行“测试开发”岗位,也应该是“测试在先、开发在后”。
这一层概括为 业务理解拓展能力、测试设计能力和测试自动化能力。
具备了良好的前三层能力(总共有33种能力,不容易吧),才算是一个合格的工程师。这时,可以追求一些突破,在专项测试上的突破、在测试效率/速度上的突破、在管理上的突破,成为测试领域技术专家、成为技术管理者。
这一层概括为专项测试能力、快速测试能力和测试管理能力。
为了让大家看得清楚,换个方向看,可以粗糙地(不够准确)分为三种能力:
专业测试能力:测试基础、分析、设计等能力;快速测试能力包括启发式测试策略应用、探索测试、面向API的测试开发、持续优化工具框架。测试设计能力包括测试架构设计、测试策略制定、测试场景/用例设计、测试数据。测试分析能力包括测试需求/范围分析、产品元素分析、测试风险分析和测试建模。基本测试能力包括基本的业务知识、测试基础知识和测试工具的基本使用。
计算机技术能力:偏计算机技术,如开发者测试、性能测试、自动化测试工具和框架开发等;专项测试能力包括性能测试、安全性测试、大数据测试和人工智能。测试自动化能力包括TA框架设计与开发、脚本开发与调试、测试建模、工具熟练度。开发者测试能力包括单元测试、集成测试、Mock技术、代码能力。测试基础理论包括软件工程学、形式化方法、心理学。
软实力与业务能力:如沟通交流、思维能力、管理能力等。测试管理能力包括测试计划、过程控制与跟进、领导力、环境与需求管理。业务理解拓展能力包括对客户的洞察力、业务理解、业务建模、缺陷根因分析。测试思维方式能力包括逻辑思维、创造性思维、情景式思维、批判性思维。软实力包括沟通与协作、学习的能力、观察力/专注力。
网友评论