仪表板闪烁着绿色。所有冒烟测试都通过了。AI助手生成了新的测试用例,清理了旧的,甚至在几分钟内报告了测试覆盖率的改进情况。团队在星期五满怀信心地朝着发布迈进。
现在,是星期一早上。
支持系统中出现了工单。客户保存的地址无法结账。他们保存的地址怎么会出问题?在典型的移动设备上,用户界面看起来完全损坏了。一个关键的API没有强大的边缘情况处理。综合来看,所有这些问题都指向一个更大的威胁:团队愿意盲目依赖外部输入,假设一切都是正确的。
这就是AI给质量保证带来的真正危险。
并不是说AI会给我们的测试引入错误。所有软件都有错误。所有质量保证团队都擅长识别和解决这些错误。然而,AI更大的威胁在于,它可以让团队相信他们的测试是彻底的,即使实际上并非如此。通过测试中的AI,质量保证团队可能会获得一种虚假的安全感,认为一切都是准确的。
这种虚假的信心可能代价高昂。这种过度自信可能导致巨大的财务责任。即使是经过充分测试的AI系统,在面对现实世界的复杂性时有时也会失败。麦当劳最近关闭了一个它正在免下车柜台测试的IBM AI系统,因为该系统在订单中反复出错。这提醒我们,即使是可靠的技术也可能存在严重缺陷。
真正的问题出现在团队确信测试已充分测试了给定系统时。这种虚假的安全感来自于相关安全风险要么没有被发现,要么没有经过严格测试。
这长期以来一直是传统自动化方法中的问题。在这些方法中,可能会运行大量测试,但测试深度不够。管道报告显示所有检查都已通过(全部为绿色)的事实并不意味着系统本身必然会完美运行。
在实施AI时,自动化变得更加复杂。关于AI语言模型需要了解的一件事是,它们可以以看似令人信服但实际上具有误导性的方式呈现信息。
我们可能会看到测试运行,甚至更好的测试覆盖率,因为AI协助构建测试并分析任何测试运行的结果。所有这些都是有益的。
但并非所有好处都是完全可靠的。
由AI构建的测试可能会遗漏一些关键的业务逻辑。或者,它可能只是设计为测试常见场景。这样的测试看起来完全足够。如果结果干净且表达清晰,团队很可能会认为测试是足够的,从而让严重缺陷未被发现。
这就是为什么测试经常会为团队创造做出错误假设的机会。
今天,对于任何参与使用人工智能的自动化软件测试的人来说,更关键的问题不应该是"AI构建测试更高效吗?"而应该是"AI构建的测试真的可靠吗?"
糟糕的手动测试可以快速识别。编写不当的脚本测试经常会出错。
但是,当由人工智能(AI)构建的测试失败时,很难一眼看出来。它们可能做出看似非常准确的断言,以及看似真实的名称和场景。但它们可能会悄悄地遗漏最重要的因素。它们可能会误解功能的真正目的。它们可能会以不同的方式呈现相同的想法。AI还可能在没有充分证据的情况下对软件发布做出过度自信的报告。
这在外表的流畅性和内在的质量之间造成了危险的差距。
在质量保证(QA)中,我们的信心应该来自测试的可追溯性、覆盖范围的深度、风险评估和可观察的结果。而不是来自AI产生的数据看起来有多漂亮。
程序员在家使用电脑进行人工智能。Freepik通过自我学习算法模拟人脑的计算。员工在台式电脑上使用AI深度神经网络工作,摄像头A
AI在有规律模式的地方表现出色。因此,它很容易被吸引到正常流程、预期输入和常见用户行为。
但严重的软件缺陷通常隐藏在其他地方:
如果AI生成的测试只遵循产品设计师设想的常见场景,它们将不触及风险路径。这只会造成测试完整的假象。
测试的真正价值在于它证明了软件的什么。太多糟糕的测试涵盖了应用程序上大量的操作范围,但没有正确检查这些操作对业务是否成功。测试只是一个动作,它所做的就是点击按钮、填写字段、点击更多按钮、查看屏幕,然后看到弹出一些东西。
AI可以比人类更快地执行这类轻量级的自动化测试。然而,如果你的测试条件(断言)太笼统、定义不明确或与业务用例无关,那么简单地执行测试通过并不能为软件发布提供多少安全性。结账中的测试通过可能只显示成功横幅,而不确保订单被正确处理(税费、总额等)、发送电子邮件或减少库存。
一个团队可能会检查40个手工编写的测试用例。但他们可能不会对使用AI快速创建的400个采取相同的方法。这是基于AI的质量保证(QA)最大的陷阱之一:随着数量的增加,仔细测试自然会减少。
拥有更多测试用例可以给我们一种心理信心。当数量增加时,我们会觉得测试套件非常广泛,报告也是完美无缺的。但增加测试用例的数量永远不能替代它们的质量。
如果没有适当的风险映射和需求可追溯性,AI只会帮助记录猜测,而不是检查系统的真实质量。
当管道报告总是显示绿色时,它会给团队一种强烈的信心感并鼓励快速决策。它消除了完成工作的障碍,所以当团队开始使用AI构建、修复和优先处理他们自己的测试时,这种安全感很容易传播。他们的本能从检查和验证结果转变为只是盲目信任系统。表面上看,这似乎很小,但它可以永远改变质量保证文化。问题不再是"这个测试涵盖了什么风险?"而变成"AI为此运行了测试吗?"在这一点上,人们倾向于假设一切都很好,并停止质疑质量。
现代AI系统最危险的特征之一是,它们可以以极大的真实性呈现即使是最明显的错误。这在质量保证(QA)中非常重要。
即使AI测试是在对需求误解或信息不完整的情况下编写的,它的输出也会非常准确和精致,看起来就像是正确编写的。典型的测试将无法快速发现错误。这里的危险不仅在于错误本身,还在于错误是多么容易被相信。
明显的错误可能会很快被修复。但看似可信的错误结论很可能在未经测试的情况下发布。
这并不意味着应该完全避免使用AI。
解决方案是在不放弃对AI的判断的情况下使用它。最好的质量保证(QA)团队将AI视为助手,而不是盲目信任的东西。虽然他们使用它来提高速度,但他们不会给予它最终的信任。也就是说,他们遵循一种工作方式,只有在验证后才信任AI提供的输出。
让我们看看这在实践中是如何运作的。
在创建测试用例之前,你应该清楚地定义可能影响业务或用户的主要问题。
与金融交易、法律事务(合规)、身份、权限和客户信任相关的领域应该首先关注。哪些错误很少发生但造成很大损失?错误容易在哪里被忽视?
AI可以在这些领域提供新想法。但由人类来决定哪里有更多风险。
AI生成的测试用例中的每个步骤乍一看可能都是正确的。但真正的问题是测试是否实际上在测试正确的结果。
在测试时养成一个简单的习惯是个好主意:更多地关注测试证明了什么,而不是它是如何工作的。
单一测试层本身无法保证系统是完整的。单元测试、API、集成、端到端(E2E)、探索性测试和生产反馈都会暴露不同类型的风险。
如果AI只测试一层,团队不应该认为他们的系统是完全安全的。每一层都应该根据其重要性进行测试。
许多人担心测试中的AI将成为一项无需人类参与的工作。但实际上,正在发生的是相反的情况。
随着AI接管重复性任务,人类干预变得更有价值。识别风险、消除歧义、质疑假设、测试复杂的边缘情况,以及询问"因为测试通过了,系统就安全吗?"所有这些都需要人类智慧。
这不是关于更少的工作,而是关于更好的质量。未来最好的团队不是那些构建无数测试的团队。而是那些可以快速、仔细地工作,但在必要时提出质疑的团队。
因为系统中的错误总是可见的。但过度自信往往会导致我们忽视它们。
AI当然可以加快质量保证流程。它可以帮助团队构建测试、减少重复性任务并更快地响应变化。
但这种无监督的速度可能导致新的质量问题。当AI生成的测试让我们感到完整时,当光鲜的仪表板让我们相信它们时,当花哨的报告优先于严格的评估时,质量保证并不真正强大。相反,它变得容易被愚弄。
最安全的团队是那些记住简单事实的团队:仅仅因为测试通过,并不是系统安全的绝对证明。它只是一个指示,仍然需要使用人类智慧来评估该指示。
所以,AI对质量保证构成的真正威胁不是错误。相反,是它给予的虚假信心。


