生成式 AI(GAI) 带来的热度已经持续了有一段时间,从 ChatGPT、Midjourney,到最近爆火的 Sora,它似乎总能给我们带来新的惊喜,所以我觉得也是时候可以浅浅地(理解实在有限)讨论一下这个新的事物。
AI 给测试造成了什么影响,反正也是众说纷纭。支持者的观点是 AI 肯定会在未来颠覆测试的岗位性质,毕竟现在不管是大小厂都在布局 AI,并且这么长时间的热度也说明它并非空穴来风;而反对者则认为前者是在故意制造焦虑,AI 并没有想得那么强大,等这波热度过去也就销声匿迹了。
去年有位同事做了一个概括我认为挺到位的,AI 对我们的影响就是两个方面:智能化测试和测试智能化。智能化测试的意思是智能产品的能力测试,测试智能化的意思是借助 AI 的能力来帮助我们做测试。
智能化测试其实到现在还没有比较系统化的理论出来,各个团队都在按照自己的方式摸索。AI 产品有一个很大的特征就是预期输出不像之前那样是个精确值,比如让 AI 帮我们总结一份长文档的摘要,预期值是什么?无法被准确描述。
所以我们只能使用打分的机制,在主观上评价它的结果表现,而且一个人的评价也是有偏差的,还得引入群体评价机制。因此即便是有一套方法论出来,我们也很难去做效果上的验证,或者说我们只能提出过程实践建议,而不是完整的 PDCA 质量管理流程,这就给智能化测试的价值造成了一定的模糊空间。
智能化测试还有一个重要问题是,对模型的效果评价受测试集的影响很大。比如有一个物理模型,我们的训练样本都是基于标准大气压,得出“水在 100 度的时候沸腾”的结论,如果我们没有识别出气压这个特征,测试集同样是基于标准大气压来进行,就会错误地评价该模型。
传统的测试用例设计主要依赖于等价划分和边界测试,模型的特征可以近似地理解为“等价类中的类”,但是相对于传统测试场景,模型的有效特征更加不明确、不可知、不可穷举,这就让传统的用例设计理论失去用武之地,给智能化测试带来了极大的挑战。
还有,不同行业之间的模型,特征基本都是不重叠的。A 行业的测试集与 B 行业的测试集,几乎没有复用的可能性,这使得可以大范围应用的通用智能化测试体系的前景变得十分渺茫。由此来看,智能化测试的道路,恐怕还有很长。
测试智能化也有类似的问题,尽管目前的确是有测试代码自动生成这样的成品,但是精确度却不如早前基于规则的生成方式。毕竟后者只要符合规则,能够保证 100% 的可靠性,而前者能有 80% 的准确性就不错了。
测试的 AI 产品化毕竟和其他 AI 内容生成产品不同,ChatGPT 有时候回答跑偏也没有什么,测试可是需要有较高的准确率。基于此,为了最终的结果,测试智能化后期仍然需要大量的人工干预,因此测试智能化主要用于辅助内容生成,能够带来一定的效能提升,但还远远没有达到“完全取代”的地步。
回到开头的部分,不管是文生文、文生图、文生视频,主要突破的还是在内容生成领域。所以目前测试智能化的新应用场景也与内容相关,比如通过需求生成用例,通过业务代码生成测试代码等等。这里不要与常规理解上的“通用智能”混淆,不用过份夸大它的能力,但是它在将来很可能会成为 AGI 的基础。
虽然当前智能化测试和测试智能化还处于探索的阶段,但是现在入局我认为是非常必要的。一个是随着 AIGC 产品化越来越快,智能化测试在未来大概率会成为一个非常重要的方向;另一个是从 GAI 的演进速度来看,AGI 有可能在未来的 3~10 年内取得突破,我们早点接触总归不是什么坏事。