摘要:

随着人工智能技术的快速发展,软件测试工程师面临着前所未有的挑战和机遇。作为拥有 20 年测试行业经验的从业者,通过回顾测试技术与 AI 协同发展的历史,深入探讨了 AI 时代下测试变革溯源和根基。并分享了 10 年的 AI 驱动测试创新方面的实践。最后,对 AI 改造测试技艺的未来进行了大胆的遐想,提出了三个与软件测试密切相关的问题,并展望了测试技艺的持续探索之路。

阅读建议:

文章总共 17,000 字,阅读时长建议是 1 小时。

文正:

测试技艺 | 在 AI 极速发展下重塑
2025 年 1 月,Deepseek R1 正式版横空出世,席卷了整个中国大陆,并撬动了美国及全球科技界。它以风卷残云之势冲击各个行业和领域,深刻影响着每个人的学习、工作与生活。与此同时,在享受神经网络带来的激情与便利之余,作为 IT 从业者的我们也不免产生担忧和困惑。尤其是对于软件测试工程师这一角色,当看到 “AI 能自动生成测试用例、自主迭代测试脚本、自动发现缺陷” 等报道时,大家不自觉地产生了强烈的职业危机感。AI 迭代速度之快,令人不禁思考:我是否也应追赶这股潮流?该如何追赶?未来,在 AI 时代中,测试人员究竟将扮演怎样的角色?

作为一名拥有 20 年测试行业经验的从业者,我和大家有着相似甚至更为强烈的感受。如何破局?这一问题引发了我一系列深入的思考与研究。昨天的记忆、今天的故事、明天的遐想,这三者不断交织、相互碰撞,逐渐使我触及到一些内在的脉络与逻辑。尽管仍存在许多未知和不确定性,让我一时理不出头绪,但转念一想,正是这种不稳定与稳定之间的撕扯,为我和每一位测试工程师带来了无限可能,而所有这一切,难道不正是测试技艺的魅力所在吗?

  1. 以史为鉴:测试发展与 AI 崛起这二十年

位测试匠人都数十年如一日地研习测试的 “技” 与 “艺”,在各种系统中不断探索,只为挖掘深藏在软件中的缺陷与不完美。你不断学习、不断挑战自我,那份对卓越质量的执着与匠心精神,化作了一则则动人的故事。当后人翻阅这些故事时,依然令人流连忘返,并激励着他们不断前行。

2005 年至 2010 年,测试自动化迅速崛起,但尚未与 AI 形成交集。2005 年被视为中国软件测试发展的关键起点。劳动部将 “软件测试工程师” 列为新职业,ISTQB 认证体系也同步引入,推动了行业标准化进程。微软 Vista 因测试不足导致产品缺陷的案例,促使业界反思测试流程,促使更早引入自动化测试与性能测试。大型企业开始采用 LoadRunner、QTP、JMeter 等工具实现回归测试自动化,测试人员的角色逐步从基础执行转向兼具开发能力的 SDET 专家。同时,专业培训机构的兴起加速了测试知识体系的构建,形成了涵盖功能测试与性能测试的认证标准。在这五年间,传统测试体系趋于完善,而自动化技术的崛起也为软件测试从 “辅助环节” 向质量保障核心环节的转型奠定了基础。这段时间,AI 则处于由传统机器学习向深度学习过渡的阶段,对测试的影响相对间接,主要为自动化工具提供基础技术支持。

2010 年至 2015 年,倡导质量左移,探索 AI 辅助测试。全球金融危机与软件事故倒逼金融、电商等领域提升软件质量。测试流程标准化加速推进,自动化测试成为主流;Appium、Jenkins 等工具支撑了移动测试与持续集成的爆发。TDD/BDD 理念落地促进了跨团队协作,测试左移融入 DevOps 全生命周期,技术社区推动了性能测试等最佳实践的体系化建设。这五年是 “质量左移” 与持续测试崛起的转型期。伴随着深度学习突破(如 AlexNet、Word2Vec),AI 技术迈入新阶段,IBM Watson 等落地案例纷纷涌现。在测试领域,AI 开始探索缺陷智能预测(基于代码库训练风险模型)、自动化用例生成(通过遗传算法优化测试序列),部分工具尝试集成图像识别以定位界面元素,但整体仍处于实验性辅助阶段,尚未形成规模化应用。

2015 年到 2020 年,移动/云测试革新,智能测试生态初显。随着移动互联网与云服务的爆发,用户体验与系统性能成为市场竞争的关键,企业加大全链路自动化、性能测试与安全测试的投入,构建起覆盖前端至中间件的端到端测试体系。Appium 主导了移动端自动化,而 Sauce Labs、BrowserStack 等云端平台实现了跨设备与跨浏览器的测试。Docker 容器化与微服务架构推动了契约测试和服务虚拟化的落地,全链路压测(如阿里双 11)成为性能验证的重要标杆。测试外包逐步专业化,企业借力外部资源进一步优化质量管控。与此同时,AI 的深度学习持续的突破着自我的边界,实现了脚本智能生成(如 Testim.io),并推进了视觉验证自动化(如 Applitools)。这五年既是移动测试深化、全链路架构验证、与 AI 融合探索的关键期,也是智能化测试生态初现雏形的重要阶段。

2020 年到 2025 年,测试开启虚拟化,AI 引领测试新一轮变革。2020 年开始,受疫情推动,越来越多的企业转向云测试环境。基于云的测试平台以及基于 Docker、Kubernetes 的测试环境逐步普及,使测试人员能够在虚拟化环境中迅速搭建多样化测试场景,确保跨平台、跨浏览器测试的一致性。随着微服务架构和容器技术在云原生领域的推广,软件系统变得愈发复杂,服务间耦合与异构环境测试成为关键挑战。此外,服务网格和混沌工程也成为测试的新焦点。2022 年 11 月,AI 领域推出了基于 Transformer 架构的生成式大语言模型 ChatGPT,震撼业内。AI 赋能测试正式开启,并迅速推动和完善了智能化测试生态。一些测试平台开始引入 AI 组件,以自动生成、维护和优化测试用例。新型工具(如 Testim、Mabl)利用机器学习算法自动识别应用变化,自动更新脚本,从而减少手工维护工作量。AI 应用不仅限于脚本维护,还扩展到日志分析、缺陷预测(如 Google 的 BugSpot)以及智能监控(如 AI 驱动的 APM 工具)。


图 1:二十年测试技术和 AI 创新重要事件发展时间线

AI 与测试行业的协同发展,本质上是技术创新与质量需求同步推进的过程。早期,测试自动化初步形成体系,以规则驱动的脚本取代手工操作,而当时的 AI 尚处于萌芽阶段,仅能通过基础数据分析辅助风险预测。随后,复杂系统与敏捷流程催生了更高层次的测试需求,AI 借助算法突破,逐步涉足缺陷定位、用例生成等核心环节,但受限于技术成熟度不高,更多地扮演着实验性助手的角色。随着软件架构向分布式与智能化演进,AI 开始深度融入测试各个流程,从视觉验证到日志分析,从脚本自愈到用户行为仿真,其角色由单一工具扩展为全流程协作者。同时,测试行业通过海量场景数据和不断提升的质量要求,再次倒逼 AI 攻克幻觉生成和泛化能力等难题,推动 AI 逐步从实验室走向工程化落地。

回望过去的二十年,软件测试领域经历了多次变革。测试从业者不断享受着测试技术和 AI 革新带来的红利,产品质量和用户体验持续改进,一个又一个的测试实践被写入这二十年的历史长卷。我们不禁要问,这些测试的变革究竟因何而起?是谁在背后推动着它们从开启萌芽到引领时尚?

  1. 冰山之下:以技术变革的溯源看 AI

每位测试匠人,面对着版本快速迭代的列车,在代码的反复更新和用户期待逐步膨胀中,与幽灵般的偶发缺陷博弈。这迫使你放下眼前的工作,不停地寻求变革,希望走在下次意外发生之前。有时你会愿意屈从于眼前的繁华,但是你更希望拨开这迷雾,找到深藏的本源。

今天,生成式 AI 正处在期望膨胀期,许多未知和不确定依然环绕。我们不妨从已经成熟且广泛使用的技术——行为驱动开发(BDD)出发,来一次溯源之旅。这有助于我们以类似的模式重新审视 AI 这次变革。

2003 年,Dan North 提出行为驱动开发(BDD)。它源于测试驱动开发和验收测试驱动开发,是一种敏捷软件开发方法。BDD 倡导将需求转化为用户故事和场景,场景通常使用 GWT(Given-When-Then)结构来描述,随后许多工具和框架支持 BDD 的实践和测试自动化。2010 年以后,BDD 的中文教程和文档开始在中国出现,并被广泛传播和普及。

在此,我们可以停下来思考一下,为什么要学习和掌握 BDD 呢?我们可能会联想到更早期的一种软件开发和测试的范式——模型驱动架构和基于 UML 的测试,它属于二十年前的大瀑布过程和方法论范畴的技术。将 GWT 和 UML 对照,从目的、建模关注点、语言和受众、建模深度、适用场景等方面进行比较,可以看到,BDD 只是测试建模的一种方法(相对靠近自然语言),而 UML 也是一种(相对靠近计算机语言)。BDD 与敏捷相互选择,就如同 UML 与大瀑布相互吸引一样。然而,我们要进一步问自己一个问题——为什么要顺应敏捷而去选择 BDD 呢?

选择敏捷是大势所趋。如果这是你的答案,算是合理。可为什么它会流行?敏捷方法强调迭代和增量开发,旨在快速地交付产品,然后收集用户反馈,再进入下一个循环迭代周期。这种有机体的世界观、不确定性的拥抱适应性和价值驱动,造就了目前的互联网应用,或者说是互联网应用本身的 DNA 造就了敏捷开发的实践发展。然而,我们的软件行业并未完全抛弃大瀑布的方式,它一直在默默运行(例如航天软件,依靠雄厚的资金支持更加安全和稳健的开发测试过程)。当然,我们也不能忘记,还有许多介于两者之间的中间态,例如汽车软件、嵌入式软件、金融行业软件等。也许,我们该继续向自己发问:为什么互联网应用可以支持高速的迭代敏捷方式呢?

互联网应用本身的基因和用户期望成就了敏捷测试大行其道,或者相互成就了彼此。大部分互联网产品都是面向最终客户,主要提供生活和娱乐相关的产品和服务。互联网用户习惯于应用的频繁更新,也乐于见到应用不断进步和完善。这种用户特质,加上互联的特质,使得缺陷的召回成本远远小于传统行业,这又进一步推高了应用迭代的速度。此外,互联网用户数量庞大且广泛分布,通过数据驱动的决策和改进也成为敏捷的最佳实践。当然,背后的另一个至关重要的因素是激烈的行业竞争,快速推出产品和试错被广泛接受(例如某些网页打不开的软件不影响其他亮点功能的上线)。客户在这种充分竞争的环境下,选择体验和价值,而不是完美。到这里,我们还不能停下来对自己的追问——互联网的用户为什么会这样选择呢?

我们来到了人类需求的层面。互联网用户具有生理需求(外卖订餐应用、在线医疗服务)、安全需求(支付安全、信息未被泄露)、归属与爱的需求(社交媒体、即时通讯、在线社区)、尊重需求(内容创作平台、游戏竞技)和自我实现需求(在线教育平台、知识分享平台)。这些需求的满足,是互联网应用所首要关注和实现的(如果与汽车软件和航天软件对比,互联网应用就不需要考虑人身的安全)。

从 BDD 的变革,引发我一次的上述思辨之旅。在探究本源的过程中,我们不仅看到了技术本身,还有其背后涉及的资源、质量、组织、环境和人性。每个变革都按照 “承前启后” 的时间线,在 “左邻右舍” 的相互吸引下,不断 “发光发亮”,影响着每个变革的受益者。

  1. 技术范式

测试作为软件工程的一个环节,计算机和软件设计的任何变革都可以应用到测试的革新中。换言之,绝大多数的测试技术创新,都可以理解为计算机领域的一种应用技术。例如,Appium 的架构基于软件设计模式中的关注点分离(Separation of Concerns)原则,是测试自动化架构设计上的一次成功应用。而基于大型语言模型生成测试用例,也可视为生成式人工智能技术在模型驱动测试(MDT)中的一次实践。

  1. 资源平衡

测试工作是一种在资源投入与产出之间寻求平衡的艺术。这种平衡的目标是让有限的资源发挥最大效能,这也是测试技术从手工到自动化再到智能化不断进化的内在动力之一。例如,契约测试定义了服务之间的接口规范,确保各个服务在满足契约要求的前提下可以独立运行,极大地避免了因各服务状态不一致而导致的资源浪费,从而使有限的测试资源得到更充分的利用。同样地,基于 AI 改造测试时,必须权衡投入(如使用昂贵的 GPU 训练模型,或人力标注训练样本)和产出(如测试用例更新代价下降 50%,或手工测试人员减少 30%)。

  1. 质量标准

测试的变革始终是为了适应质量目标的驱动而产生的。例如,应用热启动的界面加载速度必须在 100 毫秒以内,这决定了进行性能测试的方法和工具的精度必须控制在 10 毫秒的量级。再比如,航天器软件的可靠性对于确保航天任务的成功至关重要,这决定了航天领域无法应用敏捷测试的方法论,而需要采用更加严谨的可靠性工程方法来保证软件质量。目前,AI 在测试领域的应用创新,主要集中在降低成本和提高效率方面,本质上也要符合软件的质量标准的发展趋势。

  1. 组织价值

在传统的大瀑布软件流程下,测试更多地被组织定义为执行和验证环节。而在敏捷环境下,测试不再仅仅是发现问题的步骤,而是成为提升过程效率、为组织增加整体价值的重要手段。一些组织被重流程、重自动化的价值观所左右,测试的 “艺” 可能退化为重复和机械的操作。而另一些更看重人的组织,每个测试人员都能发挥主观能动性。在这种价值观下,基于上下文的探索式测试更容易推进。在 AI 发展的背景下,机器的重复执行与人的创造力协同作用,将测试从 “被动验证” 转向 “主动风险挖掘”,可以进一步推动组织形成质量共建的文化,使测试价值从成本中心升级为业务保障的动力。

  1. 外部环境

外部环境包括市场动态、竞争压力、法规政策等多重因素。例如,在测试环境中使用真实用户数据可能导致隐私泄露。为此,企业采用数据脱敏和匿名化技术,确保在测试过程中使用的数据已被处理,无法追溯到个人身份,从而保护用户隐私。再比如,TikTok 凭借敏捷迭代和 A/B 测试策略,在 3 年内全球用户突破 10 亿。而 Instagram Reels 因过度依赖母公司 Meta 的原有测试流程,初期功能迭代缓慢,错失先机。同样地,AI 在测试中的应用和创新(如数据生成、用例优化、安全攻防)正成为企业应对外部监管、竞争和安全挑战的核心工具,同时外部环境压力也加速了 AI 测试技术的场景化落地与迭代。

  1. 人性需求

所有技术最终都回归于满足人类的情感与本能需求。我们可以采用马斯洛的需求层次理论,将技术改革的路径最终映射到人类需求的动机上。例如,游戏玩家在玩电脑游戏时,8K 的分辨率、240FPS 的刷新速度、50 毫秒的操作反馈速度,这些远超过单纯的功能性需求,因为他们能从极致的体验中得到愉悦和满足。再比如,编程学习平台 Coursera,确保用户从 “小白” 到 “开发者” 的成长体验,这契合了用户的能力提升和自我实现的心理期望。AI 在测试中的应用不仅要以提升效率为动机,更应该通过增强测试者的决策权与成就感,回应其对能力成长、职业价值的高阶需求,并最终让技术进化达到 “人的解放与升华”。


图 2:“以 GPT-3 生成测试用例” 的技术变革溯源路径

综上所述,测试领域的变革受到技术范式、资源平衡、质量标准、组织价值、外部环境和人性需求等多重因素的影响。每次变革都是在特定时间线下,在相关因素的相互作用中不断发展,影响着每个变革的受益者。而每个测试技术 “变” 的背后,总有 “不变” 与之匹配。

  1. 始终如一:AI 无法改变的固化根基

每位测试匠人都选择拥抱变化和不确定性,只有这样才能不断地去应对挑战。然而,你也渴望拥有稳定且可靠的工具,因为它们是我们的根基。也只有它们的稳定,你构建的测试才更值得信赖,才能有信心创造更大的价值。

如果您尝试去深究 AI,探讨人工智能对测试领域带来的变革,可能会在第一步 “技术范式” 上遇到瓶颈。确实,人工智能(作为当今的前沿技术)对测试所带来的革新,与十年前成熟的技术如行为驱动开发(BDD)所引发的思考有所不同。我们就不妨暂时聚焦于 “技术范式”,深入剖析其底层的构建。

假设你是一名新入职 DeepSeek 的人工智能算法研究员,你眼中的世界将被人工智能算法所主导。你无需深究基于 Python 语言编写的人工智能算法是如何被转换为机器语言,并最终在 Nvidia 的 GPU 上高效执行的,因为这些技术已经成熟且系统稳定。然而,你是否曾考虑过,坐在美国 Nvidia 办公室的测试工程师,正为了确保高性能和稳定性,一遍又一遍地执行基于 Python 的自动化测试?此时,这位 Nvidia 的测试工程师不一定会想到,在遥远的中国台湾,台积电的 2nm 制程生产线是如何稳定且成熟地运转,造就了云计算中心中高性能运行的芯片。而无论是 DeepSeek 的算法工程师,还是 Nvidia 的测试工程师,他们所使用的 Python 编程语言,到 2025 年的今天,已有 35 年的岁。同样,面向对象编程思想自提出至今,已过去 58 年。

今天,当我们激情澎湃地拥抱人工智能的爆发式时,也应理性看待背后那些默默 “奉献”、已被固化的技术范式。

1) 人机交互方式:尽管近年来语音和手势识别、扩展现实(XR)以及脑机接口逐渐进入大众视野,但基于传统键盘、鼠标和触摸屏的人机交互方式仍然是主流,约占据 80% 的市场份额。自 1973 年首次研发图形用户界面(GUI)以来,基于这些物理输入输出设备的人机交互方式并未发生本质性变化。人机交互作为研究人与计算机系统之间交互的学科,长期关注如何设计用户友好的界面,以提高用户体验和工作效率。目前,大型语言模型的应用仍离不开这些传统的人机交互方式,文字输入、鼠标点击,以及查看生成的文字、图片、语音和视频等仍然被延续。人机交互方式的相对稳定,使得用户体验测试得以持续发展和创新(例如通过 A/B 测试比较不同界面设计的效果)。

2) 软件工程方法和测试:软件工程作为一门工程学科,旨在系统化、规范化、量化地进行软件的开发和维护。从大瀑布模型到近年来流行的敏捷开发流程,这些方法都遵循 “需求→实现→验证→部署” 的流程。测试在软件工程中至关重要,贯穿软件开发的整个生命周期。无论团队规模大小,软件实现过程中都会引入缺陷(例如,Android 内核的缺陷密度为 0.47 个缺陷/千行代码,2024 年报道称 ChatGPT 的幻觉率约为 15%),这决定了测试工作的必要性。

3) 软件设计和部署:通常的软件系统都是通过计算机程序、数据结构与算法、操作系统和计算机网络等技术实现。过去二十年中,Windows 和 Linux 一直是两大主流操作系统,而基于这些操作系统架构(如进程管理、内存管理、I/O 管理、文件系统等)设计的上层系统,如 Android、macOS 和鸿蒙 OS,未脱离这些基础架构和设计思想。计算机网络中的 TCP/IP 协议和 IPv4 协议已使用近 40 年。在数据结构和算法领域,被视为计算机科学基石的基本数据结构、排序和查找算法,以及主要的算法设计范式,在过去 20 年中总体上保持稳定。计算机编程语言虽然看似更新换代较快,但顺序、条件、循环、函数等基本结构并未发生根本变化。

4) 冯·诺依曼体系结构:冯·诺依曼体系结构是现代计算机的基础架构,定义了计算机应包含运算器、控制器、存储器、输入设备和输出设备五个基本组成部分,并采用存储程序的概念,即程序和数据都以二进制形式存储在存储器中。目前,几乎所有计算机系统都基于冯·诺依曼体系结构(量子计算体系结构、神经形态计算体系结构、存算一体架构等仍处于探索阶段),它构成了计算机技术的坚实基础。

5) 物理学和信息论:计算机的能力受限于物理规律和信息论。过去几十年中,摩尔定律推动晶体管数量指数增长,但随着尺寸缩小,能耗和散热问题日益严重。即使在极低功耗设计下,也无法突破热力学限制,这限制了计算速度和能效的提升。而无论芯片多么先进,信号传输过程中的噪声都会限制数据传输速率和准确性,这也间接影响整体计算性能。阿姆达尔定律表明,即使增加无限多的处理器,总有一部分串行代码无法并行化,这限制了系统的整体加速比。


图 3:AI 爆发背后的不变性基础

这些固化的技术范式之所以存在,首先是因为它们深刻地契合了计算机科学所要解决的核心问题,并提供了一套通用且有效的解决方案。它们并非随意选择的,而是经过长期实践检验,不断优化和演进的结果。一旦某种技术范式占据主导地位,就会形成强大的网络效应和锁定效应。这种惯性使得 “固化” 范式具有极强的生命力,即使出现新的技术,也很难完全取代它们,更多的是在这些范式基础上进行扩展和演进。最后,无论是硬件设备、软件工具、人才储备还是现有系统,都承载着巨大的经济价值和沉没成本。任何颠覆性的技术变革,都需要在经济上具有可行性,并能够有效地降低成本、提高收益,才能最终被市场接受。

生成式 AI 曾被誉为 “第三次工业革命” 。然而,重新审视这些 “固化” 的技术范式后,我们或许应保持冷静。在当今计算机体系的发展和技术创新进程中,生成式 AI 仍处于变革的早期探索阶段,其影响力和社会价值尚在逐步验证和理解中。作为测试匠人,我们需要学习和理解生成式 AI,并要在现有的技术框架内实践。那么,我们应如何开启基于 AI 的测试技艺实践之旅?又该借助哪些工具,实现高效守护质量的愿景?

  1. 革故鼎新:我的 AI 驱动测试创新十年之路

每位测试匠人都怀着对极致效率的追求,热衷于寻找和创造更高效的工具。这不仅仅是为了满足内心的渴望,更因为每一次工具的革新,都为他们敞开了一扇通向智慧和深思的窗。

下面,我来讲我的一个故事,更准确的说是一系列、历时十几年而还曾未终止的 “智能化测试创新” 的故事。

2012 年,Google 发布了 UI Automator,一款用于实现 Android UI 测试的框架。随后,我开始参与基于 UI Automator 的自动化脚本开发工作。然而,我们遇到了诸多阻力,因为某些用户界面元素并不总能被该框架支持。随后,只能采用半自动化、半手工执行的策略,反复执行预定的测试。那年,我的目标很单纯:实现 100% 的 UI 自动化执行。

2013 年,我在互联网上发现了一款基于图像识别的开源测试工具——Sikuli。它满足了我们实现 100%UI 自动化愿望,但仅能在桌面操作系统上运行。为此,我还曾直接联系远在美国的作者,但他似乎无暇支持我们对 Android 系统的需求。然后,经过我与经理和团队成员的多次讨论,我们最终决定自行实现它。经过半年努力,我们达成了预定目标,并为其取名为 PRIDE。再后来,PRIDE 与我们自主研发的机械手臂和摄像头集成,最终实现了无接触式智能测试设备。这一成功令整个团队倍感自豪,士气大振。


图 4:PRIDE 图像识别驱动的测试平台

思:当网易在 2016 年发布并延续至今的类似开源项目——Airtest 时,我才意识到自己错失了回馈社区的机遇。虽然这背后体现了不同企业在测试创新、合规和生态构建上的认知差异和时代局限性,但作为测试匠人,我们不仅应推动创新改进,还应积极以各种形式与测试社区互动。

2014 年,我们基于 PRIDE 开发自动化脚本,但遇到了新问题。界面的细微变化或环境干扰常导致执行不稳定。若有新项目启动,我们还需在新的 Android 手机上截取大量图像。因此,我调整了目标:要么改进图像识别算法,要么探索智能化的自动遍历算法,以进一步降低自动化的维护升级成本。然而,当时对 UI 自动化技术的认知局限,我未能取得任何突破。不过,就在那一年,我为自己设定了一个测试自动化的创新愿景,并绘制了这幅图。


图 5:智能测试创新愿景(2014 年绘)

辩:十多年后的今天,UI 测试自动化的创新,或整个智能化测试的构建,仍围绕类似的逻辑运转。这或许体现了一种对创新趋势的直觉和把握,但是也时常让我感到因为不遂愿的失落。作为测试匠人,究竟是专注当下,解决眼前的问题,还是放眼未来怀抱愿景,这是一个值得持续探讨的命题。

2016年3月15日下午,谷歌研发的围棋人工智能程序 AlphaGo 在与韩国棋手李世石的最后一轮较量中获胜,最终以 4: 1 的总比分赢得了这场人机大战。这则爆炸性新闻被视为人工智能领域的颠覆性变革,预示着其将深刻影响每个人的生活。在随后的一年里,我从自学深度学习到公司倡导 “All in AI” ,大家都希望从中发掘 AI 的价值。当时,深度神经网络首先在图像分类领域取得突破,这让我再次将其与 UI 自动化测试联系起来。

我选择了 AlphaGo 的核心机器学习算法——深度强化学习,作为突破口。我开始不停地尝试让 AI 自主学习手机游戏的得分技巧。然而,几个月的努力并未取得预期成果(尽管在一款名为 “钢琴块” 的小游戏上取得了一些进展),因为我一直无法在公开发行的手机游戏版本上找到一种能够快速、大量进行强化学习的方案。不过我还是有所技术以外的收获,至少在 2017 年就开始研究 OpenAI 及其机器学习技术。我认为这并非偶然,而是我做出了正确的决定。

思:回顾最初的失利,问题并非源于技术本身,而在于当时技术与现实问题之间存在鸿沟。作为测试匠人,跨越鸿沟,建立理想与现实的纽带,是我们的使命。然而,资源、认知、他人的支持、甚至是运气,都一样的重要,值得我们在事后反思。

2018 年,OpenAI 的 Five 在复杂的 PC 游戏 Dota 2 的训练上取得了显著进展,击败了由职业选手组成的队伍。对于一直从事游戏测试的我,看到这样的新闻,我并不甘于现状。此时,我再次深陷思考,选择舍弃强化学习技术,转而选择 “图像分类 + 对象识别 + 智能 Agent 算法” 的方式。终于,我在手机游戏《王者荣耀》和《刺激战场》(国内版 2019 年改名为《和平精英》)上的测试自动化取得了一些突破。游戏测试自动化的阶段性成果,让我看到了深度学习在测试中带来的变革力量。


图 6:《王者荣耀》和《刺激战场》测试自动化场景

辩:如果你不放下自己的执念,意味的追求技术上的完美,很有可能,你会在技术上产生根本性突破。但是,你也可能寸步难进,一无所获。作为测试匠人,有时候必须在执着的完美主义和妥协的现实主义之前挣扎。

在一次次的游戏自动化测试执行过程中,我在收获持续质量监控和改进成果的同时,又重新拾起了深度强化学习这一利器,并持续关注 OpenAI 的技术研发动态,进行各种试验,试图大幅降低测试训练的成本并提高测试的稳定性,直到离开公司。

时间来到 2022 年,ChatGPT 的发布引发了全网的兴奋。然而,我保持了更多的冷静。到了 2023 年,我开始将 ChatGPT 与新的项目和测试自动化需求进行新一轮整合,并提出了两条让大语言模型支持测试用例生成的路径。第一条路径是基于 ChatGPT 的 “提示词工程 + 状态机模型 + 关键字库” 生成可直接执行的测试脚本。第二条路径是本地训练 NLP 语言模型(严格意义上不能称之为 LLM,我也没有资源训练 LLM),然后与 OCR 技术整合,实现 GUI 元素识别和自主遍历。

基于第一条路径,我在 2024 年初开发了一款基于 PyCharm 的测试脚本生成和执行的插件,该插件通过访问 Azure OpenAI(GPT-3.5)API 实现。然而,开始的结果并不理想,主要原因是 GPT-3.5 存在严重的 “幻觉” 问题,生成的测试脚本准确度较低(约 50% 的脚本存在明显错误或不符合状态机模型)。直到半年后 GPT-4 的发布,测试脚本的正确率才提升至 95% 左右。然而,这种基于 LLM 生成脚本的方案,其开发测试模型(场景状态机)的成本变为多数人关注的焦点。一些同事提出,是否用自然语言描述会更为合适?正当我苦于测试模型设计成本的问题时,另一个挑战接踵而至——公司出于信息安全的考虑,禁止将任何公司信息发送至互联网上的大语言模型。这彻底阻断了我对第一条路径的探索。

思:与公司法务部门的争辩显得徒劳无功,因为他们秉持 “绝对安全” 的原则。我只能自我安慰:技术的变革往往领先于制度和法规。要实现技术的创新和落地,必须考虑组织价值和外部环境的约束。作为测试领域的匠人,只有深刻理解上下文,准确把握技术的适用性和合规性,才能为组织创造直接的价值。

于是,我开始转到第二条路径上。这条路径的核心思想是通过 OCR 技术识别 GUI 界面上的文字,然后通过随机遍历的方式,识别 “状态” 和 “动作”,最终将生成的状态动作序列作为训练数据,用于训练模型并驱动下一次的自动化遍历测试。由于受限于训练主机的性能,我不得不选择规模较小的 Google/T5-large 模型进行数据训练。在生成 300 个输入输出对的序列后,经过 30 个小时的训练迭代,模型开始达到可接受的精度。然而,如此少的数据量和极低的训练效率,不足以支持我进一步扩展和实验。我缺少的是高性能的 GPU 资源,这阻碍了我继续探索和试验的可能性。


图 7:测试场景自动探索和执行系统设计

在公司内部寻找高性能的 GPU 资源是一项艰巨的任务。即便找到了基于 K8S 的 GPU 资源,我依然被告知,由于合规性问题,我的整套基于开源模型和算法的方案无法在公司内部部署。这让我再次感到失落。

慢慢的,这份失落随着 AGI 技术的快速迭代逐渐被我淡忘。很快,我看到了 Sora 这种多模态大模型的问世,我开始在 Huggingface 等模型平台上自由地探索。我逐渐意识到,多模态大模型正是为人机交互的智能化测试而生的。随后,我构思了一个面向未来的基于多模态的测试自动化架构——通过构建两个多模态模型 Predictor 和 Judger,分别用于预测下一个测试动作的生成和测试结果的断言。现在,我仍然正在等待合适的时机,继续把我的人机交互智能化测试走下去。


图 8:人机交互的智能化测试方法架构

辩:尽管我再次从测试创新性工作的实践中退下来,但内心却充满纠结。对于测试领域的匠人而言,是审时度势选择退缩,还是义无反顾迎难而上,需要考虑的因素远不止技术层面。组织的合规要求、资源的限制、团队的接受度,甚至是个人职业发展的权衡,都成为决策中不可忽视的变量。这种纠结,或许正是技术创新者在现实与理想之间必须面对的常态。

2024 年底到 2025 年初,生成式 AI 进入了军备竞赛阶段,国产大模型 DeepSeek 的崛起,将我的思绪拉回到最初在国内奋进的激情时刻。我开始持续关注生成式 AI 在 GUI 自动化测试领域的行业现状和最新研究成果,希望从中找到一些线索和启发。

从近年发表在 https://arxiv.org/ 上的关于 GUI 测试的论文来看,研究主要集中在两个方向:1)探索各种 AI 模型和算法以优化探索和缺陷检测的效率;2)制定 GUI 测试评价系统。暂时略过了大量关于第一部分的讨论,我想直接跳到第二部分,因为这让我联想到 AI 教母李飞飞和她创建的 ImageNet。深度神经网络之所以能在图像识别任务上超越人类,除了模型本身的精巧设计,更得益于 ImageNet——这个包含上千万样本的标准数据集。如今,大语言模型的军备竞赛同样需要一把衡量的尺子,包括在细分领域的落地。

GUI 的自动化遍历和缺陷检测是一项非常特殊的任务。目前查阅到的最新论文仅提到极少数的自建评价系统和基准测试(如 GUI Testing Arena、DroidTask、WorldGUI 和 MobileAgentBench 等)。一些论文中指出,现有的商用大模型在这些基准测试上的表现都非常差,更不用说在真实场景中的执行效果了。目前国内外会议分享的议题以及已商用的自动化工具,更多是基于少量数据对特定场景进行调优后的结果,其泛化能力和借鉴意义值得进一步论证。GUI 测试的智能自动化任重而道远,前路坎坷。

思:深入理解行业动态并进行溯源,你会发现许多为商业或营销目的的夸大宣传。这些宣传有时影响我们对技术的判断,甚至导致错误的决策和盲目行动。对于测试领域的匠人而言,技术的思辨能力和判断力始终是立足行业的根本。只通过严谨的分析和独立的思考,才能在纷繁复杂的技术浪潮中保持清醒,做出真正有价值的创新和实践。

随后,我又把视野向外拓宽,从多个领域开始研读目前 AI 在测试上的一些创新性实践和落地经验。下面列举一些国内 AI 与测试结合的探索方向和 2024 年的会议分享案例。


表 1:2024 年生成 AI 案例和会议分享案例

看过这些内容后,一方面,我充分意识到在 AI 大时代下,测试技艺再造正在被广泛讨论和实践,并取得了一些阶段性成果。然而,从另一个角度来看,无论是基于大语言模型还是机器学习技术,将他人经验或论文中的研究成果迁移到自己的工作中,仍然面临巨大的挑战和不确定性。AI 的泛化能力、数据质量的差异、应用场景的复杂性,以及组织内部的资源限制和合规要求,都成为实际落地中的障碍。

辩:学术界对于 AI 的研究按照定义标准、横向比较、找到突破、验证扩展的严谨科学过程进行着。而产业界,更多的是研究企业内部挑战、寻找合适的技术、落地而后评价影响。两边相互辩论,相互鄙视,这不利于技术的创新和推广。作为测试匠人,要游走于两端,启发自己、突破自己、定义自己,而不被其左右。

生成式 AI 仍属于机器学习范畴的延伸,其底层逻辑仍然是 “通过已知数据拟合概率分布,并基于分布预测未知数据”。而软件测试的本质矛盾在于:微观上需解决确定性路径覆盖问题(如生成特定 SDK 的完备测试集),宏观上需平衡工程实践的约束条件(如基于风险策略配置测试资源)。测试问题的边界与评价标准难以被明确定义,这导致了技术改进效果只能通过具体场景验证,难以横向量化对比和复用。

而如果进一步把目前基于生成式 AI 在测试领域落地的困境进行分解,从技术和企业态度方面,可以发展出四个维度:1.模型在目标评价体系下的幻觉消除能力(如测试脚本生成准确率);2. 模型能力与测试需求的泛化适配度(需评估测试任务与模型预训练目标的语义距离);3.大模型训练/部署成本与组织承受力的平衡(即使 DeepSeek 等模型降低门槛,推理硬件和工程化成本仍需持续投入);4. 企业从技术尝鲜转向系统性评估 ROI 的能力(包括合规风险、客户价值传导、市场竞争力重构等)。作为测试匠人的我,既不被被短期技术泡沫蒙蔽,也不能因长期主义困境止步,必须在现实条件与理想目标的动态平衡中寻找创新突破口。

在十余年的智能测试创新历程中,我不断实践与总结,经历过失败的挫败,也收获了成功的喜悦。测试的 “发展历史” 赋予我延续感和前进动力,“变革溯源” 使我更加沉稳和冷静,"坚实基础"让我能够专注于细分领域的创新。我始终坚信,未来会更加美好,且就在不远。

  1. 天马行空:关于 AI 改造测试技艺的遐想

每位测试匠人都对未来怀揣美好憧憬。这种美好的期盼,激励着每一位在困境中默默耕耘、砥砺前行的人们。测试人不仅能吟诗作赋,更心怀远方。

2025 年 3 月,我们期待的 GPT-5 还没有被 OpenAI 发布。未来的测试工作究竟会是怎么样,热烈的讨论不曾停止。

ChatGPT 说:“未来的测试工作将全面进入人机协同进化时代:AI 自动化接管重复性任务(如数据整理、基础测试),人类聚焦高阶创造力与决策力——设计 AI 工具链、优化算法模型、制定伦理规则。工作场景高度数字化,远程协作与虚拟办公成为主流,跨领域能力(技术 + 行业知识 + 人文思维)成为核心竞争力。新兴职业如 AI 训练师、人机交互设计师、数字伦理顾问涌现,传统岗位通过 AI 增效转型(如程序员转向提示工程,测试员升级为质量科学家)。人类的核心价值在于解决模糊问题、创新突破及价值观判断,而技术技能迭代速度加快,终身学习与适应性成为生存底线。工作本质从指令转向定义问题,人与 AI 的关系从替代走向共生。”

因为眼花缭乱的新名词,似乎让你对未来更加迷茫。

作为测试匠人,我们的创造性源于提问和想象,也包括对未来的设想。带着问题思考,找到适合自己的答案,才是出路。关于 AI 未来的发展趋势,我反复追问自己三个与软件测试相关的问题,并时刻寻找答案:

问题 1:AI 模型是否能低成本的在私有数据上训练/调优?

问题 2:AI 能否能感知差异化个性化的人类需求?

问题 3:AI 能否生成无缺陷软件系统?

问题 1。2024 年底,Ilya 宣布:“预训练结束了!全球 AI 数据耗尽。” 但这里的数据仅指大模型预训练可访问的公开数据。因此,我们目前所说的 AI 仍是 “通用” 人工智能。如何高效、精准地将这种通用人工智能的能力迁移/泛化到私有数据处理上,是当前人工智能应用领域讨论和实践的首要任务。2025 年被称为 Agent 元年,因为 AI 在不少垂直领域的试验已经启动,并取得了一定成绩。但不得不说,当前企业和组织内部启动类似工作的门槛仍然很高。除了技术难度外,算力成本也远未达到大众或个人可接受的程度(如果我们的终极目标是人人都能随时随地进行大模型调优)。目前,测试领域通过建立知识库,导出测试计划、用例、脚本,甚至分析发现缺陷,是 AI 落地应用的趋势。测试工程师已转变为知识库和上下文数据的构建者,以及 AI 模型/算法的设计使用者。这部分工作对个人能力要求较高,因为它需要充分考虑任务复杂度、资源依赖情况以及效果衡量方式。人机以何种比例、如何分工、如何协作,完全取决于第一个问题能否被解决、如何被解决,或以何种优雅的方式被解决。

问题 2。如前所述,目前的 AI 是通用模型,只能满足人类的 “平均” 需求(如解答哪种药物缓解头痛),但无法满足更普遍、更差异化的需求(如自主感知患者病情,直接将缓解头痛的药物送到患者口中)。人类的需求是复杂的、多变的、差异化的,需要被理解。一些高级情感需求(被尊重、被理解、被接纳、被爱)目前只能通过人与人之间的连接来满足。基于通用模型,设计满足人类需求的软件,填补人与通用模型之间的鸿沟,取决于通用人工智能能力的可达范围。我们如何想象未来 AI 能够到达的位置,就应如何设想测试工程师如何验证基于人工智能的服务人类需求的符合程度。测试人员是连接二者的纽带。人机以何种比例、如何分工、如何协作,完全取决于第二个问题能否被解决,或以何种优雅的方式被解决。

问题 3。如果第一和第二个问题都解决了,AI 就划定了其边界。下一阶段,AI 的算法或模型是否真的可以学习这个边界内的所有知识,去生产一个实现没有缺陷的系统呢?作为乐观的测试从业者,我认为 AI 也是人设计的,人会犯错,所以缺陷一定会产生。因而,测试工作仍然必要,其使命是验证和确认 AI 设计生成的系统是否按照既定目标执行,尽管这个困难比问题 1 和 2 的总和还要大。而作为悲观者,我又会认为 AI 终将进化到超越人类智慧,人类犯的错误也会被 AI 找到或修正。从这个意义上讲,测试 AI 生成的软件本身已经没有价值,测试工作将不复存在。我会在悲观和乐观间不停地徘徊,并一直持续下去。


图 9:AI 发展与测试相关的问题

问题 1 是目前 AI 落地应用的重要目标,每个组织内部都将进行技术和成本的博弈,最终以合适的方式实现原始技术架构和新型 AI 范式的深度整合。整合是否按照期望的技术架构进行,需要测试中的 “验证工程师” 完成(如大模型泛化后是否达到给定准确度)和支持(构造模型训练所用知识库)。整合后的新系统是否符合用户期望,仍有赖于 “确认测试工程师” 的工作。问题 2 的解决程度,会进一步缩小了计算机模型到人类需求的路径。验证工程师需要进一步扩大测试范围,涵盖所有技术路径(从人机接口到代码执行)。而此时,确认测试工程师需要开发测试策略,从人性的角度出发,保证系统符合每个用户差异化、个性化的需求。这大致就是面向未来的智能化测试工程师的大体定义。

AI 带给测试领域的三个问题是否被解决,以何种程度被解决,这决定了未来人机协同的方式、和测试 “技” 和 “艺” 的全部构成。测试工作将会变得更富有挑战,也更有意义。

  1. 继往开来:测试技艺的持续探索

根据 Gartner 的技术成熟度曲线推测,我们可能在十到二十年后到达生成式 AI 发展的稳定期。未来软件测试会发展成什么样?这取决于未来的 AI 能力边界、它所能孕育出的新软硬件形态,以及最终用户如何感知和与系统交互。软件测试是服务于这种新范式下软件工程的重要环节,并持续产生质量守护的价值。作为软件测试从业人员,我们需要找到自身存在的必要性、定位以及与他人或 AI 的协同方式。测试作为一门技艺,对测试从业者提出了更高的要求——更好地适配、服务和满足人类期望的 AI 发展方向。

最后,回到我们的起点,到底什么是测试的技艺?我找到了属于我的答案——我享受着测试技术外化的质量价值,更享受测试艺术内化的精神满足。希望每位测试匠人在 AI 高速发展的时代下,都能找到属于自己的测试技艺重塑之路。

张昊翔

2025/3/10

WeChat: hzhan11

QQ: 22321262

Email: xjtu_xiangxiang@hotmail.com

LinkedIn: https://www.linkedin.com/in/hzhan11/

Blog: https://home.51cto.com/space?type=4&uid=15403516


↙↙↙阅读原文可查看相关链接,并与作者交流