原创 关于测试工程师技能的思考

2019/01/20 能力模型

职位的类型

测试工程师如果细分的话可以分为:

  1. 功能测试工程师
  2. 测试开发工程师
  3. 性能测试工程师
  4. 安全测试工程师
  5. 自动化测试工程师

1更多的精力是投入到具体的业务当中,沟通和质量保障的能力要非常强,而2~5的专业性更强一些。

如果从技术深度和技术广度来说,1的主要要求是技术广度,而后者2~5的要求更多是技术深度。

在大部分公司里这些职位的界限不是非常清楚,也就是说测试同学可能会负责包含功能、性能、安全测试等类型的工作。

测试内容的分类

如果从测试对象来划分,大概可以将被测内容分为以下几种:

  • web/h5测试、服务端测试
  • Android/IOS、客户端测试
  • 硬件测试
  • 游戏测试

尽管测试内容不相同,但对测试技能要求却基本类似。

测试技能要求

测试开发偏开发的方面的内容以后再做总结,这里我想总结质量保障测试工程师的主要技能,分为三方面。

  • 发现问题
  • 分析问题
  • 推动问题

测试技能

测试分层

互联网产品,作为一个被测系统,可以分为三个层次进行测试,分别是:

  • 单元测试
  • 接口测试
  • UI测试

测试分层

如果说人工测试是测试1.0那么自动化测试则为2.0,以上三层测试能够极大地保障业务质量。如果能够实现自动化,那么能够在一定程度上解放测试的生产力。

然而在实际工作中需要考虑ROI(投入回报率),并不是自动化测试做得越多就越好,还要考虑产品的发展情况和业务功能的变更频率。

自动化测试覆盖率的提高伴随而来的往往是越来越高的维护成本,越底层的逻辑改变,就会影响越多的上层业务。

自动化测试的基本原则应该是:核心的业务,变更频率相对较低的功能适合做自动化,而变更频率高的业务需要谨慎选择自动化测试或者退化为人工测试。

所以从上面的层次可以看出,单元测试相对稳定,适合覆盖更多的业务逻辑,而UI层的业务变化频率较快,环境的稳定和维护成本较大,需要慎重考虑,一般只覆盖核心逻辑,不宜做太多自动化。

Search

    Table of Contents