赞
踩
作者:这篇文章有点长,逻辑很多,没看完或没读透,很容易断章取义或扭曲原意,请一定要仔细看!
ChatGPT除了带来新的技术革命,好像也带来了不少焦虑感,也造成了一些学员对未来的困惑。
我曾经想要讨论过“软件测试的本质”,但当时我还没想得很透,过了近一年,为了回答这个问题,我想先给出一个阶段性的答案:避免风险。
没错,软件测试的本质就是避免风险,当我们选择不做测试的时候,最根本的原因跟想法,就是选择了“接受风险”。
测试测不完?没办法,项目时间是订死的,直接发版吧
回归测试有五百条要测?这样测不完,不然测到哪算到哪吧
测试要补人?先不用吧,先加在开发
相信先抛出这三个,大家能想到千千万万个同样是被迫选择接受风险的场景。
在“避免风险”的基石下,我们要怎么让产品没有Bug?
通常会有两个出发点:
减少Bug的产生
发现Bug的方法
但在这两个问题点之前,又有一个问题要被解决,到底什么叫Bug? 这个问题比我硕博在研究的认识论Epistemology还要难解决,都是种哲学问题。
前阵子才有篇新闻,说ChatGPT被发现有Bug,因为没有办法限制在十个字以内回答问题,结果后续就很多人回覆说条件要下对,或是模型是要训练等等解法。
所以往往Bug的来源是源自于用户,而企业创造产品是为了满足用户,只要某种层面上无法获得用户买单,就会被视为Bug,因为人们很容易从自己身上找问题,却忘记了用户是没有共性的,每个都是独立的个体。
为什么用户都跑去竞争对手那里了,应该是Bug造成我们的速度跟稳定性不好
为什么很多用户都说我们产品很慢或很卡? 用户网络慢? 但别家的都不会啊
既然Bug的定义无解,那就回到前面的两个出发点来讨论:减少Bug的产生
这里指的是从开发人员的角色出发,如何在撰写代码时避免Bug的产生,目前比较有名的就是单元测试, Pair Programing, Code review, 代码静态扫描,这题我就不班门弄斧了,接着讲下一个。
发现Bug的方法
这里是指从测试人员的角色出发,如何在发版前及早的发现Bug,目前比较有名的就测试左移、自动化回归、用人力碾压测试Daily build(???)
这里不谈论哪种方法好,我们就从这些方法作为起点,来谈论上面提到的三个问题。
第一个,公司对测试的投资比例
可以先从人力、时间、金钱三个角度来评估一下自己的公司在测试上的投资比例是否和其他团队比起来很悬殊
人力: 开发人员与测试人员的比例?
时间: 一个发版周期里,测试能用多少时间?
金钱: 从人力推算人事成本,再从采购的软硬件去计算。
扎心,这个状况很现实,毕竟没有产品就没有企业,即使产品存在问题,也还是会有人买单,就像Shopee(作者曾在这里工作过)早期会出现Bug已经不是秘密,我遇到太多次结不了帐的状况,但是仍然是发展到很大的规模。因为大多时候产品不是代码,而是整个商业模式,这些Bug只是一小部分的问题而已,很多时候是可以用其他手段来解决,像是提前揭露Bug或维修时间,用户就能接受并等待。
当公司有满满的资金,为了生存和竞争,会最优先选择投入产品研发,而不是让产品趋近完美,即使是,那也是通过下一个产品来达到完美。
第二个,测试的递归性
即便公司愿意把AI投资在测试上,仍然会产生第二个问题,测试的递归性。这个问题鲜少被提起过,但其实他正在发生,那就是自动化测试。
不知道有没有人思考过,自动化测试是通过工具、框架、代码所累积出来的,那究竟有没有谁来测试过这些由自动化测试工程师开发出来的自动化测试呢?如果是又通过某一套工具来检测,那又谁来检测那套工具呢?如果是ChatGPT,那又谁来检测ChatGPT是对的呢?这种递归性,就像SRE追求99.99999%的可用性,每要多一个9,都是更大量级的支出,又会把问题抛回第一个投资问题了。
第三个,可测性
让我们再度接受第二个问题,也就是测试的递归性是能被解决的,那第三个问题就显得更不可能解决,也就是可测性。
用户体验完全相同的多个App,背后所使用的技术是完全不同的。所需观察的测试点也就不同。以信息同步来说,就有多种不同的技术,Polling, Long-Polling, Websocket等等,测试方式与条件也都会不同,测试人员在技术层面可能接触比较浅,但广度却要相对更多。这也就衍伸出一种说法,“测试人员要比PM和RD更了解产品”。
在无法解决可测性的状况下,:“人”仍然得做最后一关的把控。就像自动化工厂一样,其实目的是做到的是减少人为介入,是为了规格化和统一化,而不完全是消除人工。
自动化或AI会一定程度消减人力,但是每次消减的程度要越多的时候,所要投入的成本就越高,所面对的问题就更复杂更关键,如果没有足够长的边际效益,就会中断投资,而停在了一个要上不上,要下不下的阶段。
因此我一直以来推广的测试概念,是维持人工介入的半自动化而不是追求全自动化。
有人曾经反驳我说:“意思就是最后还是要人测,难道人就不会出错吗?”
这时就要反问:“你的产品用户是人还是机器呢?”
即使真的很多工作都被机器人取代了,巧克力冒险工厂早就教过我们了,即使锁牙膏盖的工作被机器人取代,只要愿意,我们还是能够变成修机器人的工程师,而且难道机器人坏了好几天,该做的事情就不用做了吗?
别忘了一个真理“每一个Bug都是创造就业机会”。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。