前面介绍的案例主要展示了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生成测试用例的最佳实践(一)的更多相关文章

  1. Xcode 自己主动生成版本技术最佳实践

    在 bloglovin ,我们使用自己主动生成版本来设置Xcode,使当前的版本为在Git活跃的分支上 的提交数. 它一直正常工作着.但我们的技术也不是一帆风顺的. 糟糕的老方法 我们使用的技术是来自 ...

  2. svn协同开发下的dll版本管理最佳实践

    作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类: 1. 由于提交代码的开发人员失误,忘记提 ...

  3. Android开发最佳实践

    Android开发最佳实践 摘要 ●使用 Gradle 和它推荐的工程结构 ●把密码和敏感数据放在gradle.properties ●不要自己写 HTTP 客户端,使用Volley或OkHttp库 ...

  4. Web前端开发最佳实践(2):前端代码重构

    前言 代码重构是业内经常讨论的一个热门话题,重构指的是在不改变代码外部行为的情况下进行源代码修改,所以重构之前需要考虑的是重构后如何才能保证外部行为不改变.对于后端代码来说,可以通过大量的自动化测试来 ...

  5. klg-jpa:spring-data-jpa 最佳实践

    klg-jpa:spring-data-jpa 最佳实践 项目介绍 码云地址:https://gitee.com/klguang/klg-jpa JPA是sun为POJO持久化制定的标准规范,用来操作 ...

  6. 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践

    1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系 ...

  7. Java 异常处理的 20 个最佳实践,你知道几个?

    异常处理是 Java 开发中的一个重要部分,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等.Java 提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建 ...

  8. [转]Ethereum-智能合约最佳实践

    主要章节如下: Solidity安全贴士 已知的攻击手段 竞态 可重入 交易顺序依赖 针对Gas的攻击 上溢/下溢 工程技术 参考文献 这篇文档旨在为Solidity开发人员提供一些智能合约的secu ...

  9. Web最佳实践阅读总结(1)

    介绍 最近开始刷一些书和题,此系列是介绍在读Web最佳实践的一些收获和体会. web前端发展现状 存在问题: 代码组织混乱 代码格式的问题突出 页面布局随意 网站整体性能差,没有意识到应用诸如缓存,动 ...

  10. ASP.NET MVC防范CSRF最佳实践

    XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...

随机推荐

  1. java_day1_认识计算机,java环境,Java关键字、标识符、注释

    一.认识计算机 1.组成: 硬件:cpu,内存,显卡,... 软件: 系统软件:WPS, wegame, steam, IDEA,..... 应用软件:WPS, wegame, steam, IDEA ...

  2. Linux_Bash_Shell_索引数组和关联数组及稀疏数组

    1. 索引数组 一.什么是索引数组? 所谓索引数组就是普通数组,以整数作为数组元素的索引下标. 二.实例. 备注: (a)使用-a选项定义索引数组,使用一对小括号()定义数组中的元素列表. (b)索引 ...

  3. Python 项目配置管理框架技术选型

    一.背景介绍 在实际生产项目中,不同环境(如开发.测试.生产环境)常有不同配置需求,如数据库链接等.我们期望一份代码无需改动,仅通过单一配置变量调整就能适配和使用多个环境,实现 "一份代码, ...

  4. SpringBoot 集成 LDAP

    LDAP协议具体是什么可以自行查看,简单来说就是单点登录的一种实现方式 LDAP只是一种协议,实现的有 openLDAP ,Microsoft active directory 等 openLDAP部 ...

  5. uniapp中前端canvas合成图片使用详解

    项目开发中用到了定位打卡,保存当前位置到上传图片的功能.刚开始想着后端人员合成,前端上传经纬度.位置信息和图片就OK,没想到后端人员以使用项目中现有的组件为借口,让前端合成图片,造成前端工作量大增,再 ...

  6. 60 .vue的生命周期和小程序的生命周期区别

    https://blog.csdn.net/weixin_43359799/article/details/123137288

  7. 15 Transformer 框架概述

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  8. [第一章 web入门]SQL注入-1

    启动靶机 很明显注入点为id值,单引号闭合影响语句,说明为单引号闭合 构造注入语句 ?id=1 ' and 1 =1 --+ 发现没报错,说明没有其他过滤 ,开始sql注入 ?id=1 ' order ...

  9. 现在 Llama 具备视觉能力并可以在你的设备上运行 - 欢迎使用 Llama 3.2

    Llama 3.2 来了!今天,我们欢迎 Llama 系列的下一个版本加入 Hugging Face.这次,我们很高兴与 Meta 合作发布多模态和小型模型.在 Hub 上提供了十个开源模型 (5 个 ...

  10. 欢迎体验程序员Lingma的助攻手

    如果你是一位软件开发者,(同义灵码)Lingma可以帮助你做基础架构的脚手架相关工作事宜以及部分代码开发,对比之前没有灵码,现在提效了她可以给予你零编码的快感,准确快速地读懂了你我的需求,例如答问场景 ...