为什么要了解能力模型
王阳明曾在《传习录》中提到过一个思想:以终为始。所谓“以终为始”,意味着在行动的开始阶段就要考虑到最终的目标和结果,以此来指导自己的行动和选择。那么如果我们想在自己的行业内获取好的职业发展,第一步不是要努力,而是要知道如何努力。人对于自己未来的恐惧都是因为太多的不确定性,不确定自己选择这个行业是对是错;不确定自己明年还能不能晋级;不确定自己什么时候被裁;不确定自己什么时候被行业淘汰。那么如何把握自己的人生,选择自己的未来,就要确定一个方向和目标。而一个行业、一个专业的能力模型就代表了你在这个行业是如何选择自己的人生与未来的。
什么是能力模型
每家公司会根据职能、级别去设定不同的能力模型,能力模型需要清楚的定义每个维度、每个级别所需要的能力。在测试行业中,主要分为业务测试工程师、测试开发工程师。那么对于这两个职能,相应的能力要求也不尽相同。
业务测试工程师能力模型
业务测试工程师的能力模型主要有以下 5 个维度:
能力维度 | Lv.1 | Lv.2 | Lv.3 |
---|---|---|---|
需求理解 | 能够理解产品需求规格说明定义的显性需求。 | 能很好的理解产品的显性需求并能挖掘出产品隐性需求(非功能性需求);可充分考虑到需求的异常场景,能发现需求中考虑不周的问题,并提出改进建议。 | 能深入理解产品需求,了解用户原始需求并关注产品需求价值,能在众多需求中识别出关键产品需求,筛选伪需求;能结合自己对产品的理解提出建设性意见;针对需求能够评估和预见后续存在的测试风险和需要采取的措施。 |
架构理解 | 了解产品基本业务流程。 | 对技术架构有基本的理解,清楚前后端架构设计的基本逻辑;熟悉业务架构,清楚各产品内模块间依赖关系、业务关联。 | 深入理解系统架构,包括负载均衡、分布式架构、数据库集群及读写分离、消息队列、缓存、CDN等的机制、原理,并可对相关问题进行分析定位;参与系统架构规划、设计,进行风险评估,确保系统的可测性。 |
测试设计 | 熟悉边界值、等价类、错误推断等常用测试用例设计方法,可根据需求规格中定义的需求,设计合理的功能性测试用例。 | 可补充新需求、需求变更对业务影响后的测试用例;测试用例涉及系统异常场景。 | 测试用例可覆盖业务全场景,并覆盖非功能性质量特性;测试方案设计会考虑。 |
测试工具应用/脚本开发 | 熟悉自动化测试工具,可执行自动化测试case并查看结果。 | 熟练运用自动化测试工具或框架,开发自动化测试case,执行回归测试,提升测试效率,或可开发简单工具、脚本,提升测试效率。 | 能够根据实际需要,自行设计开发测试工具或脚本,丰富测试手段、显著提升测试效率。 |
测试总结 | 无 | 能通过对Bug数据的分析,找出Bug出现规律,并推动开发根本上解决,预防类似Bug再次出现。 | 通过总结分析质量影响因子,推动解决相关问题,确保质量目标达成。 |
测试开发工程师能力模型
测试开发工程师的能力模型主要有以下4个维度:
能力维度 | Lv.2 | Lv.3 |
---|---|---|
架构理解 | 对产品的技术架构有基本的理解和掌握,清楚前后端架构设计的基本逻辑,如熟悉客户端、服务端、数据库3层架构的基本逻辑,熟悉加解密、API认证验签等作用及原理。 | 对产品的各个分层模块/server的架构设计都有非常系统的理解,如熟悉负载均衡、分布式架构、数据库集群及读写分离、缓存、CDN等机制及原理。 |
开发语言应用 | 熟悉 Java/C++/python 等至少一种编程语言。 | 精通 Java/C++/python 等至少一种编程语言,熟悉机器学习等前沿技术,并可应用在实际工作中。 |
测试工具/平台开发 | 负责测试工具/平台的框架设计、功能开发及维护工作,并根据工具使用效果不断优化。 | 通过引入新的测试技术及测试方法,丰富测试手段,在更早、更深、更多、更快发现 Bug 方面做出贡献;开发测试工具,技术贡献惠及不同业务。 |
专项测试 | 能独立负责 App 性能、API性能测试等专项测试工作;实现部分专项测试的自动化,减少人力投入。 | 通过性能故障的定位分析及推动,对性能提升(如crash率下降、卡顿率下降、API响应时间减少)做出显著贡献;实现专项测试的全自动化,极大提升测试效率。 |
根据能力模型做提升
了解能力模型之后,就进入到下一个话题,即,如何能够提升到对应能力模型的能力呢?王阳明除了以终为始之外,还提出过知行合一这样的伟大思想。所谓知,即为人的认知,所谓行,即为人的行为。而前文提到的能力模型,就是我们的认知。接下来我们就需要采取行动,完成“知行合一”。针对于以上不同的能力模型的要求,也有对应的匹配课程:
业务测试工程师
- 需求理解:《测试开发体系介绍》、《测试用例设计》两个专题课有对应内容的讲解。
- 架构理解:在《测试开发体系介绍》专题课中,被测系统架构与数据流分析章节讲解了与架构理解相关的方法,在《中间件测试》专题课中有关于包括缓存数据库、消息列队相关的测试方法。
- 测试设计:在《测试用例设计》与《测试流程》专题课中,有关于测试设计的讲解内容。
- 测试工具应用/脚本开发:在《用户端 Web 功能测试》、《用户端 App 功能测试》、《用户端 Web 自动化测试》、《用户端 App 自动化测试》、《接口测试》、《接口自动化测试》专题课中有对应讲解
- 测试总结:测试总结是软技能的一部分,考察的是一个人的分析问题、总结问题的能力,除了新添加的《测试方案设计》直播课之外,还可以通过私教服务,找私教老师做针对性提升。
测试开发工程师
- 架构理解:同业务测试工程师
- 开发语言应用:在 《编程语言》、《测试框架》两个章节会重点给大家讲解开发语言相关的知识。
- 测试工具/平台开发:在《测试平台》、《数据驱动自动化测试框架》两个专题课会给大家讲解相关的使用。
- 专项测试:《性能测试》、《专项测试》、《SDK测试》等是针对于服务端与客户端测试对应的知识。