人工智能彻底改变软件测试:从快速自动化到战略洞察力
通过代理人工智能增强测试人员,我看到测试人员开始向价值链上游移动:我看到他们花更多的时间思考应该测试什么以及为什么,而不仅仅是如何测试。我看到他们更多地对系统、用户和风险进行推理,而不是投入时间进行自动化重复检查。
简而言之,借助代理人工智能,人们的努力正在从“如何做”转向“做什么”和“为什么”——更高价值的思维工作。映射到一个简单的模型上,这种转变看起来像这样:
以下是我对这一转变中最大的“是什么”和“原因”的一些观察,以及为什么我对此感到鼓舞和真正乐观。
人工智能正在降低测试自动化成本
自动化测试的机械部分变得越来越容易——无论这意味着自动化手动重复检查、生成测试数据还是在测试结果中查找模式。这就是我最喜欢人工智能测试的方面。不是因为自动化机械变得更便宜,而是因为更重要的事情发生了:测试人员终于有了思考的时间和空间。
他们可以退后一步,审视整个系统,并将认知精力花在真正重要的地方:发现重要的软件问题。
可扩展的自动化揭示了熟练测试的价值
人工智能不仅仅降低了自动化的成本。它揭示了专业人类测试的真正价值:不断发现罕见、隐藏和微妙的重要问题的测试。随着人工智能自动化更多重复性和沉闷的工作,测试人员正在从“我们如何自动化这一切?”向上转变。到“哪些风险对哪些利益相关者最重要?”。
瓶颈不是自动化,而是思维
这种转变——这种注意力的重新分配——是健康的,因为瓶颈从来不是自动化,而是思维。深度探索、实验和调查所需的时间限制了我们持续交付高质量软件的速度。这就是重要风险的显现。
团队很少会因为无法编写足够的自动化而失败。他们失败是因为他们没有(或不能)尽快提出正确的问题。
-
我们了解这个系统吗?
-
我们了解用户吗?
-
我们是否了解哪些风险对哪些利益相关者最重要?
如果我们不问这些问题,再多的自动化也救不了我们。
测试是一项调查,而不是一条生产线
测试不是工厂过程。这是对我们尚未掌握的质量、风险和信息的调查。测试中的挑战是构建风险、设计实验、质疑假设以及讲述有关我们正在测试的软件质量的有用故事。
我们做所有这一切都是为了一个目标:让其他人(如开发人员和经理)能够更快地做出更明智的决策(无论是修复某些内容还是发布它)。这就是测试的核心。 AI支持它,但不会取代它。
人工智能是放大器,而不是替代品
这就是为什么我将人工智能视为能力放大器,而不是软件测试人员的替代品。它可以建议相关测试、起草自动化、生成数据和汇总日志。人工智能产生有用的工件和见解,但人们产生判断。
人工智能提高了测试人员的能力上限;它并没有消除人类理解意义的需要。再说一次,人工智能是一切的放大器;它增加了创造力……但也增加了风险。当人工智能变得更加自主时,就更容易将活动误认为洞察力。如果我们想充分利用这项技术,我们还需要了解它在什么情况下会误导我们。不是为了谨慎,而是为了帮助我们引导人工智能朝正确的方向发展。
当数量伪装成信心时
人工智能误导我们的第一个方式是制造测试覆盖率的错觉。当测试想法变得容易产生时,人们很容易将测试量与测试质量等同起来。但专业人士知道,人工智能生成的大量检查仍然可能会忽略真正的风险:覆盖范围数字可能看起来令人印象深刻,仪表板可能会发出绿光,但关键问题可能仍未得到解答。
当然,我们可以将人工智能融入我们的环境中。但我们的大部分知识都是隐性的——存在于人们的头脑中,而不是在文档中。人工智能无法神奇地访问它。因此,不要让人工智能决定你的测试。将每个人工智能生成的测试想法视为询问的提示:“这错过了什么?这假设了什么?这不知道什么?”。测试人员的工作是指导,而不是服从。
更快的自动化仍然可能是错误的自动化
可扩展的自动化鼓励一切事情的自动化,包括不重要的事情。专业测试人员非常了解这一点。正如多萝西·格雷厄姆(Dorothy Graham)所说:“如果你将混乱自动化,那么你得到的只是更快的混乱。”专业测试人员不会为了自己的利益而创建自动化检查。他们不以数量来衡量价值。他们知道,一小组揭示风险的检查比一大组自动检查更有价值,因为这些自动检查很少或根本不告诉您真正的风险。他们问:“这张支票给了我们什么信息?”或“这是否告诉我们一些关于风险的有意义的事情?”。他们专注于自动化重要的事情,而不仅仅是简单的事情。
隐藏的风险:人工智能可能会降低软件测试人员的技能
另一个微妙的陷阱是技能的悄然侵蚀。专业测试人员明白,如果他们停止练习困难的部分,人工智能就会降低他们的技能。他们知道,如果他们主要促使人工智能吐出测试想法,他们可能无法增强对不熟悉的系统进行建模、识别需求中的模糊性和偏见或在不确定性下设计实验的能力。
当这些肌肉消失时,判断人工智能建议的能力也会消失。不同的是,人工智能让专业测试人员可以从事更高价值的工作,同时它也可能会误导业余测试人员——经验不足的测试人员或其他角色的测试人员(包括我自己)——过于相信人工智能的输出。如果没有扎实的测试技能,很容易将流畅的建议误认为是合理的建议。
总体而言,人工智能放大了测试人员的成果。它会放大优势和差距。承认这些不对称性的专业和业余测试人员混合团队将会蓬勃发展。
选择:更好的思考还是空洞的仪式?
这让我们得出测试团队必须做出的决定。人工智能创造了一个新的选择点:我们是利用它腾出的时间来投资更好的思考(更强的建模、更尖锐的问题、更好的风险分析),还是把它花在更多的仪式上?
我所说的仪式是指伪装成测试的忙碌工作:生成大量自动检查,因为它很容易,即使出现新风险也严格遵循人工智能生成的测试计划,或者在仪表板上填充不反映真实质量的指标。测试的未来取决于这个选择。
结束循环:是什么让我乐观
让我回到我开始的地方:人工智能正在改变测试,不是通过取代测试人员,而是通过揭示他们的工作。当我审视与我合作的团队时,我看到了一些令人鼓舞的事情:几年前,在我们的待办事项细化会议上,我看到测试人员的第一个问题始终是“我们如何自动化?”而不是“我们应该测试什么以及为什么?”。
但现在,我注意到一些不同的事情。随着自动化变得越来越容易,话题也发生了变化。更多的测试人员会问这些是什么和为什么的问题,因为他们有喘息的空间来做到这一点。
更多的对话是关于风险而不是脚本。更多的精力花在理解工作的意义上,而不是进行检查上。更多的测试人员选择更深入的思考而不是空洞的仪式。
是的,人工智能有其风险(覆盖错觉、错误的自动化、去技能化)。但我看到软件测试人员的反应很深思熟虑。他们使用人工智能来加深判断,而不是避免判断。
净效应?测试变得越来越好,不是因为人工智能有魔力,而是因为它使测试人员能够自由地做更多重要的工作:这些工作不仅能产生更多的自动化,还能让我们的软件质量更加真实;工作不仅进展得更快,而且更深入。
这让我对我们工艺的未来感到乐观。
自动化控制系统