ChatGPT生成测试用例的最佳实践(一)

前面介绍的案例主要展示了ChatGPT在功能、安全和性能测试用例生成方面的应用和成果。通过ChatGPT生成测试用例,测试团队不仅可以提升工作效率,还可以加快测试工作的速度,尽早发现被测系统中的问题。问题及早发现有助于提高软件的质量和用户满意度。
ChatGPT在功能、安全和性能测试用例生成方面的应用为我们提供了一种创新的方法,可以极大地提高测试的工作效率。
下面仍以百度搜索项目为例,介绍如何应用ChatGPT来生成功能和安全测试用例。
具体操作步骤如下。
1) 问题描述:测试团队定义问题描述,着重测试百度搜索项目的核心业务即关键字搜索业务。这是平时用户应用最为频繁的功能之一、测试人员必测的内容。
2) ChatGPT交互:测试团队与ChatGPT进行交互,向其提供问题描述;ChatGPT理解测试的范围,并迅速生成相应的测试用例。
在ChatGPT的输入框中输入“请生成一份基于百度关键字搜索业务的测试用例集。你是一名资深测试专家,基于目前百度搜索业务,输出一份名称为‘百度关键字搜索-测试用例集’的测试用例集文档,要求考虑等价类、边界值、判定表、正交实验法等测试用例设计方法,以及SQL注入、XSS攻击等安全性测试用例的设计。”。生成百度关键字搜索业务测试用例集的提示词及ChatGPT输出的结果,如图3-1所示。

图3-1 生成百度关键字搜索业务测试用例集的提示词及ChatGPT输出结果
3) 测试用例生成:从生成的百度关键字搜索业务测试用例集来看,其并不符合测试用例的规范格式。一个测试用例通常至少包括测试编号、前置条件、测试步骤、预期结果这4项内容,目前ChatGPT给出的格式明显不符合要求。
因此,借助ChatGPT会话支持上下文的功能,笔者输入“你并没有按照测试用例的格式输出,请按照规范的测试用例格式编写相关用例”提示词。按照规范格式输出测试用例的提示词及ChatGPT输出的测试用例集内容,如图3-2所示。

图3-2 按照规范格式输出测试用例的提示词及ChatGPT输出的测试用例集
这次ChatGPT输出的测试用例集完全符合要求,如下所示。
按照规范格式输出测试用例的提示词及ChatGPT输出的测试用例集
非常抱歉,以下是按照规范测试用例格式编写的百度关键字搜索的测试用例集:
百度关键字搜索-测试用例集
1. 搜索输入框测试
1.1 针对搜索关键字的输入合法性
测试编号: TC001
前置条件: 用户打开百度搜索页面
测试步骤:
1) 在搜索输入框中输入一个有效关键字(例如:"测试")
2) 点击搜索按钮
预期结果: 显示搜索结果页面。
测试编号: TC002
前置条件: 用户打开百度搜索页面
测试步骤:
1) 在搜索输入框中输入多个有效关键字(例如:"软件测试方法")
2) 点击搜索按钮
预期结果: 显示搜索结果页面。
测试编号: TC003
前置条件: 用户打开百度搜索页面
测试步骤:
1) 在搜索输入框中输入特殊字符(例如:"#$%^")
2) 点击搜索按钮
预期结果: 显示错误消息提示。
1.2 针对搜索建议的测试
测试编号: TC004
前置条件: 用户打开百度搜索页面
测试步骤:
在搜索输入框中输入部分关键字(例如: "测")
预期结果: 显示搜索建议列表。
测试编号: TC005
前置条件: 用户打开百度搜索页面
测试步骤:
在搜索输入框中输入多个部分关键字(例如: "软件测")
预期结果: 显示搜索建议列表。
2. 搜索结果页面测试
2.1 针对搜索结果的验证
测试编号: TC006
前置条件: 用户输入合法关键字并点击搜索按钮
测试步骤: 检查搜索结果页面
预期结果: 显示相关的搜索结果。
测试编号: TC007
前置条件: 用户输入合法关键字并点击搜索按钮
测试步骤:
点击下一页按钮
预期结果: 显示下一页的搜索结果。
测试编号: TC008
前置条件: 用户输入合法关键字并点击搜索按钮
测试步骤:
点击上一页按钮
预期结果: 显示上一页的搜索结果。
2.2 针对搜索结果排序
测试编号: TC009
前置条件: 用户输入合法关键字并点击搜索按钮
测试步骤:
选择按相关性排序
预期结果: 结果按相关性排序。
测试编号: TC010
前置条件: 用户输入合法关键字并点击搜索按钮
测试步骤:
选择按时间排序
预期结果: 结果按时间排序。
3. 安全性测试
3.1 SQL注入
测试编号: TC011
前置条件: 用户在搜索输入框中输入恶意SQL查询(例如: "'; DROP TABLE Users --")
测试步骤: 检查搜索结果或页面行为
预期结果: 拒绝查询并显示错误消息。
3.2 跨站脚本(XSS)攻击
测试编号: TC012
前置条件: 用户在搜索输入框中输入包含XSS脚本的关键字(例如: "<script>alert('XSS Attack')</script>")
测试步骤: 检查搜索结果或页面行为
预期结果: 过滤并显示普通文本。
这是一个简单的测试用例示例,具体测试用例的设计和数量可以根据具体需求和应用场景进行扩展和定制。同时,需要注意,测试用例集应根据百度搜索的实际功能和特性来进一步完善。
这种测试用例还不够直观,能不能让其以表格的形式显示呢?笔者输入“请以表格形式展示,谢谢。”提示词,ChatGPT输出的部分内容如图3-3所示。
ChatGPT生成测试用例的最佳实践(一)的更多相关文章
- Xcode 自己主动生成版本技术最佳实践
在 bloglovin ,我们使用自己主动生成版本来设置Xcode,使当前的版本为在Git活跃的分支上 的提交数. 它一直正常工作着.但我们的技术也不是一帆风顺的. 糟糕的老方法 我们使用的技术是来自 ...
- svn协同开发下的dll版本管理最佳实践
作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类: 1. 由于提交代码的开发人员失误,忘记提 ...
- Android开发最佳实践
Android开发最佳实践 摘要 ●使用 Gradle 和它推荐的工程结构 ●把密码和敏感数据放在gradle.properties ●不要自己写 HTTP 客户端,使用Volley或OkHttp库 ...
- Web前端开发最佳实践(2):前端代码重构
前言 代码重构是业内经常讨论的一个热门话题,重构指的是在不改变代码外部行为的情况下进行源代码修改,所以重构之前需要考虑的是重构后如何才能保证外部行为不改变.对于后端代码来说,可以通过大量的自动化测试来 ...
- klg-jpa:spring-data-jpa 最佳实践
klg-jpa:spring-data-jpa 最佳实践 项目介绍 码云地址:https://gitee.com/klguang/klg-jpa JPA是sun为POJO持久化制定的标准规范,用来操作 ...
- 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践
1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系 ...
- Java 异常处理的 20 个最佳实践,你知道几个?
异常处理是 Java 开发中的一个重要部分,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java 提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建 ...
- [转]Ethereum-智能合约最佳实践
主要章节如下: Solidity安全贴士 已知的攻击手段 竞态 可重入 交易顺序依赖 针对Gas的攻击 上溢/下溢 工程技术 参考文献 这篇文档旨在为Solidity开发人员提供一些智能合约的secu ...
- Web最佳实践阅读总结(1)
介绍 最近开始刷一些书和题,此系列是介绍在读Web最佳实践的一些收获和体会. web前端发展现状 存在问题: 代码组织混乱 代码格式的问题突出 页面布局随意 网站整体性能差,没有意识到应用诸如缓存,动 ...
- ASP.NET MVC防范CSRF最佳实践
XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...
随机推荐
- 音视频入门-5-音频编码原理、编码器、ADTS格式
1. 概念 音频压缩技术指的是对原始数字音频信号流(PCM编码)运用的数字信号处理技术. 2. 背景 和 压缩的必要性 研究发现,直接采用PCM码流进行存储和传输存在非常大的冗余度. 以CD为例,其 ...
- 记录一次BOOST库相关的使用包含互斥量、条件变量的类,引发的编译报错
1. 工作中的代码: 2. 使用指针作为形参,不会造成编译报错,我是可以理解的. 那么请讨论下为什么使用值传递和引用作为形参,会造成编译报错? 3. 答案揭晓 boost 的mutex源码: 最终原因 ...
- 以后基于 Topass 的博客加密方法通告
Topass 加密方法 以后会将部分未公开内容公开,请你通过此加密途径来破解密码 特别地,为了保证博客的浏览体验,我不会通过这种方法加密任何一种应该公开的文章 话说你们不妨猜猜用的什么算法
- USB gadget驱动框架(五)
本节主要分析虚拟串口的tty设备的注册.创建/dev/ttyGSx设备节点.tty相关接口的实现. tty的申请与注册 源码:drivers/usb/gadget/function/u_serial. ...
- /proc/pids/status
/proc/279/status是一个Linux内核中的文件,其中包含了当前进程的状态信息.每行的含义如下: Name: 进程的名称,例如"java"或"bash&quo ...
- redis配置启动测试
解压安装redis tar -xzvf redisxxx.xx生成解压目录 进入解压目录:执行命令 make make install 安装成功: redis默认安装位置/usr/local/bin ...
- 顺序结构程序设计(python)
文章目录 1.python运算符 1.1 python算数运算 1.2python比较运算符 1.3 Python赋值运算符 1.4 python逻辑运算符 1.5 python成员运算符 1.6py ...
- linux不常用命令
1.查看进程的内存资源占用 [root@abdi1 elasticsearch]# pidstat -r -p 1791 1 Linux 3.10.0-514.el7.x86_64 (abdi1) 0 ...
- Robot_Parkour_Learning分享报告关键词记录
fraction noise minecraft perlin noise 作为一种fraction noise 跑酷 深度相机,不然被挡住不知道是要下蹲还是要跳过去 issacGym的激光雷达的模拟 ...
- Linux设置显示中文和设置字体
设置中文 一.查看当前使用的系统语言 1.登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言.如 echo $LANG 2.查看安装的语言包 查看是否有中文语言包 ...