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 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...
随机推荐
- Spring —— 注解开发(管理第三方bean)
第三方bean管理 第三方bean依赖注入
- 系统编程-进程-vfork使用、浅析
1. 先贴代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> int globvar = 6 ...
- 手搓大模型Task01:LLama3模型讲解
前言 主要进行Qwen模型架构进行讲解. 1.Qwen整体介绍 Qwen的整体架构与Llama2类似,如下图所示: tokenizer将文本转为词表里面的数值. 数值经过embedding得到 ...
- 【Pwn】maze - writrup
1.运行函数,收集字符串 获取关键词字符串:luck 2.寻找字符串引用代码 3.生成伪代码 4.获得main函数的C语言代码 5.分析程序逻辑 check函数: main函数 int __fastc ...
- 数据库故障处理优质文章汇总(含Oracle、MySQL、MogDB等)
数据库告警.紧急问题处理这些项目对于大多数朋友来讲应该不陌生了.从墨天轮社区整理的"最受DBA欢迎的技术文档合辑"系列中可以发现,大家对"故障诊断专题"的热情居 ...
- 一文详述:AI 网关与 API 网关到底有什么区别?
近年来AI 发展火热,大模型已经成为推动各行各业业务创新和增长的关键力量.随之而来问题是"企业该如何安全管理和部署AI应用的挑战?"AI基础架构的设计不仅要支持现有的业务需求,还要 ...
- 浅谈 K-D Tree 及其进阶应用
前言 \(\text{K-D Tree (K-Dimension Tree)}\) 是一种可以有效处理高维信息的数据结构. 在一般信息学竞赛题目中 \(k = 2\),此时它又称 \(\text{2- ...
- 使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约
本教程以一个智能合约(使用 NEAR 的一个官方 Fungible Tokens 来实现)的例子来介绍一下 Devbox 的强大功能,轻松构建环境,轻松发布. NEAR 是一个去中心化的应用平台,使用 ...
- 解决IDEA中SpringBoot框架使用@Autowired注解方式注入mapper对象出现红色下划线的问题
点击编译器左上角File,点击settings进入设置界面,找到图片中对应的位置,将红线圈住的地方改为Warning,点击右下角的Apply即可
- Windows 非服务器版本永久关闭命令行“快速编辑模式”
使用管理员权限运行cmd.exe 运行如下命令: reg add HKEY_CURRENT_USER\Console /v QuickEdit /t REG_DWORD /d 00000000 /f