作者:Ben Linders
质量保证工程师可以演变成人工智能(AI)战略家,指导AI驱动的测试执行,同时专注于战略决策。根据维克多·爱奥尼斯(Victor Ionascu)的说法,AI可以通过预测缺陷,自动化测试维护和完善基于风险的测试来增强它们,而不是替代测试角色。这种人类协作对于维持日益复杂的软件系统中的质量至关重要。
Victor Ionascu发表了关于人工智能在质量保证和软件测试中的作用的讨论质量保证挑战被接受。
Ionascu说,质量保证专业人员越来越多地转向AI来解决软件测试的日益增长的复杂性。正如他在InfoQ文章中所解释的那样探索AI在自动化软件测试中的作用。
Ionascu提到他使用了Github Copilot,Amazon Codewhisperer和Chatgpt等AI工具。正如他所解释的那样,一旦您了解如何有效地使用AI,关键的好处之一就是明显的提高,正如他所解释的那样:
例如,使用Copilot,AI无需手动搜索特定类还是功能,而是自动建议实时建议相关的代码段。这加速了开发过程,并帮助我更多地专注于完善和改善测试背后的逻辑。
Ionascu说,诸如Chatgpt之类的工具对于一般研究和指导是无价的。他没有花时间在多个来源中进行搜索,而是将其用作强大的助手,在自动化过程中提供了快速见解和建议。他提到,它有助于减少研究复杂的测试场景或框架所需的时间,这最终加快了强大的测试脚本的开发。
尽管AI具有巨大的潜力,但Ionascu强调,AI并非没有局限性。他提到,它缺乏探索性测试和非功能性测试(例如绩效和安全性)等任务所需的上下文理解和人类直觉。
Ionascu说,与AI进行测试的未来将使质量保证专业人员发展成为AI战略家,AI工具将处理自动测试的大部分执行和维护。他补充说,AI将启用随着应用程序发展的自适应,自我修复测试,从而减少了质量检查团队的开销。
Ionascu希望AI在预测缺陷检测等领域也有所改善:
AI可以分析历史数据以识别高危区域,然后才成为关键问题。
从长远来看,AI将不会取代质量检查的角色,而将增强人类能力,使团队能够专注于战略性,高价值的任务,例如质量策略,探索性测试和基于风险的测试。他总结说,关键将是AI和人类监督之间的伙伴关系,AI负责执行,人类推动创造力和战略。
Infoq采访了Victor Ionascu关于将AI应用于软件测试。
InfoQ:AI在测试中有什么局限性?
Victor Ionascu:尽管它擅长自动重复任务,但AI仍在对复杂的,特定于领域的工作流程的上下文理解中挣扎。AI生成的测试可能需要手动完善以确保完整性和准确性,尤其是对于诸如性能和安全测试之类的非功能要求。AI缺乏人类直觉,这对于难以自动化的探索性测试和发现边缘案例至关重要。
InfoQ:您可以举例说明人类直觉带来差异的测试案例吗?
Ionascu:边缘案例的一个示例是在密码中测试不可见的或零宽的字符。
方案:一个用户输入一个看起来有效但包含零宽的空间或不可打印Unicode字符的密码(例如,U+200B零宽度空间,U+200C零宽度non-odiner)。
示例密码输入(用户视角):P@ssw0rd(看起来很正常)
实际密码(隐藏字符):pâ @ssw0rd(包含P和 @之间的零宽度空间)
使用AI自动化会错过这一点,因为:
- 自动测试通常检查长度,必需的字符和结构,但可能无法检测到隐藏的字符。
- 大多数测试自动化框架将这些框架视为有效输入,因为它们在视觉上不会改变字符串。
- 除非明确检查隐形Unicode字符,否则基于传统的正则验证规则失败了
使用AI的人可以通过两种方式发现这一点:
- 人类测试员的见解:手动粘贴从外部文档复制的密码(例如,Google文档,电子邮件)可以揭示由于隐藏字符而导致的登录失败。
- AI辅助检测:AI驱动的异常检测可以将预期的登录行为与密码“看起来正确”但失败的尝试的预期登录行为进行比较
测试这有重大影响。用户可能会在不了解原因的情况下遇到登录失败。也可以利用它用于网络钓鱼攻击(例如,注册Pâssword123并欺骗用户思考它的密码123)。