paint-brush
利用 ChatGPT 进行软件测试经过@ratikeshmisra
4,473 讀數
4,473 讀數

利用 ChatGPT 进行软件测试

经过 Ratikesh4m2023/09/16
Read on Terminal Reader

太長; 讀書

在过去的两年里,人工智能尤其是LLM(大型语言模型)的进步已经证明可以更有效地解决传统问题。法学硕士可以产生的影响之一是帮助我们实现软件测试自动化。对于许多软件团队来说,自动化从来都不是 SDLC 周期的一等公民,并且团队很难实现测试用例的自动化。
featured image - 利用 ChatGPT 进行软件测试
Ratikesh HackerNoon profile picture
0-item
1-item

在过去的两年里,人工智能,尤其是 LLM(大型语言模型)的进步,已经证明可以更有效地解决传统问题,而 LLM 可以产生的影响之一就是帮助我们实现软件测试自动化。对于许多软件团队来说,自动化从来都不是 SDLC 周期的一等公民,并且团队努力实现测试用例的自动化,从而产生了“测试自动化债务”。由于测试自动化方面的差距,质量团队需要花费大量时间手动验证和编写这些测试用例,从而降低了工程团队的交付速度。


手动测试时间随代码复杂度的变化


避免这种麻烦的唯一出路是以较高的速度自动化测试用例,但我们通常无法这样做,因为:


  • 手动 QA 团队缺乏编写可扩展代码的自动化经验。
  • 由于需要自动化的测试用例大量积压,启动自动化的成本(就工程管理和 QA 所需的带宽而言)太高。
  • 测试用例的文档质量差,并且没有对回归和健全套件进行适当的维护。
  • 由于大多数产品公司专注于功能开发,因此稳定性和质量被放在了次要地位。
  • 测试用例的人工评估优于机器评估。


尽管上述所有问题都需要单独一篇文章来介绍软件团队应如何解决它们,但在本节中,我们将讨论 QA 工程师如何利用 ChatGPT 或 LLM 作为BDD(行为驱动测试)的副驾驶。

使用 GPT3.5 进行 BDD 及其自动化


什么是 BDD?


行为驱动开发 (BDD)是一种敏捷软件开发方法,其中围绕用户在与其交互时期望体验的行为来记录和设计应用程序。对于本次讨论的背景,让我们在 YC 网站上应用基于 BDD 的测试,并以 YC 黑客新闻的登录页面为起点。


YC 黑客新闻登录页面


对于上述页面,预期行为是

当用户尝试登录并在https://news.ycombinator.com/login?goto=news上输入有效凭据并按下登录时,它应该将用户重定向到黑客新闻网站”。


根据 BDD 指南,上述行为可以编写为 Gherkin 语法/步骤,这可以是一个可能的测试用例,并且使用 Cucumber 作为框架,相同的 Gherkin 可以自动化,并且这种行为将不再需要人工干预。然而,由于我们在上面部分中讨论的问题,QA 团队通常会在自动化方面遇到困难,但我们可以通过编写一些提示并为我们的 QA 团队创建工作流程来利用LLM的强大功能来搅动 Gherkin 步骤及其自动化在 Cucumber 框架上速度更快。



生成 Gherkin 语法的工作流程

生成 Gherkin 语法的工作流程


例如,在下图中,我展示了如何使用提示为自然语言呈现的行为生成小黄瓜语法来微调 GPT 模型。


ChatGPT 输出所呈现行为的相关 Gherkin 语法



从 Gherkin 语法生成 Cucumber 兼容代码的工作流程

使用 GPT 通过 Gherkin 步骤生成 Cucumber 兼容代码


第 1 步:提示进行设计


下面是您可以在 ChatGPT 控制台上编写的提示,以使用提供的 HTML 代码和 Gherkin 步骤对其进行微调以吐出适当的自动化。作为最终输出,我们要求根据 Cucumber 的需要以步骤定义的形式生成代码,这些代码可以通过 QA 进行复制粘贴。



提示微调 GPT 以生成基于 Cucumber 的自动化


步骤 2:注入需要用作自动化基础的相关 HTML。

如下图所示,在微调后,ChatGPT 会要求提供相关的 HTML 和 Gherkin 步骤,可用于生成 Cucumber 的步骤定义。


需要用于自动化的 HTML feed


Step3:生成步骤定义


因此,GPT 将从提供的 HTML 中理解 DOM 结构,并询问您相关的 Gherkin 语法。对于上述情况,我们已经生成了 Gherkin,我们可以按原样传递它:


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


最终输出


最后,根据工作流程和提到的提示,它会为上述 Gherkin 步骤和提到的场景生成步骤定义文件,该文件可以在较小的质量检查后由 QA 在其 Cucumber 框架中复制,以加快其预期行为的自动化去测试。


生成的黄瓜步骤定义

副驾驶年龄

随着人工智能的出现和副驾驶的出现,人类的生产力将得到提高。通过将基本的日常任务交给人工智能,他们将能够进一步突破创新界限。然而,我仍然认为我们应该将它们视为我们所做的任何工作的助手,并且使用它们的智慧仍然存在于人类之中,因为技术、营销、销售和客户成功团队正在尝试在其工作流程中利用法学硕士的力量QA 工程师也可以这样做,这样他们就能够进一步提高他们的生产力,让他们确保软件质量和稳定性的工作变得令人兴奋!