桓楠百科网

编程知识、经典语录与百科知识分享平台

在软件测试中使用人工智能。(在软件测试中,()描述依据测试案例找出的问题)

质量保证工程师可以发展成为人工智能(AI)战略家,在关注战略决策的同时,指导AI驱动的测试执行。据Victor Ionascu所说,AI不会取代测试角色,而是可以通过预测缺陷、自动化测试维护和优化基于风险的测试来增强它们。这种人与AI的合作对于在日益复杂的软件系统中保持质量至关重要。

Victor Ionascu 在 QA Challenge Accepted 上发表了关于人工智能在质量保证和软件测试中的作用的演讲。

QA专家们越来越多地转向AI来应对软件测试日益复杂的局面,Ionascu说。AI驱动的自动化可以提高测试覆盖范围,缩短测试周期,并提高结果的准确性,从而实现更高质量的软件更快发布,正如他在InfoQ文章中所解释的那样探索AI在自动化软件测试中的作用.

Ionascu 提到他正在使用 GitHub Copilot、Amazon CodeWhisperer 和 ChatGPT 等 AI 工具。他解释说,一旦理解如何有效使用 AI,其中一个主要好处就是效率显著提高:

例如,使用 Copilot 时,不再需要手动搜索特定类或函数是否存在,AI 会实时自动建议相关的代码片段。这加速了开发过程,并帮助我更多地专注于优化和改进测试背后的逻辑。

Ionascu 表示,像 ChatGPT 这样的工具在一般的研究和指导中已被证明是无价的。他不再花时间在多个来源中搜索信息,而是将这些工具作为强大的助手,在自动化过程中提供快速的见解和建议。他提到,这有助于减少研究复杂测试场景或框架所需的时间,从而最终加快了健壮测试脚本的开发。

虽然人工智能提供了巨大的潜力,Ionascu强调,人工智能并非没有局限性。他提到,人工智能缺乏对探索性测试和非功能测试(例如性能和安全)所需的情境理解和人类直觉。

未来,测试工作将随着人工智能的发展,使QA专业人员转变为AI战略家,AI工具将处理自动化测试的大部分执行和维护工作,Ionascu表示。他补充说,AI将使测试具备自适应和自我修复能力,并随着应用程序的发展而发展,从而减少QA团队的 overhead。

Ionascu 预计人工智能在预测性缺陷检测等领域也将有所提升:

人工智能可以分析历史数据,在高风险区域成为严重问题之前识别出来。

从长远来看,人工智能不会取代质量保证角色,而是会增强人类的能力,使团队能够专注于战略性和高价值的任务,如质量策略、探索性测试和基于风险的测试,Ionascu 说。关键在于人工智能与人类监督之间的合作伙伴关系,其中人工智能负责执行,而人类则推动创造力和战略,他总结道。

InfoQ采访了Victor Ionascu,讨论了如何将人工智能应用于软件测试。

InfoQ: 人工智能在测试中有哪些局限性?

Victor Ionascu:尽管它在自动化重复性任务方面表现出色,但人工智能在理解和处理复杂、特定领域的流程上下文方面仍然存在困难。由人工智能生成的测试可能需要人工优化以确保完整性和准确性,特别是对于性能和安全测试等非功能需求。人工智能缺乏人类的直觉,这对于探索性测试和发现难以自动化处理的边缘情况至关重要。

InfoQ: 你能举一个人类直觉在测试案例中起作用的例子吗?

Ionascu:一个边缘案例的例子是测试密码中的不可见或零宽度字符。

场景:用户输入一个看似有效的密码,但其中包含零宽度空间或不可打印的Unicode字符(例如,U+200B零宽度空间,U+200C零宽度非连接符)。

示例密码输入(用户视角):P@ssw0rd(看起来正常)

实际密码(隐藏字符):P@ssw0rd(P和@之间有一个零宽度空格)

使用人工智能的自动化会忽略这一点,因为:

自动化测试通常会检查长度、必需字符和结构,但可能无法检测到隐藏字符。大多数测试自动化框架将这些视为有效的输入,因为它们不会视觉上改变字符串。传统的基于正则表达式的验证规则会失败,除非明确检查隐形的Unicode字符。

人类使用人工智能可以有两种方式发现这一点:

人类测试者见解:手动粘贴从外部文档(例如Google文档、电子邮件)复制的密码可能会由于隐藏字符导致登录失败。AI辅助检测:AI驱动的异常检测可以将预期的登录行为与密码“看似正确”但实际上失败的尝试进行比较

测试这一点会有重大影响。用户可能会在无法登录时感到困惑,却不知道原因。这也可能被利用进行网络钓鱼攻击(例如,注册 Password123 并诱使用户认为这是 Password123)。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言