每个 Java 软件架构师都应该知道的 20 件事
AI可以增强API测试的6种方法
近年来,人工智能已经不仅仅是一种奇怪的逻辑门实现。相反,人工智能,更具体地说,大型语言模型(LLM)为API创建和测试打开了一个新的工具领域。AI有潜力在软件测试领域真正大放异彩。
下面,我们将看看AI可以帮助API测试的一些特定领域。虽然这个列表并不详尽,但它提供了一些关于AI带来的特殊好处的见解。这些可以作为考虑大规模实施AI的新方法的模板,以增强您的测试团队。
1.生成测试数据
API使用数据,但生成高质量的虚拟数据非常困难。虽然许多组织已经使用实时数据进行了测试,但这在实践中引起了头痛,将安全数据泄露到野外并暴露了原本不应该受到保护的系统。相反,模拟数据是效率和安全性的更好结合,但需要更实质性的东西来生成高质量的模拟数据。
AI完全符合这一要求。生成式AI擅长获取现有数据并生成类似数据。因此,将对数据的一些基本期望馈送到LLM中并设置约束可以导致感觉真实的数据,而不暴露底层资源或用户。
值得注意的是,开发人员应该记住,AI会产生幻觉,在某些情况下,它会产生戏剧性的幻觉。出于这个原因,数据应该根据预期的形式和功能进行验证,并且这些数据应该用作测试的辅助,而不是主要依赖。
2.启发式响应验证
今天现代AI的一个伟大技能是比较。LLM旨在查看内容并生成应该遵循的内容。出于这个原因,他们通常擅长测试这种逻辑是否遵循两个现实世界的结果。
通过这种方式,AI可以用作启发式响应验证的比较测试。向AI提供对请求的响应,以及请求本身的上下文,可以允许开发人员使用此AI来查看未来的请求,以查看结果是否符合预期。然后,这种基于化学的检测系统可以将这种验证过程扩展到建议的纠正措施。例如,检测格式错误的请求,注意没有记录错误代码上下文,然后将建议的操作转发给最终开发人员。
当然,人工智能的幻觉效应在这里是一个风险,但通过提高底层系统的响应数据的质量和数量来减轻这种风险。提供的数据越多,系统可以学习的就越多,从而提高其检测能力。另请阅读:
3.负载模拟
生成式AI可以用来模拟一系列用户行为、用户环境,甚至交互路径。这允许开发人员利用生成式AI来模拟API上的负载,使系统受到现实的常见威胁以及不太常见但仍然可能的交互路径。
由于市场上有如此多的生成式AI解决方案和客户端,看到您的系统相对定期地受到其他AI的攻击并不罕见。使用人工智能来模拟这种内容交互可以帮助生产系统为这种新的现实做好准备,从而改善产品和最终用户体验。
4.威胁建模和自适应测试
安全测试的好坏取决于使用的模型。威胁建模是识别潜在向量和测试用例的过程,以验证您的方法是有效和安全的。因此,使这种威胁模型更广泛和更有效可以导致更安全的最终结果。
生成式人工智能非常擅长制作这样的模型,因为它可以查看环境的上下文,并根据它训练过的数据识别潜在的威胁。鉴于LLM和AI已被广泛用于安全实施,有时已经有大量数据可以用来制作现实的威胁模型,而这些模型可能是表面威胁开发人员甚至没有意识到的。
威胁测试的好处还不止于此。生成模型可以从威胁模型测试中获取现有结果,并调整负载和攻击向量以识别新的潜在威胁。解决一个问题可能会产生另一个问题,适应性测试可以用来大规模发现这些“古怪的”问题。
5.漏洞发现
人工智能的一个主要好处是它可以快速地理解一个复杂的系统。这可以通过使用AI模型定位您的API来发现漏洞来发挥很大作用。虽然这个系统并不完美,它再次受到幻觉的影响,需要验证问题,但它仍然会导致一个相对快速和相当沉重的潜在风险和漏洞列表,否则可能需要几个小时的努力才能发现。
值得注意的是,漏洞扫描还可以帮助识别最终用户可访问的漏洞。虽然您可以为AI提供更关键的访问权限来检测所有问题,但让AI充当外部威胁参与者可以帮助识别最有可能被外部滥用的漏洞,例如跨站点脚本、SQL注入、畸形查询等。
6.错误处理验证
错误处理是API测试的关键部分,因为它允许围绕已知错误设置上下文。错误沟通可以帮助解决错误,而无需开发人员亲自动手,为最终用户提供自助式上下文提升。这些错误消息的质量以及如何处理它们是非常重要的,但是,LLM AI再次可以在主要方面提供帮助。
首先,AI系统可以帮助生成错误,并验证API是否按预期处理它们。他们可以收集和整理产生的错误消息,但也可以进行更高级的测试,例如验证错误消息的阅读级别和清晰度,以及是否存在足够的文档来解决这些问题。
从本质上讲,人工智能可以作为一个有用的最终用户,验证和改进错误处理,而不会在真实的世界中实际遇到错误的开销和负面影响。
在API测试中使用AI
最终,人工智能已被证明是一个强大的工具,可以帮助开发人员测试,验证和改进他们在API领域的最终输出。这个列表绝不是完整的,因为在API空间中AI的用例几乎和AI本身一样多。人工智能有望实现更有效和更高效的测试,只要你能克服技术的幻觉和缺点。
原文链接:https://nordicapis.com/6-ways-ai-can-enhance-api-testing/