ChatGPT火得不能再火了
过去两周,国内ChatGPT概念股很疯狂,不只是百度、讯飞,有些默默无闻且业绩亏损的公司股价大涨,有1-2个公司连续7个涨停板,不可思议!
上周,因为微软Bing发布新版,ChatGPT热度大增。世界不断被ChatGPT及其应用所震惊,每天都有很多人在他们各自的行业发布ChatGPT的应用程序,从营销、文案、销售、运营等等。
当我们考虑将ChatGPT用于软件测试时,大家的意见很不一样。
我们并不怀疑它对软件测试社区的好处,同时,我们也意识到盲目接受像ChatGPT这样机器人的每一个输出,也会相当危险。在最乐观的情况下,它是一个很好的启发式工具,虽然从本质上看,启发式不是基于规则的逻辑推理来输出结果,其结果是不可靠的。由于ChatGPT的输出严重依赖于提示(prompts),它在很大程度上依赖于软件测试人员给出提示的技巧。
经过几天研究,并和其他专家交流,ChatGPT在软件测试中的应用,概括起来有七种不同方式。
1. 测试想法生成器
ChatGPT技术归为AIGC(人工智能产生内容),所以我们首先想到 ChatGPT在我们的提示下,生成我们需要的测试想法,帮助我们扩展或优化测试思路、测试场景、测试数据等。如果ChatGPT可以根据我们的提示给出一组初始的测试想法,也可以检查我们准备的测试想法(如测试项、场景)清单,这不是很好吗?是的,它能做到。
例如 在 与机器人ChatGPT聊聊软件测试的热门话题 就有这样一个例子:
这里,让我们在机票预订网站上针对 “预订往返机票” 功能测试尝试一下。
在我们询问ChatGPT之前,有几个简单的想法:
在From 和To 中均有效的城市
自动完成/自动建议
机场代码和拼写的验证
搜索结果的验证(计数、准确性、速度、排序显示、分页……)
允许多种组合 (同一日期-不同日期、旅客人数和舱位、票价类型等)
与API匹配,跨平台一致性
错误消息(我在输入下一个句子后添加了这个)
现在,让我们向ChatGPT询问带有尽可能详细提示的测试思路
(询问ChatGPT如何测试这个功能)
根据输出,它似乎更专注于这个想法——允许多种组合 (相同的日期-不同的日期,乘客类型和数量、舱位级别、票价类型等组合)。
让我们使用在线的 Pair-wise组合测试工具(https://pairwise.teremokgames.com/)来生成组合,并排除一些选项,如
成人不能携带2名儿童旅行
成人不能携带2名婴儿旅行
但由于工具的局限性,我们无法排除下列这个选项:
成人不得携带一名儿童及一名婴儿旅行
Pairwise工具的输出总共是21个测试用例,我们按照上面的说法排除用例#4。
现在,谁做得更好? ChatGPT的输出是测试想法的一个很好的起点,然后我们可以使用另一种工具进行改进。
我们也可以用有针对性的提示来深入研究每个测试想法,以得到更好的回答。
例如,当我们要求ChatGPT为错误消息生成想法时,输出结果并不令人失望。
其中一些情况超出了当前关注的特征变量的范围(例如:资金不足、无效的卡详细信息……)
我们明白:这是一个很好的起点,前提是我们知道如何操作,而且必须批判性地分析输出,挑出有用的点进行测试,抛弃没价值的信息。
2. 分析需求的关键语句
想象一下需求文档中的一个句子,如果ChatGPT可以分析这个句子并为我们提供短语的多种解释,会怎样呢?
让我们试一下。我们将使用Google Meet中的示例:对于拥有Google Meet个人账号的用户:会议最多支持100人。
我觉得3、4、5表达的意思是一样的,但用词不同。我会使用ChatGPT所给出的不同解释来审视我自己的理解和解释。
3.创建学习指南
人们可以使用它来启动对一个主题的学习(kickstart their learning ),并在输出的基础上进行系统学习的构建。之前,我曾给过例子:
例如,如果我们还想了解如何测试多媒体,我们可以向ChatGPT请教一些基本的方法。
然后,我将提炼更多,提出更深刻的问题。
有一些音频和视频问题
影响音频/视频的参数
测试音频/视频的工具
与音频/视频测试相关的术语
现在,这是完美的答案吗?我不知道。但ChatGPT给了我们足够的指南来开始测试之旅。我现在可以阅读更多关于编码、解码器、以及与多媒体的关系。
4. 生成代码片段
它能否生成可以构建在其上的代码片段? 这点似乎没问题,因为我们在自媒体上看到了很多关于ChatGPT如何用不同编程语言生成代码的例子。
示例: 用Python编写代码来读取文件的内容,并列出重复元素的数量,并根据每个元素中的字符数量按降序排序
ChatGPT达到目标了吗?
5. 总结一份文件或视频
到目前为止,ChatGPT还不能创建图像或观看视频,但可以提供一个15分钟的视频的文字记录,例如,基于这个视频 (Become the CEO of your testing” by B. Ajay | testing scope | TestFlix2022 | Testing tips and tricks:https://www.youtube.com/watch?v=dkWxyvhZdog )可以生成一个视频的摘要。
你也可以使用像YouTube Summary with ChatGPT这样的插件来获得摘要。
6. 课题写作大纲
我想了一会儿博客主题(如“软件测试”),然后让ChatGPT为这类文章创建一个写作大纲:
其结果是一个结构良好的大纲,节省了大量的时间。
ChatGPT会取代一些人的工作吗? 没那么快。它只是一个很好的助手,需要有技能的人来充分发挥它的潜力。
7. 头脑风暴的伴侣
想法可以随时出现,如果我们想就不同的软件测试主题进行头脑风暴,获得不同的视角、比较或对比,甚至有一个助手来帮助我们进行研究,ChatGPT可以是一个很好的选择。
结论
到目前为止,通过分析ChatGPT给出的不同测试用例或回答,我们可以得出以下结论:
ChatGPT是一个很好的起点,需要熟练的测试人员在交互的基础上进行构建;
它是一种语言模型,使用适当的学习技术,输出的质量将会提高;
把回答当作一种启发,而不是一种规则;
了解ChatGPT的功能并充分利用它;
继续使用ChatGPT进行实验,并选择正确的响应来实现。