¥
立即购买

软件功能测试用例生成专家

50 浏览
2 试用
0 购买
Dec 10, 2025更新

本提示词专为软件质量保障场景设计,能够根据用户提供的功能需求,生成结构完整、逻辑严谨的测试用例。通过系统化的测试场景分析、边界条件识别和测试步骤设计,确保测试用例覆盖功能核心逻辑、异常情况和性能要求。输出结果采用标准化的测试用例格式,包含清晰的测试步骤、预期结果和优先级评估,帮助测试人员高效执行测试工作,提升软件质量保障水平。

{ "功能概述": "统一登录与授权:为Web与移动端提供统一身份认证,支持账号密码(Bcrypt校验、失败计数、图形验证码与账户锁定)、可选短信二次验证、第三方OAuth2(授权码模式与绑定/解绑/撤销)、会话与Token策略(Web会话+Access 15分钟/Refresh 7天,SSO仅一处在线,Remember Me 7天)、安全防护(CSRF、设备/IP识别、异地登录短信提醒、审计日志)以及全端退出与令牌作废。边界条件涵盖服务器时钟±2分钟、第三方回调延迟、授权取消与网络抖动重试。", "测试环境": { "环境": "Staging/预发布环境,数据隔离", "Web浏览器": "Chrome 120+ (Windows 11 x64)", "移动端": "Android 12 + Chrome 120(或等效移动App内置WebView)", "后端与中间件": [ "认证服务/AuthService(启用Bcrypt)", "OAuth2适配器(对接OAuth沙箱)", "Redis(计数/SSO/会话/令牌黑名单)", "关系型数据库(用户/绑定/审计日志)", "API网关/反向代理(CSRF/安全头)", "NTP时钟同步(漂移≤2分钟)" ], "外部依赖(沙箱/模拟器)": [ "短信网关沙箱(延迟/失败可控)", "OAuth2沙箱提供商(可配置回调延迟/授权取消/Token交换失败)" ], "测试账号与数据(脱敏示例)": { "本地账号A": { "username": "u_demo01", "password": "Pwd!2345", "phone": "+86-1390001", "2FA": "可配置开启/关闭" }, "本地账号B": { "username": "u_demo02", "password": "Pwd!2345", "phone": "+86-1390002" }, "预置锁定账号": { "username": "u_lock01", "status": "已锁定(通过管理/脚本模拟)" }, "OAuth沙箱应用": { "provider": "AuthX-Sandbox", "client_id": "test_client", "redirect_uri": "https://staging.example.com/oauth/callback" }, "IP与设备": { "DeviceA": "Chrome/Windows,IP: 203.0.113.10", "DeviceB": "Android/Chrome,IP: 198.51.100.10" } } }, "优先级映射": { "P0": "高", "P1": "中", "P2": "低" }, "测试用例列表": [ { "用例编号": "UA-REG-001", "legacy_id": null, "用例标题": "账号密码成功登录(无2FA)并记录审计日志", "优先级": "P1", "前置条件": [ "账号 u_demo01 存在,2FA关闭,未被锁定,失败计数清零", "CSRF令牌有效,访问登录页" ], "测试步骤": [ "在登录页输入用户名 u_demo01 和密码 Pwd!2345,提交", "观察是否进入首页/个人中心", "调用用户信息API验证会话有效", "查询审计日志" ], "测试数据": {}, "预期结果": [ "登录成功,返回200,跳转首页", "创建Web会话+下发Access/Refresh Token(HttpOnly)", "审计日志记录成功事件,含时间、IP、UA" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["认证服务", "会话管理", "令牌服务", "审计日志", "登录UI"], "依赖": ["Redis", "DB", "API网关/CSRF"] } }, { "用例编号": "UA-REG-002", "legacy_id": null, "用例标题": "5次失败后下次登录需要图形验证码(触发阈值)", "优先级": "P0", "前置条件": [ "账号 u_demo01 未锁定,失败计数清零", "开启图形验证码功能" ], "测试步骤": [ "连续5次使用错误密码登录(不输入验证码)", "第6次访问登录页输入正确用户名/密码但不填写验证码提交", "刷新验证码后输入正确验证码与正确密码再次提交" ], "测试数据": { "错误密码": "Wrong!234", "验证码示例": "XY7K(以页面返回为准)" }, "预期结果": [ "前5次返回401并累加失败计数", "第6次返回需要验证码的错误(例如HTTP 400/特定错误码),不创建会话", "填写正确验证码+正确密码后登录成功;失败计数重置;审计日志含“触发验证码”与后续“成功”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["认证服务", "验证码服务", "会话管理", "审计日志"], "依赖": ["Redis", "DB"] } }, { "用例编号": "UA-REG-003", "legacy_id": null, "用例标题": "达到验证码要求时未提供验证码禁止登录", "优先级": "P0", "前置条件": [ "账号 u_demo01 的失败计数已达到触发验证码阈值(通过接口/脚本设置)" ], "测试步骤": [ "输入正确用户名/密码,不输入验证码,提交" ], "测试数据": {}, "预期结果": [ "返回错误(需验证码),不创建会话,不重置失败计数", "审计日志记录失败,原因为“验证码缺失/错误”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["认证服务", "验证码服务", "审计日志"], "依赖": ["Redis"] } }, { "用例编号": "UA-REG-004", "legacy_id": null, "用例标题": "账户锁定期间拒绝登录并提示剩余时间", "优先级": "P0", "前置条件": [ "账号 u_lock01 处于锁定状态(模拟达到锁定条件),锁定窗口10分钟" ], "测试步骤": [ "尝试使用正确用户名/密码登录", "查询审计日志" ], "测试数据": {}, "预期结果": [ "返回账户锁定错误,响应中包含剩余锁定时间(或通用提示)", "不创建会话/令牌", "审计日志记录失败,原因“账户锁定”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["认证服务", "会话管理", "审计日志"], "依赖": ["Redis", "DB"] } }, { "用例编号": "UA-REG-005", "legacy_id": null, "用例标题": "锁定期结束自动解锁(考虑服务器时钟±2分钟)", "优先级": "P1", "前置条件": [ "账号 u_lock01 处于锁定状态,距离结束≤2分钟" ], "测试步骤": [ "在锁定预计结束前1分钟尝试登录,记录结果", "在锁定预计结束后1分钟再次尝试登录", "验证失败计数是否复位" ], "测试数据": {}, "预期结果": [ "结束前登录仍被拒绝", "结束后登录成功(允许±2分钟时钟漂移),会话/令牌创建", "失败计数复位,审计日志有“解锁后成功”记录" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["认证服务", "会话管理", "令牌服务", "审计日志"], "依赖": ["Redis", "NTP"] } }, { "用例编号": "UA-REG-006", "legacy_id": null, "用例标题": "开启短信二次验证后的成功登录", "优先级": "P1", "前置条件": [ "账号 u_demo01 已开启2FA,短信通道可用", "失败计数清零,未锁定" ], "测试步骤": [ "输入正确用户名/密码登录,触发下发短信验证码", "输入正确短信验证码,提交", "验证登录完成并进入首页" ], "测试数据": { "短信验证码": "123456(以网关沙箱返回为准)" }, "预期结果": [ "首次提交后进入2FA验证态,不创建最终会话", "提交正确验证码后登录成功,创建会话+令牌", "审计日志含“2FA验证成功”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["认证服务", "二次验证服务", "通知服务", "会话管理", "令牌服务", "审计日志"], "依赖": ["短信网关沙箱", "Redis", "DB"] } }, { "用例编号": "UA-REG-007", "legacy_id": null, "用例标题": "2FA错误/过期验证码拒绝登录并限流", "优先级": "P0", "前置条件": [ "账号 u_demo01 已开启2FA,短信通道可用,处于2FA验证态" ], "测试步骤": [ "输入错误验证码3次(含一次过期验证码)", "观察错误提示与重试间隔/限流提示", "获取新验证码并输入正确值" ], "测试数据": { "错误验证码": "654321" }, "预期结果": [ "每次错误均拒绝完成登录,不创建会话;错误原因精确(错误/过期)", "达到策略阈值时触发短期限流(返回特定错误码或等待提示)", "使用新验证码后可成功登录;审计日志记录错误次数与成功完成" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["二次验证服务", "认证服务", "通知服务", "审计日志"], "依赖": ["短信网关沙箱", "Redis"] } }, { "用例编号": "UA-REG-008", "legacy_id": null, "用例标题": "2FA短信验证码重发与幂等(网络抖动重复提交)", "优先级": "P1", "前置条件": [ "账号 u_demo01 已开启2FA", "短信网关沙箱可模拟延迟" ], "测试步骤": [ "请求发送验证码,立刻重复请求一次", "在验证码到达前后分别提交同一验证码两次(模拟重复点击提交)" ], "测试数据": {}, "预期结果": [ "重发策略生效(频率限制/最近一次有效)", "同一验证码仅可成功一次;第二次提交返回已使用/失效", "审计日志记录重发与消费状态" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["二次验证服务", "通知服务", "认证服务", "审计日志"], "依赖": ["短信网关沙箱", "Redis"] } }, { "用例编号": "UA-REG-009", "legacy_id": null, "用例标题": "OAuth首次授权需绑定本地账号并登录成功", "优先级": "P0", "前置条件": [ "账号 u_demo02 未绑定任意第三方", "OAuth沙箱账户可用" ], "测试步骤": [ "从登录页选择OAuth登录,重定向至提供商授权页并同意", "回调至绑定页面,输入本地账号 u_demo02 与密码绑定", "完成绑定后进入系统" ], "测试数据": {}, "预期结果": [ "成功完成授权码交换,出现绑定页", "绑定成功后创建会话+令牌,后续可直接OAuth登录免绑定", "审计日志记录授权成功与绑定事件" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "认证服务", "绑定管理", "会话管理", "令牌服务", "审计日志"], "依赖": ["OAuth沙箱", "DB", "Redis"] } }, { "用例编号": "UA-REG-010", "legacy_id": null, "用例标题": "OAuth回调延迟场景下授权码仍可用(有效期内)", "优先级": "P2", "前置条件": [ "OAuth沙箱配置回调延迟30秒(小于授权码有效期)", "本地账号未绑定或已准备绑定流程" ], "测试步骤": [ "发起OAuth授权并同意", "等待30秒后回调处理绑定/登录" ], "测试数据": {}, "预期结果": [ "授权码未过期,交换成功,后续绑定/登录成功", "审计日志记录回调时间与成功事件" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "绑定管理", "令牌服务", "审计日志"], "依赖": ["OAuth沙箱"] } }, { "用例编号": "UA-REG-011", "legacy_id": null, "用例标题": "用户在第三方授权页取消授权", "优先级": "P0", "前置条件": [ "可访问OAuth授权页" ], "测试步骤": [ "发起OAuth授权,在提供商页面选择“取消/拒绝”", "观察回调处理与前端提示" ], "测试数据": {}, "预期结果": [ "回调携带错误(access_denied等),系统不创建会话/令牌", "页面提示授权已取消,可重试或改用其他登录方式", "审计日志记录失败原因“授权取消”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "认证服务", "审计日志"], "依赖": ["OAuth沙箱"] } }, { "用例编号": "UA-REG-012", "legacy_id": null, "用例标题": "解绑第三方后再次使用OAuth需引导重新绑定", "优先级": "P1", "前置条件": [ "账号 u_demo02 已完成OAuth绑定" ], "测试步骤": [ "进入账号设置执行第三方解绑操作", "从登录页再次使用OAuth登录" ], "测试数据": {}, "预期结果": [ "解绑成功,审计日志记录解绑", "再次OAuth登录时进入绑定流程,不可直接进入系统" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["绑定管理", "OAuth2适配器", "认证服务", "审计日志"], "依赖": ["DB", "OAuth沙箱"] } }, { "用例编号": "UA-REG-013", "legacy_id": null, "用例标题": "在第三方撤销授权后需重新授权", "优先级": "P1", "前置条件": [ "账号 u_demo02 已绑定OAuth", "在OAuth提供商控制台对该用户撤销授权" ], "测试步骤": [ "尝试使用OAuth按钮直接登录", "如已存在旧会话,访问受保护API触发刷新或验证" ], "测试数据": {}, "预期结果": [ "系统检测到授权已撤销,需要重新跳转授权流程", "旧Token在下一次验证/刷新时失败并引导重新授权", "审计日志记录“第三方授权撤销”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "令牌服务", "认证服务", "审计日志"], "依赖": ["OAuth沙箱"] } }, { "用例编号": "UA-REG-014", "legacy_id": null, "用例标题": "Access Token 15分钟过期与Refresh Token刷新成功", "优先级": "P1", "前置条件": [ "账号 u_demo01 已登录并持有Access/Refresh Token" ], "测试步骤": [ "在Access Token有效期内调用受保护API,应成功", "等待Access Token过期(或模拟时间),使用Refresh Token刷新", "使用新Access Token访问受保护API" ], "测试数据": {}, "预期结果": [ "有效期内返回200", "过期后刷新成功返回新Access Token(并按策略旋转Refresh Token,如启用)", "新Access Token可用;审计日志记录刷新事件" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["令牌服务", "会话管理", "审计日志"], "依赖": ["Redis", "DB"] } }, { "用例编号": "UA-REG-015", "legacy_id": null, "用例标题": "Refresh Token 7天过期(考虑时钟±2分钟)", "优先级": "P1", "前置条件": [ "账号 u_demo01 已登录且持有Refresh Token", "可通过配置/模拟加速过期或时间偏移" ], "测试步骤": [ "在接近7天时尝试刷新(提前2分钟)", "在超过7天后尝试刷新(延后2分钟)" ], "测试数据": {}, "预期结果": [ "提前2分钟内刷新成功(容忍时钟漂移)", "超过7天刷新失败(401/特定错误),需重新登录;审计日志记录刷新失败原因“Refresh过期”" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["令牌服务", "会话管理", "审计日志"], "依赖": ["Redis", "NTP"] } }, { "用例编号": "UA-REG-016", "legacy_id": null, "用例标题": "SSO仅一处在线:新登录踢下线旧会话", "优先级": "P0", "前置条件": [ "账号 u_demo01 未登录" ], "测试步骤": [ "在DeviceA(203.0.113.10)登录成功", "在DeviceB(198.51.100.10)使用同账号登录成功", "在DeviceA调用受保护API或刷新Token" ], "测试数据": {}, "预期结果": [ "DeviceB登录成功后,DeviceA的会话/令牌立刻失效(401/被踢提示)", "审计日志记录“SSO踢出”事件,含被踢设备/IP/UA" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["SSO服务", "会话管理", "令牌服务", "审计日志"], "依赖": ["Redis"] } }, { "用例编号": "UA-REG-017", "legacy_id": null, "用例标题": "Remember Me 7天:浏览器重启后仍保持登录", "优先级": "P1", "前置条件": [ "账号 u_demo01 未登录" ], "测试步骤": [ "勾选“记住我”登录成功", "关闭并重启浏览器后访问受保护页面", "查看Cookie属性与有效期" ], "测试数据": {}, "预期结果": [ "重启后仍为已登录状态(在7天内)", "Remember Me Cookie具备Secure/HttpOnly/SameSite合规设置,有效期为7天", "审计日志记录Remember Me使用" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["会话管理", "令牌服务", "登录UI", "审计日志"], "依赖": ["浏览器", "API网关"] } }, { "用例编号": "UA-REG-018", "legacy_id": null, "用例标题": "退出登录全端失效(Access/Refresh/RememberMe)", "优先级": "P0", "前置条件": [ "账号 u_demo01 在DeviceA与DeviceB均已登录,DeviceA启用Remember Me" ], "测试步骤": [ "在DeviceB执行“退出登录”", "在DeviceA尝试访问受保护API与刷新Token", "检查Remember Me Cookie是否被清除/失效" ], "测试数据": {}, "预期结果": [ "所有端的会话、Access/Refresh Token立即无效(401)", "Remember Me失效/被清除", "审计日志记录“登出”事件,含多端失效标记" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["会话管理", "令牌服务", "SSO服务", "审计日志"], "依赖": ["Redis", "API网关"] } }, { "用例编号": "UA-REG-019", "legacy_id": null, "用例标题": "异地/新设备登录短信提醒与审计", "优先级": "P1", "前置条件": [ "账号 u_demo01 存在,短信提醒功能开启" ], "测试步骤": [ "在DeviceA完成登录", "在地理区域差异明显的DeviceB(不同IP段)登录", "查看短信提醒与审计日志" ], "测试数据": {}, "预期结果": [ "DeviceB登录触发短信提醒(内容脱敏,不含完整账号/验证码)", "审计日志记录设备指纹/IP/登录结果", "不影响正常登录流程" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["设备/IP识别", "通知服务", "认证服务", "审计日志"], "依赖": ["短信网关沙箱", "IP地理库"] } }, { "用例编号": "UA-REG-020", "legacy_id": null, "用例标题": "CSRF防护:跨站请求尝试登出被阻止", "优先级": "P0", "前置条件": [ "账号 u_demo01 已在浏览器登录", "准备跨域页面发起伪造POST /logout(无CSRF Token)" ], "测试步骤": [ "从恶意站点发起登出请求(无CSRF Token)", "在当前站点检查登录状态" ], "测试数据": {}, "预期结果": [ "登出请求被拒绝(403/CSRF错误)", "现有会话仍然有效,不被意外登出", "审计日志记录CSRF拦截事件(可选)" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["CSRF中间件", "会话管理", "安全网关"], "依赖": ["API网关"] } }, { "用例编号": "UA-REG-021", "legacy_id": null, "用例标题": "CSRF Token登录后轮换,旧Token失效", "优先级": "P1", "前置条件": [ "未登录状态访问登录页获取CSRF Token T1" ], "测试步骤": [ "使用T1完成登录", "登录后获取新页面的CSRF Token T2", "尝试使用T1调用受保护表单接口" ], "测试数据": {}, "预期结果": [ "登录后CSRF Token轮换成功获取T2", "使用旧的T1调用被拒绝(403)", "使用T2调用成功" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["CSRF中间件", "认证服务", "安全网关"], "依赖": ["API网关"] } }, { "用例编号": "UA-REG-022", "legacy_id": null, "用例标题": "刷新令牌并发/重试幂等:仅第一次成功", "优先级": "P0", "前置条件": [ "账号 u_demo01 已登录并持有一对有效Tokens" ], "测试步骤": [ "并发发起两次Refresh请求(携带同一Refresh Token)", "记录两次响应", "使用两个响应中的Access Token分别调用API" ], "测试数据": {}, "预期结果": [ "仅第一次刷新成功(或仅返回一个有效新Token),第二次返回已使用/失效错误", "仅第一个返回的Access Token可用;第二个不可用", "审计日志记录刷新与拒绝细节" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["令牌服务", "会话管理", "安全网关", "审计日志"], "依赖": ["Redis"] } }, { "用例编号": "UA-REG-023", "legacy_id": null, "用例标题": "会话固定攻击防护:登录后Session ID变更", "优先级": "P1", "前置条件": [ "未登录访问站点,记录当前Session ID(如适用)" ], "测试步骤": [ "完成登录,读取登录后的Session ID", "比较前后Session ID" ], "测试数据": {}, "预期结果": [ "登录后Session ID发生变化(会话固定防护)", "新会话具备正确权限范围" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["会话管理", "认证服务", "安全网关"], "依赖": ["API网关"] } }, { "用例编号": "UA-REG-024", "legacy_id": null, "用例标题": "审计日志:密码错误登录记录原因/UA/IP", "优先级": "P2", "前置条件": [ "账号 u_demo01 存在" ], "测试步骤": [ "输入错误密码登录一次", "在审计日志中检索该事件" ], "测试数据": {}, "预期结果": [ "日志记录失败事件,包含精确原因“密码错误”、时间、IP、UA、用户名(脱敏显示)", "无会话/令牌创建记录" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["审计日志", "认证服务"], "依赖": ["DB"] } }, { "用例编号": "UA-REG-025", "legacy_id": null, "用例标题": "审计日志:触发图形验证码的失败事件", "优先级": "P2", "前置条件": [ "失败计数达到验证码阈值" ], "测试步骤": [ "在需验证码时不提供验证码尝试登录一次", "在审计日志中检索事件" ], "测试数据": {}, "预期结果": [ "日志原因为“需要图形验证码/验证码缺失”,记录IP/UA/用户名(脱敏)", "无会话创建行为" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["审计日志", "认证服务", "验证码服务"], "依赖": ["DB"] } }, { "用例编号": "UA-REG-026", "legacy_id": null, "用例标题": "审计日志:OAuth授权取消事件记录", "优先级": "P2", "前置条件": [ "可触发授权取消" ], "测试步骤": [ "执行OAuth授权并在提供商页面取消", "查询审计日志" ], "测试数据": {}, "预期结果": [ "日志原因“授权取消/access_denied”,记录提供商、IP、UA、回调时间", "无会话创建记录" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["审计日志", "OAuth2适配器", "认证服务"], "依赖": ["DB", "OAuth沙箱"] } }, { "用例编号": "UA-REG-027", "legacy_id": null, "用例标题": "图形验证码过期/刷新后生效", "优先级": "P1", "前置条件": [ "失败计数达阈值,验证码显示" ], "测试步骤": [ "等待验证码过期时间后提交正确密码+过期验证码", "刷新验证码,输入新验证码与正确密码" ], "测试数据": {}, "预期结果": [ "过期验证码被拒绝并提示过期", "刷新后新验证码有效,登录成功;审计日志记录过期/成功事件" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["验证码服务", "认证服务", "审计日志"], "依赖": ["Redis"] } }, { "用例编号": "UA-REG-028", "legacy_id": null, "用例标题": "OAuth登录路径不应要求图形验证码", "优先级": "P2", "前置条件": [ "系统启用图形验证码", "用户选择OAuth登录" ], "测试步骤": [ "直接点击OAuth登录按钮,完成授权", "检查是否出现验证码拦截" ], "测试数据": {}, "预期结果": [ "OAuth登录流程不要求图形验证码(两者隔离)", "按设计进入绑定/登录流程" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "认证服务", "验证码服务"], "依赖": ["OAuth沙箱"] } }, { "用例编号": "UA-REG-029", "legacy_id": null, "用例标题": "登出后访问API返回401(服务端会话与令牌黑名单生效)", "优先级": "P0", "前置条件": [ "账号 u_demo01 已登录并持有Access/Refresh Token" ], "测试步骤": [ "调用受保护API确认200", "执行登出", "再次调用受保护API与Refresh接口" ], "测试数据": {}, "预期结果": [ "登出后受保护API返回401/会话失效", "Refresh接口返回401/令牌作废;黑名单命中(可从管理面板/监控查看)", "审计日志有登出与拦截记录" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["会话管理", "令牌服务", "API网关", "审计日志"], "依赖": ["Redis"] } }, { "用例编号": "UA-REG-030", "legacy_id": null, "用例标题": "服务器时钟±2分钟对Access Token校验的影响", "优先级": "P2", "前置条件": [ "账号 u_demo01 已登录", "可在网关/验证服务模拟±2分钟时钟偏移" ], "测试步骤": [ "在服务器时间快2分钟情况下校验一个刚签发的Access Token", "在服务器时间慢2分钟情况下校验一个即将过期的Access Token" ], "测试数据": {}, "预期结果": [ "时间快2分钟时不误判为未来签发导致拒绝(容忍NotBefore)", "时间慢2分钟时在有效窗口内不误判过期", "均按策略通过/拒绝并记录校验结果到日志(可选)" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["令牌服务", "安全网关"], "依赖": ["NTP", "Redis"] } }, { "用例编号": "UA-REG-031", "legacy_id": null, "用例标题": "OAuth Token交换网络超时自动重试与幂等", "优先级": "P1", "前置条件": [ "OAuth沙箱可注入Token交换接口超时" ], "测试步骤": [ "发起OAuth授权并同意", "回调时首次交换超时,触发客户端/服务端一次重试", "完成交换后检查是否仅创建一次会话/绑定一次" ], "测试数据": {}, "预期结果": [ "重试成功后仅存在一条会话与一次绑定记录(无重复)", "审计日志记录超时与成功重试事件" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "认证服务", "绑定管理", "会话管理", "审计日志"], "依赖": ["OAuth沙箱", "Redis", "DB"] } }, { "用例编号": "UA-REG-032", "legacy_id": null, "用例标题": "Remember Me Cookie安全属性校验", "优先级": "P2", "前置条件": [ "记住我功能开启" ], "测试步骤": [ "勾选记住我登录成功", "抓包检查Set-Cookie属性", "在非HTTPS环境尝试传输(如被允许则为缺陷)" ], "测试数据": {}, "预期结果": [ "Cookie包含Secure/HttpOnly/SameSite(Strict/Lax按策略)属性", "在非HTTPS下不应下发/不应可用" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["会话管理", "安全网关"], "依赖": ["浏览器", "API网关"] } }, { "用例编号": "UA-REG-033", "legacy_id": null, "用例标题": "OAuth已绑定账号直接登录并触发SSO踢出旧端", "优先级": "P1", "前置条件": [ "u_demo02 已绑定OAuth,DeviceA已登录" ], "测试步骤": [ "在DeviceB通过OAuth直接登录", "在DeviceA访问受保护API" ], "测试数据": {}, "预期结果": [ "DeviceB登录成功", "DeviceA被踢下线(401),审计日志含SSO事件(含OAuth登录来源)" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["OAuth2适配器", "SSO服务", "会话管理", "令牌服务", "审计日志"], "依赖": ["Redis", "OAuth沙箱"] } }, { "用例编号": "UA-REG-034", "legacy_id": null, "用例标题": "登录后访问跨站表单接口需要CSRF Token", "优先级": "P1", "前置条件": [ "u_demo01 已登录" ], "测试步骤": [ "直接POST受保护表单接口(不带CSRF Token)", "补充正确CSRF Token后再次请求" ], "测试数据": {}, "预期结果": [ "无CSRF时403", "带CSRF时200,数据提交成功" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["CSRF中间件", "安全网关", "认证服务"], "依赖": ["API网关"] } }, { "用例编号": "UA-REG-035", "legacy_id": null, "用例标题": "同设备切换IP不触发异地登录短信(策略合理性)", "优先级": "P2", "前置条件": [ "u_demo01 在DeviceA已登录", "设备指纹保持一致,IP切换为同城市/同运营商IP" ], "测试步骤": [ "在同设备上断开重连网络导致IP变化", "再次登录或续期令牌" ], "测试数据": {}, "预期结果": [ "不触发异地登录短信(根据策略:同设备/短期IP变更不告警)", "审计日志仅记录IP变动,无短信事件" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["设备/IP识别", "通知服务", "审计日志"], "依赖": ["IP地理库", "短信网关沙箱"] } }, { "用例编号": "UA-REG-036", "legacy_id": null, "用例标题": "测试数据清理与会话失效验证", "优先级": "P0", "前置条件": [ "已执行本套回归中涉及的登录/绑定/令牌/记住我操作" ], "测试步骤": [ "解绑回归中创建的第三方绑定关系", "撤销第三方授权(从提供商侧)", "强制登出所有会话(管理接口)", "将本次测试用的Refresh Token加入黑名单(如未自动加入)", "清除Remember Me Cookie(客户端与服务端)", "清除失败计数/锁定标记", "验证所有端访问API返回401" ], "测试数据": {}, "预期结果": [ "绑定/授权清理成功", "会话、Access/Refresh Token全部失效", "Remember Me不可再用", "失败计数/锁定状态复位", "验证访问均返回401;环境回到初始可测状态" ], "实际结果": "", "测试类型": "回归", "影响模块与依赖": { "影响模块": ["绑定管理", "OAuth2适配器", "会话管理", "令牌服务", "SSO服务", "审计日志", "认证服务"], "依赖": ["OAuth沙箱", "Redis", "DB", "API网关"] } } ], "测试覆盖分析": { "覆盖项": [ "账号密码登录:成功/失败计数/验证码/锁定/解锁/会话固定防护", "可选短信2FA:成功、错误/过期、重发限流与幂等", "OAuth2授权码:首次绑定、取消授权、解绑、撤销授权、回调延迟、网络超时重试幂等", "会话与令牌:Access 15分钟、Refresh 7天、刷新并发幂等、黑名单、Remember Me 7天", "SSO单点登录:新登录踢出旧会话(含OAuth登录触发)", "安全:CSRF防护、Cookie安全属性、设备/IP识别与异地短信提醒策略", "日志与审计:成功/失败原因(密码错误、验证码、授权取消、登出、SSO等)", "边界与鲁棒性:服务器时钟±2分钟、第三方回调延迟、网络抖动重试", "退出与清理:全端失效、Refresh作废、Remember Me清理、数据回滚" ], "需求点到用例映射简述": { "Bcrypt/失败策略/验证码/锁定": ["UA-REG-001","UA-REG-002","UA-REG-003","UA-REG-004","UA-REG-005","UA-REG-027"], "短信二次验证": ["UA-REG-006","UA-REG-007","UA-REG-008"], "OAuth2与绑定/解绑/撤销": ["UA-REG-009","UA-REG-010","UA-REG-011","UA-REG-012","UA-REG-013","UA-REG-031","UA-REG-033"], "会话与Token(Access/Refresh/RememberMe)": ["UA-REG-014","UA-REG-015","UA-REG-017","UA-REG-022","UA-REG-029","UA-REG-032"], "SSO仅一处在线": ["UA-REG-016","UA-REG-033"], "CSRF防护": ["UA-REG-020","UA-REG-021","UA-REG-034"], "设备/IP识别与异地短信提醒": ["UA-REG-019","UA-REG-035"], "审计日志": ["UA-REG-001","UA-REG-024","UA-REG-025","UA-REG-026","UA-REG-029","UA-REG-033"], "退出全端失效": ["UA-REG-018","UA-REG-029","UA-REG-036"], "边界条件(时钟/回调延迟/网络抖动)": ["UA-REG-005","UA-REG-010","UA-REG-015","UA-REG-022","UA-REG-030","UA-REG-031","UA-REG-008"] } }, "执行建议": { "回归范围建议": [ "认证核心链路(账号密码/2FA/OAuth)", "令牌生命周期(签发/刷新/过期/作废/黑名单)", "SSO单点登录与全端退出", "CSRF与安全属性(Cookie/Session)", "设备/IP识别与通知", "审计日志完整性与字段正确性", "边界与异常(时钟漂移、回调延迟、网络重试)", "数据清理与会话失效验证" ], "执行顺序": [ "环境与依赖健康检查(NTP、Redis、短信/OAuth沙箱)", "账号密码基础成功流(UA-REG-001)", "失败计数/验证码/锁定相关(UA-REG-002005, 027)", "开启并验证2FA全流程(UA-REG-006008)", "OAuth全链路(首次绑定/取消/解绑/撤销/延迟/重试)(UA-REG-009013, 010, 031)", "令牌生命周期与并发刷新(UA-REG-014, 015, 022, 030)", "SSO与Remember Me(UA-REG-016, 017, 033, 032)", "CSRF与安全校验(UA-REG-020, 021, 034)", "设备/IP识别与提醒(UA-REG-019, 035)", "审计日志抽检(UA-REG-024026, 029, 033)", "退出与全端失效(UA-REG-018, 029)", "数据清理与复核(UA-REG-036)" ], "注意事项": [ "严控测试账号与短信/验证码信息脱敏展示,不含真实用户数据", "时间相关用例优先使用加速或可控时间模拟,避免长时间等待", "并发/重试类用例注意幂等与竞态观测(日志与状态唯一性)", "跨端/跨设备用例需区分设备指纹与IP地域,避免误报", "执行完毕务必执行数据清理用例 UA-REG-036" ] }, "变更项-受影响用例": { "Bcrypt校验与失败策略(5次失败触发验证码、账户锁定10分钟)": ["UA-REG-001","UA-REG-002","UA-REG-003","UA-REG-004","UA-REG-005","UA-REG-027","UA-REG-024","UA-REG-025"], "可选短信二次验证": ["UA-REG-006","UA-REG-007","UA-REG-008","UA-REG-019"], "第三方OAuth2(授权码模式、绑定/解绑/撤销)": ["UA-REG-009","UA-REG-010","UA-REG-011","UA-REG-012","UA-REG-013","UA-REG-031","UA-REG-033","UA-REG-026"], "会话与Token(Access 15min/Refresh 7天/黑名单/Remember Me 7天)": ["UA-REG-014","UA-REG-015","UA-REG-017","UA-REG-022","UA-REG-029","UA-REG-032","UA-REG-030"], "单点登录(仅一处在线)": ["UA-REG-016","UA-REG-033","UA-REG-018"], "安全(CSRF、防护、Cookie属性)": ["UA-REG-020","UA-REG-021","UA-REG-034","UA-REG-032","UA-REG-023"], "设备/IP识别与异地短信提醒": ["UA-REG-019","UA-REG-035"], "退出全端失效(刷新令牌作废)": ["UA-REG-018","UA-REG-029","UA-REG-036"], "边界:时钟±2分钟、回调延迟、授权取消、网络抖动重试": ["UA-REG-005","UA-REG-010","UA-REG-011","UA-REG-015","UA-REG-022","UA-REG-030","UA-REG-031","UA-REG-008"] } }

示例详情

解决的问题

将“功能需求”一键转化为可直接执行的测试用例包,覆盖主流程、异常与边界场景,并给出优先级与执行顺序建议;统一用例格式与口径,降低漏测风险,提升评审与回归效率,帮助团队更快、更稳地完成发布与验收。

适用用户

QA测试工程师

将零散需求快速转为执行级用例,覆盖主干与异常场景;生成边界值与测试数据建议,形成可直接落地的测试清单。

测试经理/QA主管

按风险与业务价值自动分级用例,规划执行顺序与人力分配;输出覆盖分析报告,支撑里程碑评审与质量看板管理。

产品经理

评审前一键生成用例草案,检视需求完备性与验收标准;提前发现缺口并与研发对齐范围,减少后期返工。

特征总结

一键生成标准化测试用例,覆盖主流程、异常分支与边界场景,大幅缩短从需求到用例准备时间。
自动拆解业务需求,识别关键路径与高风险点,给出清晰优先级建议与执行顺序。
内置场景库与步骤模板,轻松套用并按需调整,快速适配Web、移动端与服务端功能。
智能补充遗漏场景与边界值,自动润色用例描述,避免模糊表述,确保可执行可复用。
支持多测试类型切换,如回归、集成、系统等,一键调整用例粒度与覆盖深度。
自动生成测试数据与前置条件建议,清晰呈现预期结果,降低沟通成本与执行偏差。
输出结构清晰的用例清单与覆盖分析,直观展示需求覆盖度与空白区域,便于评审。
按项目优先级与迭代节奏分批导出,辅助制定测试计划与资源安排,提升交付确定性。
结合特殊要求快速定制,如性能阈值、合规校验与恢复场景,满足行业审计需要。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥20.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 637 tokens
- 4 个可调节参数
{ 功能描述 } { 测试类型 } { 优先级 } { 特殊要求 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
使用提示词兑换券,低至 ¥ 9.9
了解兑换券 →
限时半价

不要错过!

半价获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59