登录
注册
首页文章页

ChatGPT 在软件测试中七大应用方式

avatar软件质量报道
2023-02-14
预览

ChatGPT 火得不能再火了 🔥

过去两周,国内 ChatGPT 概念股很疯狂,不只是百度、讯飞,有些默默无闻且业绩亏损的公司股价大涨,有 1-2 个公司连续 7 个涨停板,不可思议!

上周,因为微软 Bing 发布新版,ChatGPT 热度大增。世界不断被 ChatGPT 及其应用所震惊,每天都有很多人在他们各自的行业发布 ChatGPT 的应用程序,从营销、文案、销售、运营等等。

当我们考虑将 ChatGPT 用于软件测试时,大家的意见很不一样。

我们并不怀疑它对软件测试社区的好处,同时,我们也意识到盲目接受像 ChatGPT 这样机器人的每一个输出,也会相当危险。在最乐观的情况下,它是一个很好的启发式工具,虽然从本质上看,启发式不是基于规则的逻辑推理来输出结果,其结果是不可靠的。由于 ChatGPT 的输出严重依赖于提示(prompts),它在很大程度上依赖于软件测试人员给出提示的技巧。

经过几天研究,并和其他专家交流,ChatGPT 在软件测试中的应用,概括起来有七种不同方式

测试想法生成器

ChatGPT 技术归为 AIGC(人工智能产生内容),所以我们首先想到 ChatGPT 在我们的提示下,生成我们需要的测试想法,帮助我们扩展或优化测试思路、测试场景、测试数据等。如果 ChatGPT 可以根据我们的提示给出一组初始的测试想法,也可以检查我们准备的测试想法(如测试项、场景)清单,这不是很好吗?是的,它能做到。

例如在与机器人 ChatGPT 聊聊软件测试的热门话题 就有这样一个例子:

预览

这里,让我们在机票预订网站上针对“预订往返机票”功能测试尝试一下。

预览

在我们询问 ChatGPT 之前,有几个简单的想法:

  • 在 From 和 To 中均有效的城市;
  • 自动完成/自动建议;
  • 机场代码和拼写的验证;
  • 搜索结果的验证(计数、准确性、速度、排序显示、分页……);
  • 允许多种组合(同一日期-不同日期、旅客人数和舱位、票价类型等);
  • 与 API 匹配,跨平台一致性;
  • 错误消息(我在输入下一个句子后添加了这个)。

现在,让我们向 ChatGPT 询问带有尽可能详细提示的测试思路。

预览

根据输出,它似乎更专注于这个想法——允许多种组合 (相同的日期-不同的日期,乘客类型和数量、舱位级别、票价类型等组合)。

让我们使用在线的 Pair-wise 组合测试工具 来生成组合,并排除一些选项,如:

  • 成人不能携带 2 名儿童旅行;
  • 成人不能携带 2 名婴儿旅行。

但由于工具的局限性,我们无法排除下列这个选项:

  • 成人不得携带一名儿童及一名婴儿旅行。
预览

Pairwise 工具的输出总共是 21 个测试用例,我们按照上面的说法排除用例#4

预览

现在,谁做得更好? ChatGPT 的输出是测试想法的一个很好的起点,然后我们可以使用另一种工具进行改进。我们也可以用有针对性的提示来深入研究每个测试想法,以得到更好的回答。

例如,当我们要求 ChatGPT 为错误消息生成想法时,输出结果并不令人失望。

预览

其中一些情况超出了当前关注的特征变量的范围(例如:资金不足、无效的卡详细信息……)

我们明白:这是一个很好的起点,前提是我们知道如何操作,而且必须批判性地分析输出,挑出有用的点进行测试,抛弃没价值的信息。

分析需求的关键语句

想象一下需求文档中的一个句子,如果 ChatGPT 可以分析这个句子并为我们提供短语的多种解释,会怎样呢?

让我们试一下。我们将使用 Google Meet 中的示例:对于拥有 Google Meet 个人账号的用户:会议最多支持 100 人。

预览

我觉得 3、4、5 表达的意思是一样的,但用词不同。我会使用 ChatGPT 所给出的不同解释来审视我自己的理解和解释。

创建学习指南

人们可以使用它来启动对一个主题的学习(kickstart their learning ),并在输出的基础上进行系统学习的构建。之前,我曾给过例子:

预览

例如,如果我们还想了解如何测试多媒体,我们可以向 ChatGPT 请教一些基本的方法。

预览

然后,我将提炼更多,提出更深刻的问题。

  • 有一些音频和视频问题;
  • 影响音频/视频的参数;
  • 测试音频/视频的工具;
  • 与音频/视频测试相关的术语。

现在,这是完美的答案吗?我不知道。但 ChatGPT 给了我们足够的指南来开始测试之旅。我现在可以阅读更多关于编码、解码器、以及与多媒体的关系。

生成代码片段

它能否生成可以构建在其上的代码片段?这点似乎没问题,因为我们在自媒体上看到了很多关于 ChatGPT 如何用不同编程语言生成代码的例子。

示例:用 Python 编写代码来读取文件的内容,并列出重复元素的数量,并根据每个元素中的字符数量按降序排序。

预览

ChatGPT 达到目标了吗?

总结一份文件或视频

到目前为止,ChatGPT 还不能创建图像或观看视频,但可以提供一个 15 分钟的视频的文字记录,例如,基于这个视频 “Become the CEO of your testing” by B. Ajay | testing scope | TestFlix2022 | Testing tips and tricks ” 可以生成一个视频的摘要。

预览

你也可以使用像 YouTube Summary with ChatGPT 这样的插件来获得摘要。

课题写作大纲

我想了一会儿博客主题(如“软件测试”),然后让 ChatGPT 为这类文章创建一个写作大纲:

预览

其结果是一个结构良好的大纲,节省了大量的时间。

ChatGPT 会取代一些人的工作吗? 没那么快。它只是一个很好的助手,需要有技能的人来充分发挥它的潜力。

头脑风暴的伴侣

想法可以随时出现,如果我们想就不同的软件测试主题进行头脑风暴,获得不同的视角、比较或对比,甚至有一个助手来帮助我们进行研究,ChatGPT 可以是一个很好的选择。

结论

到目前为止,通过分析 ChatGPT 给出的不同测试用例或回答,我们可以得出以下结论:

  • ChatGPT 是一个很好的起点,需要熟练的测试人员在交互的基础上进行构建;
  • 它是一种语言模型,使用适当的学习技术,输出的质量将会提高;
  • 把回答当作一种启发,而不是一种规则;
  • 了解 ChatGPT 的功能并充分利用它;
  • 继续使用 ChatGPT 进行实验,并选择正确的响应来实现。

参考:https://www.thetesttribe.com/chatgpt-for-software-testing/

订阅

CODING 官方公众号

随时获取 CODING 最新动态

code

现在开始,

在 CODING 体验高效的研发管理方式

免费使用