用ChatGPT做软件测试
接口测试在软件开发生命周期中扮演着至关重要的角色,有助于验证不同模块之间的交互是否正确。若协议消息被恶意修改,系统是否能够恰当处理,以确保系统的功能正常运行,不会出现宕机或者安全问题。
5.1 ChatGPT在接口测试中的角色
接口测试是确保系统各个模块协同工作的关键环节。传统的接口测试用例编写通常依赖于测试人员的经验、手动操作,这可能导致接口测试用例的不充分和测试内容的遗漏。ChatGPT能够理解和生成文本使其成为编写接口测试用例的理想工具。
5.1.1 理解系统需求和接口规范
ChatGPT可以用来解析系统需求规格说明书和接口文档。通过输入相关文档,ChatGPT可以生成摘要、要点和问题列表等,帮助测试人员更好地把握测试的范围和重点。
假设我们正在测试一个电子商务网站的购物车接口。我们有系统需求文档和接口文档,但它们很冗长,需要花费大量的时间阅读、理解。但是有了ChatGPT以后,只需要将这些文档输入ChatGPT,它就可以快速给出摘要,列出所有与购物车相关的功能和要点等。这有助于快速地确定测试重点,确保接口测试用例的全面性。
5.1.2 生成测试用例模板
ChatGPT可以协助测试团队生成测试用例的模板,包括输入数据、操作步骤和预期结果等。测试人员可以向ChatGPT提供接口描述和测试目标,ChatGPT会自动生成基本的测试用例结构。测试用例模板化以后,既可以加快测试用例的编写速度,又能确保测试用例的一致性。
对于一个社交媒体平台的接口测试,我们需要测试用户发布帖子的功能。通过描述接口规范和测试目标,ChatGPT可以自动生成测试用例模板,包括帖子内容、发布操作的步骤和预期的发布结果等。这样,测试人员只需填写具体的内容,而不必从头开始编写每个接口测试用例。
例如,对于一个电子商务网站的购物车接口,ChatGPT生成的接口文档如下所示。
ChatGPT生成的接口文档
接口名称:add_to_cart
接口概述:该接口用于将指定商品添加到购物车。
请求方式:POST请求
请求URL:https://example.com/api/add_to_cart
参数列表:
- item_id(商品ID)
参数描述:用于指定要添加到购物车的商品的唯一标识。
参数类型:整数
是否必填:是
- num(数量)
参数描述:指定要添加的商品数量。
参数类型:整数
是否必填:是
请求示例:
POST请求 https://example.com/api/add_to_cart
请求体:
{
"item_id": 12345,
"num": 2
}
响应示例:
{
"status": 200,
"message": "添加商品到购物车成功",
"data": {
"cart_total_items": 5
}
}
响应字段说明:
status:标识业务是否成功的状态码。
- 200 表示请求成功,商品成功添加到购物车。
- 其他状态码可根据具体情况自行定义。
message:状态信息,对状态码的详细描述。
data:包含响应数据。
- cart_total_items:购物车中的总商品数量。
5.1.3 探索边界条件
在接口测试中,通常需要测试各种输入数据的边界条件和异常情况。ChatGPT可以帮助测试人员生成边界条件的接口测试用例,确保系统能够正确处理各种情况。
在电子商务网站的购物车接口的测试中,我们需要确保它能够正确处理购买的商品数量的输入,包括正常的商品数量输入和异常地输入。异常输入可能包括带小数点的数字、字母、全角数字、中文字符以及货币符号等特殊字符。不同类型的数据库具有不同的数字上下限,例如,在MySQL中,SMALLINT类型占用2个字节,可以存储从-32768到32767的整数。因此,我们需要考虑商品数量超过上限、低于下限、等于上限、等于下限以及0作为特殊数字和正常数字等各种边界情况的测试用例。
很多情况下,通过UI无法提交的数字,若接口测试通过协议直接发送请求,在应用程序的后台没有进行校验并且数据库没有添加约束条件的情况下,仍然可以正常提交,这可能导致数据无法正常存储等严重问题。
例如,购物车中单个商品数量最大可以为9999,考虑边界值测试用例方法设计接口测试用例,则可以获得以下边界用例,ChatGPT生成的边界值接口测试用例如下所示。
ChatGPT生成的边界值接口测试用例
用例编号:TC001
用例名称:添加数量为0的商品
输入参数:
item_id: 123456
num: 0
预期结果:
添加失败,提示数量不能为0
......
用例编号:TC005
用例名称:添加超过库存的商品
输入参数:
item_id: 123456
num: 10000
预期结果:
添加失败,提示超过库存
......