一、准备工作
(一)AI介绍
AI即人工智能,这项技术希望产出一种以人类智能相似的方式做出反应的智能机器。
ChatGPT是OpenAI研发的一款聊天机器人程序。ChatGPT是人工智能技术驱动的自然语言处理工具。
使用AI编写测试用例,其实是将我们提供的需求或测试点通过聊天机器人程序,对自然语言进行处理,重新组合为测试用例。
(二)该选择哪个AI
ChatGPT
自从ChatGPT大热之后,大部分国内途径可以获取到的AI(聊天机器人)都为GPT-3.5版本。
GPT-4.0版本因为要付费等等原因,使用门槛会相对更高。
GPT-3.5版本当然比不上GPT-4.0版本,但如果只是用作编写测试用例的话,3.5版本也是够用的。
NewBing(新必应)
微软推出的NewBing(新必应)与ChatGPT使用同一个算法模型
并且New Bing的回答结果带有搜索来源的地址,即使作为普通的搜索引擎也比传统搜索引擎好用很多。
最重要的一点,现阶段NewBing是免费的,并且只由单次对话的限制,对话的总次数没有限制。
NewBing也是我现在最常用的AI。
文言一心
·前两个AI想要在国内访问需要一定的门槛,过程相对复杂
· 如果只是简单的体验一下智能聊天机器人,可以尝试一下国内的文言一心
(三)AI编写测试用例原理
·正如前面介绍的那样,聊天机器人程序本质上是一个自然语言处理工具。
· 它就像一面镜子,它输出什么取决于你给它什么
· 所以,该提供哪些信息,该如何下达命令,就是最核心的问题。
给AI下达命令,有一个专有名词叫prompt(提示词)
例如,下图注册弹框的需求:
我让AI生成这条需求的测试点:“1.点击手机号输入框弹出键盘。限制只能输入数字,除数字外字符输入不成功。手机号限制输入11位;”
得到的结果如下,可以看到输出的结果大部分是来源于我的提示词,AI将提示词分析并重新整合,输出一份测试点。
这就意味着,提示词越详细,输出的内容就越贴近想要的结果,但随着而来的成本也就越高。
但输出的内容不够准确,后期的修改的成本也会变高。
所以,如何平衡成本也是一个很大的问题。
二、编写用例
理想状态是直接把需求直接提供给AI,让AI直接写用例,但这样与实际想要达到的结果相差甚远。
所以建议,先使用需求通过AI生成测试点,再测试点通过AI生成测试用例。
以下示例说明以newbing为例:
(一)通过需求生成测试点
下面是向AI发出指令的模板,黄色字的内容是可选项或说明:
注意:由于AI回复的字数有限制,建议对需求进行分块分类型,然后分批生成测试点。 我是一名移动端软件测试工程师,下面这份需求帮我输出一份测试点,(或 每条测试点需要输出正向和逆向的用例):
需求名称:需求名称
需求说明:需求说明
输出要求:将测试点分为触发条件、触发时机、样式、功能逻辑、异常处理几个模块,并且新增一列,表明所属的模块。(如果是非页面性的功能,使用触发条件、触发时机,如果是页面、弹框等,使用展示条件、展示时机)
输出格式:表格,分为序号、所属模块、测试点,总共三列。
以下图注册弹框的需求为例,使用的AI是newbing:
·按照模板编辑后,黏贴到newbing并发送
输出的结果如下:
(二)通过测试点生成测试用例
下面是向AI发出指令的模板,蓝色字的内容是可选项或说明:
注意:由于AI回复的字数有限制,建议跟生成测试点一样,分批生成测试用例。
我是一名移动端软件测试工程师,下面这份是针对移动端软件的测试点,帮我输出一份测试用例,每条测试点用一条以上用例验证 (或 每条测试点需要输出正向和逆向的用例):
需求名称:需求名称(需求名尽量概述功能点)
模块名称:模块名称(用例中所属模块)
需求说明:需求说明
功能流程:功能流程(可以写一条正向的流程)
输出要求:需要包含用例名称、所属模块(填写测试点所属模块名称)、前置条件(非必填,可为空)、测试步骤、预期结果
输出格式:表格。
以上面输出的测试点为例:
·先编辑模板,黏贴到newbing并发送
输出的结果如下:
(三)注意事项
遇到输出数据不完整时,可以让AI继续输出后续的内容。例如:“从第五条开始,继续输出剩下的用例”。
注意,AI直接输出的结果,大部分不够准确,还是需要经过人工审核。此篇文章只是提供了一个可行的方法,但是它还不完美,欢迎大家一起讨论一个更完美的为未来~
作者:佚名