Victor Ionascu 表示,质量保证专业人员越来越多地转向人工智能来解决日益复杂的软件测试问题。人工智能驱动的自动化可以提高测试覆盖率、缩短测试周期时间并提高结果的准确性,从而加快软件发布速度并提高质量。
Victor Ionascu 在QA Challenge Accepted上谈到了人工智能在软件测试中的作用。
约纳斯库说,当今的主要挑战之一是确保全面的测试覆盖率。在处理复杂的系统时,特别是在银行或物流等领域,我们处理安全的多步骤数据交易,几乎不可能手动覆盖所有边缘情况。随着复杂性的增加,遗漏有效工作流程角落的风险也会增加。正如约纳斯库所解释的那样,困难在于确保覆盖范围而不影响时间表:
随着应用程序变得越来越复杂,识别极端案例并将其转换为可行的测试用例变得越来越困难。这会导致测试覆盖率存在潜在差距,从而导致被忽视的问题。
Ionascu 表示,自动化测试虽然很有价值,但常常面临开发稳健测试所需的时间以及适应现实世界动态场景的能力有限的问题。自动化测试的挑战不仅在于设置自动化框架或创建脚本,还在于随着系统的发展对其进行维护和发展。
Ionascu 提到,开发能够处理现实世界动态场景的强大测试所需的时间给他们带来了重大问题。他补充说,许多自动化测试都很脆弱,它们在稳定的环境中运行良好,但在遇到意外变化或边缘情况时就会崩溃。
在日常工作中,Ionascu 使用人工智能来增强手动和自动测试。他举了一个例子:
我使用 Amazon CodeWhisperer 和 ChatGPT 等 AI 驱动的测试生成工具来协助创建自动化测试用例,从而减少编写复杂脚本所需的时间。这些工具帮助我生成动态数据、创建边缘案例场景,甚至建议我可能错过的安全漏洞。
Ionascu 表示,人工智能工具可以增强手动和自动测试工作流程。他补充说,这些工具有助于自动执行重复性任务,例如测试用例生成和错误分类,使 QA 团队能够专注于探索性测试和质量策略等更高价值的活动。
Ionascu 表示,虽然自动化可以加快重复性任务的速度,但通常需要大量的手动监督和维护来处理复杂的工作流程,特别是当它们涉及在测试脚本的初始开发过程中难以预测的可变条件时:
尽管测试自动化很有价值,但它并不是动态和复杂系统的灵丹妙药。
InfoQ就自动化测试和在软件测试中使用人工智能的问题采访了Victor Ionascu 。
InfoQ:您在自动化软件测试中遇到了哪些挑战?
Victor Ionascu:在我们的一个项目中,我们必须测试一款处理多个实体(包括银行和政府机构)之间安全文件传输的应用程序。该流程涉及多层加密(AES和RSA),我们需要验证整个加密/解密过程。最初,我们开发的自动化测试用例对于标准场景运行良好。我们将流程编写为:
- 使用特定算法加密文件
- 将它们转移到中央系统
- 接收端验证解密
然而,当出现现实场景时,例如意外的网络延迟或不同的文件格式,自动化就会失败。测试无法适应这些动态变化,需要我们频繁地手动干预、重写或调整脚本。即使是很小的系统更改,例如引入新的加密算法或数据量意外激增,也会破坏自动化测试。这证明了当前自动化工具在适应更复杂、不断变化的环境方面的局限性。
InfoQ:作为软件测试人员,您在日常工作中如何使用人工智能?
Ionascu:在性能测试案例中,我们必须模拟可处理多达 10,000 个并发用户的安全文件传输系统的负载测试。最初,我们使用手动过程,涉及为用户请求编写带有硬编码数据的静态测试脚本,随着系统扩展,该过程变得效率低下。
通过使用 CodeWhisperer 等 AI 工具,我能够动态生成用户负载。 AI 还建议实施扩展机制,而不是使用固定用户负载进行测试。这使得系统能够根据服务器的性能动态调整用户负载,确保我们更有效地捕获峰值负载处理和响应时间。