微信扫描登录
或者
请输入您的邮件地址来登录或者创建帐号
提 交取 消
GITBOOK.CN需要您的浏览器打开cookies设置以支持登录功能

靓汤:回归初心,成为不可替代的测试架构师
作者:Chat 实录

1月5日周四晚8点30分,有十余年自动化性能测试以及六年测试管理及测试过程优化的经验的产品测试架构师靓汤带来了主题为“聊聊测试人员知识的广度与深度,解读老鸟成长经历”的交流。以下是主持人赫阳整理的实录精华,记录下了作者和读者之间问答的精彩片段。


问: 功能性测试能否一直做下去,如果不能,如何转型比较好?

答:先谈谈职业发展,如果功能测试遇到瓶颈可以转产品、业务和测试顾问、测试管理。另外说说要聊的两个关键词:连接、兴趣。

再谈功能测试如果想长远走下去怎么办,首先功能测试个人观点是可以一直做下去,但功能测试要想一直做下去的前提还是要会软件工程,有编程知识,而且对开发设计模式有深入了解,对缺陷模式有学习,对测试有系统的认识,就像文章中提到的。传统的和敏捷下的,都要了解。

如果要走功能的同学最好有一下特性:好奇心强、会用户思维、沟通能力强,能在业务、需求、研发、产品上建立连接。把自己当成路由器。就算罗胖只说的AI时代到来了,这种人还能有饭碗。这就是第一个关键词。另外,最重要的就是兴趣,有兴趣什么都干的跟打鸡血似的。比如我,我以前就特爱功能测试,最疯狂的一天提了100多个问题单,特别有成就感。年末统计自己一个人站了饼图一大半,体会一下心情。

另外,再吐吐槽。在我看来整个测试界一直没有新突破,原因可能就在测试理论上没有突破,大家可以向这个方面努力,现在几乎没有我文章中提到的《软件测试》、《软件藏宝图》这样的好书或好图了。梅子的书算一本不错的。

再说一说转型方法:就是找到自己喜欢的点,走一步看一步,有没有发现。只有去了解更多的非功能测试才能让自己的功能测变得更深更有高度。比如我文章开始引用的例子就是这样。如果可以的话,麻烦整理讨论的时候可以把那个例子引入进来,大家在去体会一下。知识深度一定要借助知识广度。见多时光才可以做到。

如果发现自己产品有天赋,有喜欢干嘛不做产品呢?


问:测试如何更有效的跟进一个问题的修复?

答:谈谈我的理解,如果没有回答好可以随时提问,放到后面回答。

首先要知道问题的生命周期,新建、打开、修复、回归、关闭、重新打开、再次关闭等状态,并充分了解各种状态之间的流转关系。

再看看周期中的角色:比如测试、研发、测试经理、研发经理、决策委员会。这里是角色不是人员,这里可能是3个人可能是2个人或跟多人。但要理解他们是干什么的?

然后就是问题本身:需要提问者:思路清晰/论据充分(也就是说研发能重现问题,能推导原因) 沟通时间选择:找对了时间,研发很开心的解决。找错了时间就会起冲突,可能还有争吵。如何选择时间呢,早上和午觉后是一个比较好的点。或者团队沟通一个时间点出来也行,记得控制好时间。

沟通方式选择:在敏捷中,通常白班是比较好的方式。站会就过了,谈一个验证的时间就好。在传统模式中可以每天上班前发一下测试缺陷汇总情况。有没有发现这是一个拆的过程,把难题分解了,把最核心问题暴露出来。

另外就是问题本身:如何重现、日志文件是否记录、环境情况如何、数据库情况如何、配置情况如何。特别是环境情况,如环境中的负载均衡配置不一导致。有了这些条件,开发定位问题就变得容易很多。刚刚谈到的沟通,补充一下频次:不能太平凡,特别是离上线时间还早的时候。最多一天不要超过两次。

沟通技巧:不要说,你又出bug了,而说,可能是环境问题,测试环境老报问题,能不能帮忙重新一下。不然他们会说,我这里很正常啊。是不是你操作出问题了。如果你是要定位或提高从现率,给两个方法:

第一招叫最简存活条件法。 比如一个功能验证,拥有同一个web应用的服务器有4个,那么定位问题的时候就留一个好了,让负载均衡找剩下来那一个就好。如果你是通过域名访问,那么你就使用IP访问就好了。也许就在你在做减法的过程中你就找到了问题点。这个方法可以叫减法。

第二招叫分段切割法。比如你的问题出现在页面。可以先看看数据库情况。如果数据库有了,问题一定在代码和去前端的路上。在看看前端,是不是数据来了。用好google浏览器的工具,或一些抓包工具。如果前端数据也来了,那么一定就是页面渲染出问题了。系统就是一个数据的搬运工。对于线上问题就需要尽可能的模拟场景了。数据库数据正确了,另外做好功能开关和日志开关,监控好JVM等中间件等。


问:手工测试技能发展到一定程度,就遇到瓶颈,而现在自动化测试人员需求较少,这个怎么破?我现在遇到的瓶颈是:测试人员不断地学习增长测试技能,但是实际企业对好技能测试人员的需求比较少,比如很多企业虽然说推行自动化,但事实是很难推动。所以大部分企业招人进去,实际上还是做手工测试,工作强度也比较大,个人学到的东西没有实践的机会。需要推进自动化测试,但是可编程的人员基本上没有。

答:方法一,没有机会就自己找。

工作中很多机会。比如我以前,也没有机会。我就做一小块的自动化。我让所有登录系统功能都自动化。然后做成一个工具给大家用。平时工作也可以用到,比如有的公司需要记录员工工时,那么也可以做一个嘛。

又比如说,我以前找工作太懒了,不想去刷简历,就写了一个脚本每半小时去刷一下招聘网站。机会就比别人多,一般人我不讲的。

又比如说很多论坛要评论后才可以获取积分,这也好办啊,写个脚本吧,如果他要坚持回复内容怎么办,随机处理吧,这样参数化知识就巩固了。

然后就需要让别人看到好处。以前很多人都推崇让开发人员做单元测试,测试人员一边去,你就玩玩SoapUI让项目经理和测试经理看看原来还有这么高效的方法。你说他愿不愿意。不要想到缺资源,资源不可能看不到利益就给你的。公司要利润。


问:我提个问题:测试的广度是需要时间积累,那么站在对比情况下,是不是应该以深度为主,挖掘当前业务的深度再扩展业务涉及的广度;现测试涉及专业知识,工具,团队,方法,各种软硬件产品等很大一块,如果一味看广度知识,感觉会走错路,什么都知道一点但其实什么也不懂。想听听靓汤老师的看法。

答:还是我文章开始的例子。广度一定要掌握,不然不会有后面的深度。但我在文章末尾又提到了,不要忘记自己的初心,初心是什么就是为了深度,因为深度很值钱,深度的东西研究起来让人痴迷。

时刻想到我现在扩展的知识广度对我要掌握的知识有什么帮助。如果没有帮助就不要在了解了。如果有就深入下去。比如我了解接口开发,就能够在接口测试时看到没有对参数命名的原因。可以引导开发修改。这是开发就会对你有不同的看法,你的地位就有提高。


问:因为我理解是在公司测试产品,是不是该以公司产品为深度来扩展产品的广度?

答:不全是,应该自私点,以你的职业规划比较好。

还有就是,停下来检视,总结。把有帮助的圈起来,把没有帮助的干掉。我以前不理解为什么会有人清理朋友圈。我现在也会,因为太多会迷失。就像那些有很多女朋友的同事一样。看花眼了,最后自己剩下了。我现在也会从一些没有价值的群里直接退出来,原因简单,我需要高质量的知识群。其他的在浪费我阅读时间。

归根到底:初心很重要,时时刻刻检视自己。


问:人对事物的认识通常会经历“不知道自己不知道”、“知道自己不知道”、“不知道自己知道”、“知道自己知道”的过程,按我个人的理解,扩大广度就是减少“不知道自己不知道”的那些知识,而堆叠深度就是增加“知道自己知道”的那些知识。那么问题来了:文中提到的“定广度”有个比较难的阶段就是由于“不知道自己不知道”,所以定出来的广度其实很有可能还是局限于“知道自己不知道”的那些内容,有没有一个好办法可以了解到更多自己从未听说过的知识的存在呢?

答:这个问题很好,有点拗口,其实是自己和知识本身两个维度来看问题。其实个人觉得我们认识知识、掌握知识有两个大问题。最大的问题我认为是不知道自己知道,其次是不知道自己不知道。

先回答不知道自己不知道这个问题:可以常常来GitChat,比如很多人没有听说过敏捷测试,那我下次就可以来分享。其实我通常的做法就是线上认识大牛、找导师,当然不好找。你要上微博,你要上百度,你要上知名的论坛,比如51testing、testerhome等。如果不知道就跑到公众号上去搜软件测试、性能测试、自动化测试、测试体系等等。这个比上百度号,如果将来GitChat人多了,在细分一下。

其实线下认识大牛最好的途径就是,参加线下活动,参加有线下活动的社交群。然后就是朋友引荐的,最好能一起完成一件事情的,比如外包一个测试项目来做,不求金钱上的收益,哪怕就同他打打杂,也会收获满满的。

第二个就是,是不知道自己知道,不知道自己不知道。这是导致很多同学知识增长慢的原因之一。每当知识掌握多了,自己就容易混乱,零碎的知识得不到提炼。感觉自己解决问题很快,别人有问题都能解决,就是提炼不出方法论,在分享知识和堆叠知识就会出现烦乱的情况,这也是导致很多人走不出去,不自信的原因。可以这样理解首先个人要有对知识有系统的认识,能实现的方法就是不断总结和出来分享,只要这样才能让自己的知识成体系。

如果线上线下都找不到愿意帮助你的大牛,那就找GitChat啊,呵呵,其实还可以花钱去找专业培训机构,他们对知识的理解是系统的,对于你入门和找到不知道的是非常有帮助的。

最后一招就是勤快换工作,让阅历丰富自己不知道的东西。


问:怎么样提高测试的地位?

答:前面提到一些方法可以参考,总结一下:

  1. 对研发、业务、产品多做补充和支持。
  2. 做节点,让团队少不了你。这个问题其实反应了现在普遍测试人员地位低的问题。所以要努力争取去做节点,把自己变成所有人员沟通交流、工作交付的节点,用交通枢纽形容比较形象。

做不可替代的人员,比如研发不懂CI,想快速打包要找你。研发想压个性能要找你,监控服务器的情况还要找你,excel的使用有问题了还要找你……你地位就来了。


问: 我想提个问题,自动化测试到底应不应该由测试人员来做,功能测试是否就跟现在大家所说的那样没了市场,必须赶潮流都去学自动化,功能测试有没有回归他本身的价值的可能,我本身觉得作为测试人员来说,业务功能测试会比自动化测试人员价值大。

答:我第一篇文章中有图,技术和业务分开。现在团队很烦躁,知识沉淀难。技术让精英去做。敏捷测试中可以去做用户故事、实例化需求等。还是建议看看梅子的书,然后把理论浅显的讲给管理人员听,人他们看到测试的重要性。当然要很努力才行,测试没有回归本位,要大家努力。一定是业务价值更大,软件是卖钱的,不是为了测试而测试。


问:如何做到测试工程师到测试架构师或技术顾问的转型?

答:

  1. 体系化的了解理论知识。
  2. 试试带测试团队,给团队解决方案,把控好测试过程。
  3. 走出去做分享,到其他公司去,到其他社交圈去。
  4. 最后就是,在看看梅子的书了。

问:如何在功能测试的过程中提高自己的技术实力。在测试职业生涯中,在一到三年,三到五年分别应该着重提升自己的哪些技能?

答:抓住一个点,追根到底。定学习计划、一个月掌握一样新技术。我现在就在这样做,强迫自己,然后厚着脸皮去分享。发现学一点不够忽悠,就的多学点。学习一定要从上到下,系统化的认识和学习。就是文章中提到的先拓展知识广度,在拓展知识深度。


问:在测试职业生涯中,在一到三年、三到五年,分别应该着重提升自己的哪些技能。

答:我是这样的,一到三年,乱学,只要是测试相关的都学习。因为发现自己什么都不懂,哪里都是知识点。先混沌,在清晰。但是一到三年这个时间点,需要把文章中提到的知识都去涉及。我研发的时候不会乱炖,研发知识点相对单一。测试要学习的知识面就太广多了……

也就是说一到三年传统和敏捷都要掌握。其实文章中有,感兴趣的同学回头看看。三到五年就去了解自动化和性能等专项测试知识了。五年后相信自己方向已经定下来了。就不断提升深度。我现在回回头看看以前知识,特别是研发知识和架构先关知识。因为性能测试需要。


问:我还想问一下,到底测试架构师是干嘛的啊?

答:这么理解吧,把自己当成总工程师就好吧。你要出策略,你要把控好可能的风险。看来文章里的知识点全要拓展。


问:有人说,除闪退和卡死问题外剩下的bug理论上全是必现的,你们认同吗?那如果这个说法是针对于app呢?

答:不认同,应该说所有问题都能重现,只是重现的成本和难度不一样。特别是缓存测试。还有就是前台一些js没有版本导致的问题。还有就是在分布式下面的问题,app依然有缓存。后台也有分布式。另外就是微服务下面的灰度发布等,都会导致不重新问题。不同节点下配置问题,可能导致分布式下不重新bug,但最终都都能找到原因。另外就是硬件问题,也是由设计缺陷或生产工艺导致的。

Chat文章:《聊聊软测人员知识的深与广,解读老鸟成长经历》


在此感谢图灵公司,为本场Chat的获奖读者提供了《进化:从孤胆极客到高效团队》。

enter image description here


enter image description here

enter image description here