如何使用 ChatGPT 进行软件测试?
翠花的仪器铺
2024年07月21日 16:15

如何使用 ChatGPT 进行软件测试?

2024-01-09阅读时间:10 分钟

近几个月来,OpenAI 及其创意 ChatGPT 一直备受关注。ChatGPT 能够理解和响应复杂指令,并对用户提示做出详细响应,因此在公众中的受欢迎程度呈爆炸式增长。如果您在线搜索“ChatGPT 技巧”,您可以找到相关内容,帮助您使用该工具根据招聘信息定制简历、在预算内制定菜单计划,甚至创建和玩基于文本的冒险游戏。对于商务人士,这里有观看次数达数十万的视频,向您展示如何使用 ChatGPT 进行营销、编写和优化网站内容等。

如果使用得当,ChatGPT 可以帮助人们克服创作障碍,学习新的任务执行方式,更好地理解信息,提高工作效率。这延伸到了软件开发和测试领域。软件开发团队经常会遇到测试自动化问题,缺乏测试用例自动化会导致团队的势头滞后。配备 ChatGPT 的强大工具后,QA(质量保证)工程师和软件测试人员不仅能够克服测试自动化问题,而且他们的工作效率也显著提高,能够更快地向市场提供始终如一的高质量产品。

“ChatGPT 非常适合测试驱动的开发模式,”技术领导力论坛创始人兼主持人、软件测试领域著名思想领袖 Paul Gerrard 表示。“你可以整合一个完整的测试流程。事实上,你可以整合一个完整的软件开发流程。”

在本文中,我们将探讨软件测试人员使用 ChatGPT-4 的一些方法,并分享一些技巧,以最大限度地利用 ChatGPT 进行应用程序测试。

测试用例创建

ChatGPT 对于软件测试和开发来说非常有价值。它可以用不同的编程语言生成测试用例,创建详细的测试计划,并提供应用程序功能的描述。它还可以设计场景和相应的测试用例,以测试人员可能没有考虑到的方式扩大测试覆盖范围。“它会生成比你自己能想到的更多的测试用例,”Gerrard 说。

由于这些功能, Keysight Technologies 首席技术推广人Jonathan Wright认为,随着 ChatGPT 等人工智能工具的普及,测试方式正在发生转变,从传统的手动测试和遵循脚本的方式转变为更具探索性的测试方式,测试人员可以按照任务进行测试。他解释说,它可以“帮助普通测试人员拥有超能力,让他们能够在不熟悉自动化的情况下编写自动化程序”。

ChatGPT 还会存储对话。这意味着测试人员可以记录它创建的每个测试用例,这对于回归测试非常有用。“您可以通过说‘创建涵盖我们刚刚进行的代码更改的测试’来制定测试规范,”Gerrard 解释道。这减轻了开发人员对测试驱动开发的负担,他们通常认为这个过程耗时且乏味。

测试数据生成

软件开发人员可以通过多种方式利用 ChatGPT 生成测试数据。它可以帮助生成场景、自动化测试脚本,并提供建议和意见以确保测试数据符合标准。ChatGPT 为 QA 工程师和开发人员提供了宝贵的工具和指导。

ChatGPT 可以生成反映真实数据合成的数据集,以确保测试人员能够在不暴露敏感或专有信息的情况下针对各种场景进行测试。这对于测试处理敏感信息的应用程序(例如医疗机构的电子病历)非常有用,因为隐私问题至关重要。它可以生成符合测试人员指定格式和约束的随机数据,这对于压力测试和性能分析特别有用。

当测试人员遇到错误或挑战时,ChatGPT 可以提供故障排除技巧,帮助他们发现和解决问题。组织将有独特的要求和规范、文档以及许多历史错误以及他们的测试用例。从那里扩展,组织拥有大量的信息数据库。ChatGPT 可以帮助他们将元数据压缩为更易于使用的格式,然后您可以根据特定要求对其进行训练,以识别差距、缺陷或歧义。

“这就是我看到的自然进化,”乔纳森·赖特说。“我可以看到人们在组织内部署这类模型,我也可以看到它学习他们的组织。这样,ChatGPT 的用途从人力资源到基础设施……它将理解并具备更多能力。”

代码生成

如果您想要编写小型、简单的软件程序,开发人员可以直接在 ChatGPT 中设置提示以获得所需的结果。更令人印象深刻的是,软件开发人员可以上传白板上甚至餐巾纸背面的应用程序基本草图的扫描件来生成代码。在社交媒体应用 Reddit 上,一位用户将 ChatGPT 在这一领域的能力描述为“简而言之,就是魔法。没有其他词可以形容它。”

Jonathan Wright 使用 ChatGPT 3.5 创建了一个 Gherkin 脚本来查找股票价格,然后将该脚本转换为模型。根据该模型,他要求程序生成代码来编写应用程序,该应用程序将查找并可视化过去一年的股票价格。“它不仅构建了实际的应用程序本身,”他说,“而且还为每个页面创建了所有 Selenium 脚本,运行这些脚本并验证它们。”

代码通常是高度特定于领域的,因此从历史上看,对其进行测试不仅需要您是该领域的专家,还需要掌握测试学科以确保覆盖范围。

ChatGPT可以帮助创建部署管道所需的自动化测试脚本示例,并有助于为任意数量的编程语言和框架维护高标准的代码质量。它对于帮助解释编程概念、设计模式和架构也非常有用,可以帮助开发人员考虑如何测试甚至识别他们不太熟悉的特定领域应用程序的极端情况。此外,它可以提供有关代码结构和样式的反馈,并指出需要改进的领域。

ChatGPT 为软件测试人员提供的提示

如果您读到这里,正在想:“好吧,我的工作没了”,那么请再想想。

“这是真正的人类增强,”赖特说。“如果说有什么不同的话,那就是通过为测试人员提供超能力来增强测试。”设计测试策略背后的思维过程极其复杂,需要大量的情境化来驱动测试、数据和它生成的代码。但你如何有效地利用 ChatGPT 来增强开发团队的能力呢?

有了正确的方法和观点,“从表面上看,我想不出有什么是它不能做来支持人类测试员的”,保罗·杰拉德说。

以下是一些最佳实践和技巧,可帮助您在下一个开发项目中充分利用 ChatGPT。

清晰简洁地定义你的问题

在登录 OpenAI 之前,请确保您完全了解要解决的问题。通过将问题分解为更易于理解的部分并定义您要寻找的结果或功能,确保您能够尽可能简洁地表达问题。

请明确点

ChatGPT 将为一般提示提供一般信息。“当我们使用这样的工具时,我们所做的就是明确我们需要该工具为我们做什么,”Gerrard 说。定义先决条件、规则和所需的功能或结果,就像编写代码时一样。这将增加从 ChatGPT 中提取精确且可操作的建议的可能性。

提示语境化

通过向程序提供上下文信息,您可以定义所需的覆盖范围,并要求 ChatGPT 为应用程序的该分支生成全面的测试覆盖范围。Paul Gerrard 很好地总结了这一点:“这几乎肯定比当今任何开发人员尝试实现的测试水平要好。”

期望迭代和改进

ChatGPT“就像一盒我们还没有手册的工具”,Gerrard 说。你不可能只登录、写一个提示,ChatGPT 就能在第一时间给出理想的解决方案。尝试不同的提示方法,改进你的问题,并每次迭代 ChatGPT 的答案以获得进一步的指导。

与 ChatGPT 对话

ChatGPT 更像是一个编程伙伴,而不仅仅是一个简单实用的工具。“我们需要了解如何与该工具进行对话”,Gerrard 说。通过将 ChatGPT 视为合作者,你可以更批判性地思考,解锁更具创造性的问题解决方案,并鼓励人工智能更深入地“思考”你们共同解决的问题。

保持好奇心

阅读论坛上的帖子、参加网络研讨会,并从正在尝试 ChatGPT 功能的其他人那里寻找信息。反过来,与他人分享您的探索。综合和共享的知识可以帮助您扩展能力并磨练更广泛、更全面的技能。

探索人工智能前沿

ChatGPT 正在使各个行业都能使用强大的生产力提升工具。它代表了开发人员如何进行测试以及组织如何简化运营的变革潜力。您可以通过观看Chat GPT-4 Testers 网络研讨会点播,从 Paul Gerrard 和 Jonathan Wright 那里了解有关 ChatGPT 的更多信息。