• 0
  • 0
分享

  一、准备工作

  (一)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。

10-1.png

  文言一心

  ·前两个AI想要在国内访问需要一定的门槛,过程相对复杂

  · 如果只是简单的体验一下智能聊天机器人,可以尝试一下国内的文言一心

10-2.png

  (三)AI编写测试用例原理

  ·正如前面介绍的那样,聊天机器人程序本质上是一个自然语言处理工具。

  · 它就像一面镜子,它输出什么取决于你给它什么

  · 所以,该提供哪些信息,该如何下达命令,就是最核心的问题。

  给AI下达命令,有一个专有名词叫prompt(提示词)

  例如,下图注册弹框的需求:

10-3.png

  我让AI生成这条需求的测试点:“1.点击手机号输入框弹出键盘。限制只能输入数字,除数字外字符输入不成功。手机号限制输入11位;”

  得到的结果如下,可以看到输出的结果大部分是来源于我的提示词,AI将提示词分析并重新整合,输出一份测试点。

10-4.png

  这就意味着,提示词越详细,输出的内容就越贴近想要的结果,但随着而来的成本也就越高。

  但输出的内容不够准确,后期的修改的成本也会变高。

  所以,如何平衡成本也是一个很大的问题。

  二、编写用例

  理想状态是直接把需求直接提供给AI,让AI直接写用例,但这样与实际想要达到的结果相差甚远。

  所以建议,先使用需求通过AI生成测试点,再测试点通过AI生成测试用例。

  以下示例说明以newbing为例:

  (一)通过需求生成测试点

  下面是向AI发出指令的模板,黄色字的内容是可选项或说明:

  注意:由于AI回复的字数有限制,建议对需求进行分块分类型,然后分批生成测试点。  我是一名移动端软件测试工程师,下面这份需求帮我输出一份测试点,(或 每条测试点需要输出正向和逆向的用例):

  需求名称:需求名称

  需求说明:需求说明

  输出要求:将测试点分为触发条件、触发时机、样式、功能逻辑、异常处理几个模块,并且新增一列,表明所属的模块。(如果是非页面性的功能,使用触发条件、触发时机,如果是页面、弹框等,使用展示条件、展示时机)

  输出格式:表格,分为序号、所属模块、测试点,总共三列。

  以下图注册弹框的需求为例,使用的AI是newbing:

10-5.png

  ·按照模板编辑后,黏贴到newbing并发送

10-6.png

  输出的结果如下:

10-7.png

  (二)通过测试点生成测试用例

  下面是向AI发出指令的模板,蓝色字的内容是可选项或说明:

  注意:由于AI回复的字数有限制,建议跟生成测试点一样,分批生成测试用例。

  我是一名移动端软件测试工程师,下面这份是针对移动端软件的测试点,帮我输出一份测试用例,每条测试点用一条以上用例验证 (或 每条测试点需要输出正向和逆向的用例):

  需求名称:需求名称(需求名尽量概述功能点)

  模块名称:模块名称(用例中所属模块)

  需求说明:需求说明

  功能流程:功能流程(可以写一条正向的流程)

  输出要求:需要包含用例名称、所属模块(填写测试点所属模块名称)、前置条件(非必填,可为空)、测试步骤、预期结果

  输出格式:表格。

  以上面输出的测试点为例:

  ·先编辑模板,黏贴到newbing并发送

10-8.png

  输出的结果如下:

10-9.png

  (三)注意事项

  遇到输出数据不完整时,可以让AI继续输出后续的内容。例如:“从第五条开始,继续输出剩下的用例”。

  注意,AI直接输出的结果,大部分不够准确,还是需要经过人工审核。此篇文章只是提供了一个可行的方法,但是它还不完美,欢迎大家一起讨论一个更完美的为未来~


作者:佚名    

来源:http://www.51testing.com/html/60/n-7798860.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 第二篇 基础问答(下)6. 依赖第三方的接口如何处理?这个需要自己去搭建一个mock服务,模拟接口返回数据,也就是我们常说的挡板服务。可以使用的工具有很多,比如在线版的 easy mock,java优秀的接口mock工具moco,或者利用web开发的框架比如flask、django等等自己写一个小的接口服务,部署上就可以。有了mock服务,让开发人员把对应的地址替换掉即可。如果不方便替换可以使用抓包工具或者burpsuite截获请求,修改地址或相应参数,再发送出去就可以了。关于mock的服务还会衍生出一个很常见的话题:如果我们的接口需要真实支付(比如对接支付宝的相关接口),如何测试?也就是说你...
            0 1 3072
            分享
          • 一、概述bug在最开始指的是计算机软件存在的漏洞,可以导致攻击者在未授权的情况下对系统进行各种操作;而在现在来讲,指的是各种软件存在的缺陷或漏洞以及软件软件可改进的细节、或与需求文档存在差异的功能实现等。bug按照其造成危害的严重程度可以分为四个等级,按照其修改的优先顺序,也可以分为四个等级;按照造成危害的严重程度可以划分的四个等级为严重问题、高级问题、中级问题和低级问题,对于各个问题的具体情况以及其一般对应的优先级如下所述;按照bug被处理的先后顺序也可以分为四个等级,分别为最高优先(Immediate)、高级优先(Urgent)、中级优先(Normal)、低优先级(Low)。不过需要注意的...
            15 16 9265
            分享
          • 1、引言这刚刚整理完公司内部技术分享的PPT,看看时间,又已经是凌晨…喝一杯美咖,提提神,反正都已经这个时间了,索性,就直接开始写博客吧。因为最近总是被某些大佬艾特,说我这2月份更新的博文不地道了…我也是哑巴吃黄连啊~~~因为最近在给一些同学讲解接口的事情,本以为 Cookie、Cache及Session这些知识,都是逢考必过的内容,然鹅,又是我想多了。为了能让我可以多想点,今天就分享这三点姿势!!2、Cache关于缓存,我看了网上的一些教程讲解,几个字概括:     太繁琐,太啰嗦,长篇大论为了能让大家更容易理解,小鱼我以文字+流程图的形式来分享。首先,针对接口...
            1 2 6960
            分享
          •   Locust介绍  Locust是一款使用Python开发的开源性能测试工具,支持分布式,可在多台主机上对系统持续发送请求,与Jmeter、LoadRunner的等压测工具使用线程的方式模拟用户请求不同,Locust是使用协程的方式模拟用户请求,协程的上下文切换是由自己控制,当一个协程执行完成后会主动让出,让另一个协程开始执行,切换是在用户态完成的,而线程切换是受系统控制,是在用户态与内核态之间切换,所以协程上下文切换的代价远比线程切换的代价小的多,因此Locust可以达到更高数量级的并发。  Locust安装  需要先安装python3.6以上版本,然后再安装Locust。  pip&n...
            0 0 1235
            分享
          • 读者提问:文件下载,用例怎么写 ?阿常回答:我们先给文件下载一个特定的场景:不支持批量下载,只能一个一个的下载。一、文件下载测试点一)基本功能1、支持当前页面下载,还是新窗口打开另存为。2、下载后比对文件,是否和上传时的文件完全一致。3、注意文件名称为空、含特殊字符及文件名称较长的文件,下载后的文件是否和上传时的一致。4、下载文件过程中断网,等网络恢复,看文件是否继续下载。二)文件存储1、文件上传到服务器之后,采用的是文件存储 NAS 还是对象存储 OSS。2、文件上传到服务器之后,是否有做容灾备份。三)安全问题1、文件上传到服务器之后,文件名是否做了加密。四)权限测试1、不具备访问...
            0 0 1160
            分享
      • 51testing软件测试圈微信