最近读了James大叔的一篇总结Tester类型的文章,获益良多。原文叫做Seven Kinds of Testers(链接:http://www.satisfice.com/blog/archives/893)。

可爱的James大叔还对每种类型的Tester给出了忠告。其实后最三种并非专职的Tester,而是做着和Tester相关工作的其他工种。

  • Administrative Tester-管理型Tester

该类型的Tester主要是做task或者做卡(敏捷项目中的Story卡),目标就是把手上的工作完成。

低水平的管理型Tester主要就是跑case这类的手工测试。

高水平的管理型Tester是协调者,例如测试经理,测试lead,主要工作是获取资源,更新Dashboard等。

来自James大叔的忠告:不要只关注测试流程而忽略了测试本身。

本人拙见:这种类型的Tester在外包公司很常见,外包公司的测试会有很多沟通交流的工作,真正用在测试上的时间并不多,且测试的东西大多很简单。。。

  • Technical Tester - 技术型Tester

该类型的Tester擅长构建和使用工具,喜欢从代码角度考虑问题。因为他们说着程序员的语言,所以很倡导可测试性。在Google和Microsoft,这类人叫做SDET。

来自James大叔的忠告:太着迷于工具,从而会避免测试那些不容易使用工具测试的东西,更倾向学习工具而不是测试。

本人拙见:可测试性对于TDD来说很重要。合适的工具也很有用,自动化测试不都是使用工具么。。。很多公司还会开发自己的测试工具。虽然James大叔有点极端,但是,工具只是辅助手段,工具服务于测试,核心还是测试本身。就像很多人会觉得自动化测试比手工测试高级,就测试本身来说,自动化可以代替重复的工作,提高效率,构建安全网。手工测试能充分发挥测试人员的主观能动性,能在自动化节省出的那些时间里,更加深入,全面的探索。好的手工测试人员是很有价值的。

  • Analytical Tester -分析型Tester

该类型的Tester喜欢使用模型,数学成绩很好。很会运用各种图,矩阵,表等,喜欢做组合测试。

来自James大叔的忠告:倾向于规划瘫痪(我:过于追求计划的意思么?)常常梦想最优而不是最合适的测试集(我:太追求完美么?)

本人拙见:测试是需要经过思考和设计的,不是有些人想的那样,测试只是上来就点点点。我们有很多帮助测试设计的方法和模型(如边界值,判定表,组合测试等)。Tester都知道,测试用例是无法穷举的,那些方法和模型能帮助我们在无尽的测试用例中挑选出覆盖率最优的测试集。

  • Social Tester - 社交型Tester

社交型Tester需要你(来自James大叔的呐喊)!社交型Tester擅长发现所有能帮助他们的人,并且更愿意在一个团队而不是单独工作。他们明白并不是所有人都需要想一个整体解决方案,其他人通常已经完成了需要完成的工作。他们也知道测试不一定需要编程,但编程肯定有帮助。一个好的社交型测试会培养社交资本,为他人提供可信赖的服务。

来自James大叔的忠告:他们可以偷懒,看上去老是游手好闲。并且牺牲工作时间过度社交。

本人拙见:话说我们公司貌似很欢迎这类型的Tester啊~Tester确实需要很好的沟通交流能力。需求不明确,要和BA和客户沟通;发现Bug了,要和Dev沟通;自己不会写代码,要发动Dev们来写。。。作为一个Tester,需要充分利用团队可利用的资源,来协助自己更好的完成测试工作,而不是一个人闷头在那默默的把所有事都做了。。。

  • Empathic Tester - 投入型Tester

很有同理心,很能体会用户的需要。他们和用户专家不太一样。因为做一个模拟用户的测试和做测试的用户是不一样的。没有技术背景的测试通常采用这种方式。James大叔表示他之前一直没有承认也没有尊重过这种方式。

来自James大叔的忠告:投入型Tester通常很难描述清楚他们做了什么以及怎么做的。

本人拙见:听起来很像易用性和可用性测试这类非功能测试范畴,确实不好描述和度量。。。

  • User Expert -用户专家

也称为领域专家或者主题专家。他们不认为自己是测试,但是却作为潜在的帮助测试的用户。

来自James大叔的忠告:没有被定义为Tester,没有趋向学习和开发测试技能。

本人拙见:人家本来就不是Tester,但Tester也需要这种Sense。

  • Developer - 开发

开发也经常测试。他们的理想位置是单元测试,同时也设计可测试的产品。技术型测试可以同时作为开发,当开发进入测试,也通常作为技术型测试。

来自James大叔的忠告:没有被定义为Tester,没有趋向学习和开发测试技能。

本人拙见:懂测试的开发绝对比不懂测试的开发受欢迎~如James大叔所说,产品代码都是开发写的,如果开发在写代码的时候能考虑产品的可测性,将大大减轻测试工作的难度。

我也一直在思考Tester的发展方向的问题,最常见的就是Tester-》Senior Tester-》Test lead-》Test Manager这条路。James大叔从另一个角度给出了另一种选择。我不认为,一辈子写代码(不做PM)或者一辈子做一个Tester(不做Manager)是一件羞耻的事情,试想一个Tester集成了以上七种技能,或者在任何一方面做的非常精深,还怕找不到自身价值么。

如需转载,请注明出处,这是对他人劳动成果的尊重~

 

Seven Kinds of Testers - 七种类型的测试的更多相关文章

  1. ES6学习笔记(八)第七种类型Symbol

    1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种 ...

  2. Linux下文件的七种类型

    文件属性 1. 本章引言 上一章通过学习文件io,知道了如何使用文件io来打开文件,对文件进行读写等操作,那么我们这一章将换一个角度,专门围绕文件属性进行相关的讨论. 1.1 什么是文件属性? 我们通 ...

  3. Mysql表的七种引擎类型,InnoDB和MyISAM引擎对比区别总结

    InnoDB和MyISAM区别总结 我用MySQL的时候用的是Navicat for MySQL(Navicat for mysql v9.0.15注册码生成器)操作库.表操作的,默认的表就是Inno ...

  4. asp.net学习之GridView七种字段

    原文:asp.net学习之GridView七种字段 asp.net中GridView绑定到数据源时,可以自动显示数据源的各个字段.只要设定其AutoGenerateColumns为TRUE即可.但这, ...

  5. JavaScript中七种数据类型·中·一

    Standing on Shoulders of Giants; 说到JavaScript里的类型很容易就让人想起 42和"42",分别是string型和number型,但是他们可 ...

  6. MySQL常用的七种表类型(转)

    MySQL常用的七种表类型(转)   其实MySQL提供的表类型截至到今天已经有13种,各有各的好处,但是民间流传的常用的应该是7种,如果再细化出来,基本上就只有两种:InnoDB.MyIASM两种. ...

  7. 【Linux】七种文件类型

    Linux中的七种文件类型 d 目录文件. l 符号链接(指向另一个文件). s 套接字文件. b 块设备文件,二进制文件. c 字符设备文件. p 命名管道文件. - 普通文件

  8. 【JVM】垃圾回收器总结(2)——七种垃圾回收器类型

    七种垃圾回收器类型 GC的约定参数 DefNew——Default New Generation Tenured——Serial Old ParNew——Parallel New Generation ...

  9. JavaScript 用七种方式教你判断一个变量是否为数组类型

    JavaScript 如何判断一个变量是否为数组类型 引言 正文 方法一 方法二 方法三 方法四 方法五 方法六 方法七 结束语 引言 我们如何判断一个变量是否为数组类型呢? 今天来给大家介绍七种方式 ...

随机推荐

  1. Liu Junqiao:工作中用到的命令以及问题汇总

    工作中用到的命令以及问题汇总 2019-11-29 查看系统运行时间,这个问题是因为我们在阿里云上有个机器,在某一天发现这台机器上有的服务莫名奇妙的停了,然后排查时怀疑机器被重启过用如下如下命令查看了 ...

  2. 逻辑卷管理器LVM

    逻辑卷管理器LVM •将设备指定为物理卷 • 用一个或者多个物理卷来创建一个卷组 • 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的 • 在物理卷上创建的逻辑卷是由物理区 ...

  3. 必威电竞2019或将赞助SKT,携手Faker再创辉煌

    必威电竞yabo055点康母,这是一家相当优秀的竞技娱乐平台,平台涉及的领域也比较广泛,包括各类电子竞技游戏以及相关资讯,平台内有很多专家,每日为大家分享各类热门赛事等一些游戏攻略.现在的电子竞技发展 ...

  4. xamarin调试android部署到模拟器错误记录:Deployment failed Mono.AndroidTools.InstallFailedException: Unexpected install output: Error: Could not access the Package Manager. Is the system running?

    问题记录: 1.生成 ok. 2.昨天也是能部署到模拟器的. 但是今天部署的时候就报了这样的一个错误 Deployment failed Mono.AndroidTools.InstallFailed ...

  5. typescript与nodejs(一)最简单的webserver

    安装nodejs tsc cnpm vscode 这些略 如果网络慢,可以考虑使用CNPM 一. 基本WebServer模块环境 1. 命令行  npm init 初始化一个目录为nodejs项目 2 ...

  6. Oracle数据库的sql语句性能优化

    在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目 ...

  7. 禧云Redis跨机房双向同步实践

    编者荐语: 2019年4月16日跨机房Redis同步中间件(Rotter)上线,团餐率先商用: 以下文章来源于云纵达摩院 ,作者杨海波   禧云信息/研发中心/杨海波 20191115 关键词:Rot ...

  8. ubuntu上编译和使用easy_profiler对C++程序进行性能分析

    本文首发于个人博客https://kezunlin.me/post/91b7cf13/,欢迎阅读最新内容! tutorial to compile and use esay profiler with ...

  9. JavaScript -- 筑基

    本片博客记录了我JavaScript筑基阶段的学习内容,JavaScript不是Java,但是我下意识的把它和java对比学习,有些地方比较有趣,有些地方从java角度看,简直匪夷所思,不过现在总体感 ...

  10. Jupyter Notebook 使用小记

    简介 Jupyter Notebook 是一款几乎综合所有编程语言,能够把软件代码.计算输出.解释文档.多媒体资源整合在一起的多功能科学计算平台.具有如下优点: 整合所有资源 交互性编程体验 零成本重 ...