• 我觉得我自己的能量没大到能改变测试这个职位的, 我只想输出一下自己的观点和经验, 让多一点的 QA 能多拿点工资,少加点班,多被人尊重一点。 认可我观点的能有方向去努力就好了, 不认可的话我也接受。 尽人事, 其他的随意了。

  • 一定要记住, 免费的才是最贵的。

  • 这个事情其实是很简单的一个问题, 咱们都是拿最终结果说话的, 用户看的也是最终结果, 用户不会管你用的第三方组件有没有 bug, 他只管你给他用的产品有没有 bug。 所以如果第三方组件有 bug,那也是你们自己选的, 也要承担相应的后果,这个没什么好说的。

    而且就拿 kafka 来举例子吧, 怎么能保证 push 消息的时候不丢数据,不重复数据? kafka 是给了方案的,但是需要启动 broker 的时候启动参数是有一定的设置, 并且在调用 producer 的 client 的时候把幂等和分布式事务打开, 并且在 consumer 端把 uncommited read 设置为 false。 并且不同的场景设置的方式不同, 比如官方 client, spark 流式对接 kafka, flink 流式对接 kafka,调用的时候怎么设置参数,怎么写 client 的代码都不一样,甚至相同的 client 但是产品不同,场景不同调用的方式也不同。 那这里面研发就容易出错, 所以虽然 kafka 是公认的解决了这种问题的,我们暂且相信他自己没问题,但是他只提供方案,怎么用是研发自己写的代码,所以你是测还是不测? 只要它放到了产品里, 产品就得负责, 只不过如果你选择相信研发,相信第三方组件,你不测了,也是 OK 的,这是你的测试策略的选择, 策略上选择降低人员学习成本不去测试这些高难度场景,那相应的也得承担万一这里面出了 bug 所带来的风险。 出问题了就得为你选择的策略买单。

    我也同意能力不是一蹴而就的,它是一个循序渐进的过程。 但是质量标准不因为能力而降低。 而且如果 QA 都由于自己能力的问题而理所应当的放弃大量的测试场景, 那么这个 qa 这个职位就永远放弃进步了。

  • 我也没理解

  • 解释这个东西呢要从以下几个方面讲。

    • 中间件是第三方产品, 但也同样是你们产品中的一部分, kafka 是开源的第三方产品, redis 也是,memcached 也是,mysql 也是, 甚至连你们开发用的框架 react,vue,spring,连开发语言本身都是开源的第三方产品。 难道 java 出 bug 了造成用户的损失他们得去起诉 oracle 么? kafka 出 bug 了用户要去找开源社区索赔么?你们研发用的所有的语言,框架, 中间件全是第三方开源产品, 那所以你们的所有 bug 都需要用户找他们去索赔么? 这就好比有个人拿这菜刀砍人了, 然后他说这把刀是 XXX 造的,你去抓他去, 你猜法律会不会同意?
    • 即便是第三方产品,但是用的人是你们自己, 怎么用是没问题的怎么用是有 bug 的是一门很专业的学问。 即便是启动参数的错误也会招致很严重的后果。 所以你不测试,那就等着用户来承担后果。
    • 调度规范从来不是 k8s 自己的出的, 也不是什么云厂商的的规范。 这个就是单纯的自己的产品要搞定的。 你的服务要怎么运行, 要怎么调度,是你自己在使用 k8s 的时候自己编写的配置文件, 还是那个问题, 你自己编写错误导致的后果你让 k8s 或者运营商来买单, 这不是耍流氓么?

    我们怎么评审 test plan? 这个太复杂了, 但我们的 test plan 的原则是一切为了保证质量, 保证最终用户拿到的是质量合格的产品, 而不是在做 test plan 的时候就想好了,如果开发调用 kafka 的时候出 bug 了就甩锅给阿帕奇社区。

  • 找个开源平台, 上面 UI 设计的已经很漂亮了。 然后自己改就是了

  • 所以我也是坚持方法论不是万能的,理论能力再强没有足够的技术支撑也是苍白无力的。这也是为什么我在这篇帖子里回答的第一个答案就是要对产品足够熟悉。 这个对产品熟悉,不仅仅是业务上的,也有对研发架构上的。有了足够的理解才能设计出更完善的测试场景。这也是测试人员的分水岭,非常多的 qa 会被卡在这个分水岭上不得寸进,这是测试人员职业生涯中的一个大坎。 只关注业务的人是很难能体会那些已经熟悉研发架构的人所看到的天空的。 这就像我很难能体会我们公司那些做算法的人所看到的天空一样。 所以实在劝不动了就算了吧。 别影响你们同事之间的关系。 能不能迈过这个坎看他自己的命吧。

  • 有一次听我们 CEO 和我老大聊天,我觉得他表达的还是很准确的, CEO 的意思是大多数互联网产品是不重视质量的, 出了什么事线上直接处理也是可以接受的, C 端用户对错误的容忍度也高。CEO 说我们的 QA 不能学那些互联网的做法,我们要测试的足够深入。

    我觉得 CEO 描述的这个不重视质量的现状造成了大量的 QA 在整个职业生涯内都是只对着业务功能进行测试的。 所以他们自然而然的就会觉得这些就是测试的全部了。 这个倒是很正常的, 没见过的东西自然就很难理解。 就像上面的那个哥们说产品经理不需要很懂技术一样, 因为他只见过业务型的产品和业务型的产品经理, 没接触过技术型产品和技术型产品经理。 所以他就以为产品经理都是不需要懂技术的。 这个是大环境造就的结果。 只要他们有机会经历过一次这样的经验,就会转变想法的。

    所以我们要坚持在测试圈子里推广技术型的 QA,转变很多人的这种思维。 也转变圈外人对 QA 行业没技术含量的误解。

  • 不知道实现哪种技术的话, 那我们怎么测试高可用和稳定性? 比如怎么能测试出来产品中的消息是不会丢的, 不会重复的? 因为都不知道有消息中间件这么个东西。 那到时候线上只要一个网络抖动,用户下单的时候消息丢了, 或者消息重复了, 导致点了下单但实际没下单,或者只下一次单却花了两份钱。 这个 bug 算谁的?

    或者再给你举个例子, 如果一个产品有离线任务来计算数据,而这个产品所有的服务和任务都运行在 k8s 集群里, 集群调度领域是有调度规范的, 比如离线任务不能和产品服务一起被调度到同一个机器上,为什么呢,比如离线任务很可能是 io 密集型或者 cpu 密集型的大数据任务,如果和产品服务调度在同一个节点上会造成离线任务占用大量资源而影响产品服务的稳定性甚至会造成产品服务的崩溃。这种极端情况一般在测试环境是不会触发的,只有在线上极其复杂的流量和大量的压力下才有一定的概率触发。 所以我们团队有个测试用例是检查所有批处理离线任务的调度策略是否是正确的,会不会跟产品服务混部。 这种测试场景是不可能出现在 prd 里的,正如你所说 pm 只关注业务,他不关心底下是怎么实现的。 甚至不少研发都不懂集群调度的规范的,因为他也只关注业务开发,不懂集群的猫腻。 所以如果 qa 不懂 k8s 这门技术, 这个场景怎么测? 都不是怎么测的问题了,而是有几个人能想到这个测试用例

    这就好像之前飞机挡风玻璃在飞行中碎裂的那个事故。 我记得原因是一个螺丝离标准差了 0.1 毫米。 这种螺丝应该达到什么样的规格肯定不会出现在飞机的设计图里的。 如果只根据设计图来测试飞机,这样肯定是不行的。 而是在针对组成这架飞机中的每个部件进行测试。 设计图就是这架飞机的 PRD, 除了要测试这些外,也要保证针对每个部件进行测试。

    我觉得这个道理还是比较好懂的,测试不是只有业务上的功能测试和性能测试。大量的不存在于 PRD 中的非功能性测试都是需要 QA 来保障的。

  • 已阅 at 2020年10月23日

    我的第一感觉就是, 楼主单纯的就是来打广告的。 第二感觉是,楼主是不是对大数据的测试有啥误解

  • 这个水平比我当初强, 我 5 年的时候没楼主强。 来一线城市应该不愁找工作。 就是能到多少钱得看你实际掌握到什么程度了。 楼主说的皮毛我也不知道是不是谦虚。

  • 我们假设一个场景, 如果我们的团队的消息中间件是 kafka 的话, 我们怎么设计这块的测试用例? 产品经理是不懂 kafka 的, PRD 里是肯定写不来这里面的逻辑的, 他只会写业务上的数据流向,属于功能上的设计, 他甚至不知道底下用的是 kafka, 这种情况下, 在不了解开发使用的技术的前提下, 我们怎么测试? 我们怎么知道分布式消息系统的测试点?

  • 我觉得一般是找不到所有的等价类的, 太多的隐含逻辑藏在代码里是 qa 不知道的。

  • 岗位太少, 求职者太多, 人家不能一个个的拉来面试, 所以只能拿点什么来筛人。 这个挺正常的,我 N 年前去华为求职也是这样, hr 看了一眼院校就给我拒了。

  • 演讲稿 ---- 10 年 测试开发 at 2020年10月16日

    你看你 93 的转开发都觉得已经晚了, 我这 87 年的转开发, 不是更晚么。 我所有的经验都是测试和效能提升这边的东西, 转开发我并没有优势。 但是通过学习开发的技能,我的领域慢慢的扩张到了 devops 相关的工作内容, 这是我做的选择 -- 在我有优势的领域里发光发热。 当然不少人选择转研发这个更有挑战的职位也挺好的, 这都是个人的选择。 PS:现在不管什么岗位, 如果想发展的好, 都是需要不停的学习的。 互联网里哪有能躺着挣钱的地方

  • 我感觉就是只要对产品足够的熟就行。

  • 演讲稿 ---- 10 年 测试开发 at 2020年10月15日

    以前我是学点什么东西都写博客记录下来,这样忘了的话就能随时找到。 但是别学现在的我, 我现在不咋写文章了。。。。都是在脑子里, 忘了就重新查。 原因么, 等你有孩子就知道了😂

  • 要是有一堆人跟我想的一样,以后 40 多岁以后都去当老师去了。 那可不就是在跟老师们抢饭碗么。 不跟测试同行争了,那就得去跟别人争。 就是开个饭馆,还得跟对面烤串的争客户呢。

  • 能有这么好待遇的地方,门槛一定超高,要不然大家都去了。 所以别报太大希望。 咱们普通人别幻想那种 活少,压力小,待遇还高的地方了。

  • 我没去过培训机构做全职老师,不太知道啥行情, 但是一般不会比在公司里干挣的多吧 , 要不然岂不是全跑培训机构去了。 再说了都已经是从公司里退出来了, 还要啥自行车了, 降低就降低了, 那时候就是图的稳定了。 路有还多种, 培训机构是一种, 能转行到培训机构, 也就能转行到别的地方, 看自己到时候怎么选了, 不去做培训讲师的话, 那就降薪去外包,转产品,转销售,转技术支持。 我的思路其实挺简单, 尽自己最大努力在公司里发展, 但万一要是等 40 多岁了真遇到了裁员, 那也没办法对吧, 我也没信心能一直做到 50 岁还在公司里。 所以到时候就想其他的出路。

  • 我想的就是以后要是干不动了, 就去个培训机构当老师去。 钱挣的少点呗就是

  • 谁都知道人生下来以后早晚有一天会死, 谁也改变不了这个现状。 那不接受现状怎么办? 难道不活了啊。 我就只能在这个现状下让起码让自己活的更舒服点呗。 同理咱们谁有本事能解决国内加班奋斗 007 的问题呢, 谁也没有啊。 那在等到这个能解决这个问题的大英雄出现之前, 我们是不是还得活下去,对吧。 就像高考一样, 多少人痛恨高考, 但是谁能改变高考呢? 我们要么放弃高考直接走别的路, 要么就是默默的学习提高分数,我也没见有哪个考生牛逼到能改变高考规则的。 所以我希望的就是你们趟平接受现实, 在无力改变高考制度的时候, 抱怨和破罐子破摔是没有用的, 只能是尽力的提高分数让自己上个好大学, 或者直接放弃高考, 你选哪个?

  • 人是有感情的, 但是历史的车轮滚滚碾过去,不带一丝情感, 我们能是继续前进,避免自己被碾过去。

  • 多谢理解

  • 我感觉你的气更大