建议
写作建议:让 AI 更准确理解你的需求
产品名称:Treeify
版本:0.2-beta
日期:2025.07.10
清晰、细致、结构化的需求描述,会显著提升 Treeify 生成 测试对象 与 测试场景 的质量与覆盖率。你可以参考下面的写作原则与示例,优化你的输入内容。
✅ 1. 描述要具体、可执行
不要只写“能做什么”,而要写清楚:做什么 / 怎么做 / 失败会怎样 / 有哪些限制。
不推荐:
用户可以登录。
推荐:
- 用户可以使用已注册的邮箱与密码登录。
- 登录失败时,显示错误提示:“邮箱或密码错误”。
- 连续 5 次登录失败后锁定账号。
✅ 2. 补充前置条件与结果
原因:前置条件与结果能帮助 Treeify 更准确识别测试边界与预期结果。
示例:
- 当用户存在未支付账单时,不允许发起新的购买。
- 支付成功后,跳转到“订单确认”页面。
✅ 3. 写清角色差异与输入变体
原因:不同角色权限、不同输入值、不同状态分支,往往意味着不同的测试路径与覆盖点。
示例:
- 管理员用户可以访问“用户管理”面板。
- 普通用户尝试访问同一入口时,应返回“无权限访问”的错误提示。
✅ 4. 补充 UI 触发点与交互细节
原因:UI 触发与交互细节是生成界面类/交互类测试用例的重要依据。
示例:
- 点击“下载”按钮后,应在新的浏览器标签页中打开文件。
- 鼠标悬停在商品图片上时,展示放大预览效果。
✅ 5. 一行只写一个需求点
原因:拆分后的需求更便于 AI 精准定位每条意图并逐条分析。
示例:
- 仅当必填项全部填写完成后,用户才可以提交表单。
- 任一必填项为空时,对该字段显示红色边框,并展示行内提示信息。
- 提交成功后,展示 Toast 提示:“表单提交成功”。
Tip:善用富文本编辑能力
建议你在输入时使用富文本编辑器的能力来提升结构表达:
- 用标题(Headings)组织内容
- 用加粗(Bold)强调关键规则
- 用列表(Bullet / Numbered List)拆分条目与分支
🚫 常见坑位(建议避免)
- 过于笼统(例如:“用户可以更新信息”)
- 一行混写多个行为,导致边界不清
- 描述实现细节而不是“行为与结果”(例如写数据库怎么存,而没写用户看到什么)
- 缺少关键条件、角色差异、异常结果等信息
📋 完整示例(中文)
结算与下单 —— 需求规格说明(示例)
1. 概述
支持已登录用户从购物车发起下单流程:选择配送与支付方式、复核金额汇总(商品金额、税费、运费、优惠)、并在下单成功后获得订单确认信息。
业务目标
- 提升结算成功率
- 提供清晰的价格与税费展示
- 支持优惠码与礼品卡
- 生成可审计、可合规追溯的订单记录
范围内(In scope)
- 购物车复核、收货地址、配送方式选择
- 支付方式选择(信用卡、PayPal)
- 优惠/折扣、税费计算
- 订单确认(确认页 + 邮件通知)
范围外(Out of scope)
- 订阅类商品
- 门店积分返还/储值退款
- 会员积分获取(本需求不包含)
2. 参与方与角色
- 客户(ROLE_CUSTOMER):只能结算并下单自己的购物车
- 客服(ROLE_SUPPORT):可以查看订单,但不能代客下单
- 系统:支付网关、税费服务、邮件服务
访问控制
- 结算相关接口必须是 已登录用户 且拥有 ROLE_CUSTOMER
- 管理员/客服在结算过程中不得修改客户购物车内容
3. 名词定义
- 购物车(Cart):用户在下单前选中的商品集合
- 订单(Order):支付授权成功后创建的不可变记录
- 应付总额(Grand Total):小计 + 运费 + 税费 − 折扣
4. 前置条件与假设
- 用户已登录
- 购物车内至少有 1 件有库存的商品
- 默认“账单地址 = 收货地址”,除非用户另行填写
- 支付网关可用;若调用失败,按指数退避策略最多重试 3 次
5. 用户故事
US-1:查看购物车
- 作为客户,我可以查看商品明细(名称、数量、价格),输入优惠码,并看到金额汇总的实时更新。
US-2:填写配送信息
- 作为客户,我可以新增/选择收货地址,并选择配送方式(标准/加急)。
US-3:选择支付方式
- 作为客户,我可以使用信用卡(Visa/Mastercard)或 PayPal 支付。
US-4:提交订单
- 作为客户,我可以确认订单并在成功后看到确认页,同时收到包含订单信息的邮件。
6. 主流程
6.1 结算流程(Happy Path)
- 客户打开 /checkout 页面。
- 系统加载购物车、默认地址与可选配送方式。
- 客户(可选)填写并应用优惠码。
- 客户确认收货地址并选择配送方式。
- 客户选择支付方式:
- 信用卡:填写卡信息(脱敏显示),账单地址默认自动填充。
- PayPal:跳转到 PayPal 完成授权后,携带 token 返回。
- 系统计算 应付总额(Grand Total)(税费由外部税费服务计算)。
- 客户点击 提交订单(Place Order)。
- 系统完成支付授权、创建订单、扣减库存、清空购物车。
- 系统展示 订单确认 页面并发送确认邮件。
6.2 替代/边界流程
- A1:优惠码无效/过期 → 展示错误提示,金额保持不变。
- A2:该地址无可用配送方式 → 给出引导提示,并禁止继续下一步。
- A3:支付授权“软拒绝”(soft decline)→ 允许重试或更换支付方式。
- A4:并发问题:提交时商品刚好售罄 → 展示缺货提示并调整购物车。
7. 输入/输出(字段级)
7.1 输入(表单与接口)
- 优惠码(Promo Code)(字符串,可选):
^[A-Z0-9]{5,10}$- 收货地址(Shipping Address)(对象):姓名、地址1、地址2(可选)、城市、州/省、邮编(按国家校验)、国家
- 配送方式(Shipping Method)(枚举):
STANDARD、EXPRESS- 支付方式(Payment Method)(枚举):
CARD、PAYPAL- 信用卡信息(仅当 CARD):
- card_number:token 化,Luhn 校验通过
- exp_month:1–12
- exp_year:≥ 当前年份
- cvv:3–4 位数字
- PayPal Token(仅当 PAYPAL):非空字符串,10 分钟过期
7.2 输出
- 订单确认信息:order_id、items[]、shipping、tax、discounts[]、totals(subtotal、shipping、tax、grand_total)、payment_status
- 错误信息:错误码 + 错误文案(见 §10)
8. 校验规则
- 必填字段必须存在且非空。
- 邮编必须符合所选国家的格式。
- 同一时间只允许使用一个有效优惠码。
- 若支付方式为
PAYPAL,token 必须有效(status=APPROVED)。- 若支付方式为
CARD,需通过 Luhn 校验、未过期、CVV 格式正确。
9. 业务规则
- 税费由外部税费服务根据地址与商品信息计算。
- 折扣支持 百分比 或 固定金额;折扣后金额不得小于 0。
- 运费:标准 $5,加急 $15;折扣后小计 > $100 时免运费。
- 仅在支付授权成功后扣减库存。
10. 异常与错误处理
- E001 INVALID_PROMO: “优惠码无效或已过期。”
- E002 SHIPPING_UNAVAILABLE: “该地址暂无可用配送方式。”
- E003 PAYMENT_DECLINED: “支付授权失败,请重试或更换支付方式。”
- E004 OUT_OF_STOCK: “部分商品已售罄。”
- E005 TAX_SERVICE_UNAVAILABLE: “暂时无法计算税费,请稍后再试。”
错误呈现方式:
- 页面 Toast + 字段级行内提示(如适用)
- API 返回
error.code、error.message
11. UI 需求
- 结算流程为 3 步向导:购物车 → 配送 → 支付 → 复核并下单
- 所有校验通过前,禁用 提交订单(Place Order) 按钮
- 信用卡字段必须脱敏;任何场景下不得展示完整卡号(PAN)
- 每次输入变化后,都要展示价格拆分与更新后的汇总金额
12. API 协议(节选)
POST
/api/checkout/apply-promo请求:
{ "promo_code": "SAVE10" }响应:
{ "valid": true, "discount_amount": 10.00, "new_totals": { "subtotal": 90.00, "tax": 8.10, "grand_total": 93.10 } }POST
/api/checkout/place-order请求:
{ "shipping_address": { "line1": "123 King St", "city": "Singapore", "postal_code": "049483", "country": "SG" }, "shipping_method": "STANDARD", "payment_method": "CARD", "card": { "token": "tok_abc", "exp_month": 12, "exp_year": 2030, "cvv": "123" } }成功响应:
{ "order_id": "ORD-2025-000123", "payment_status": "AUTHORIZED", "totals": { "subtotal": 90.00, "shipping": 5.00, "tax": 8.10, "grand_total": 103.10 } }
13. 非功能需求
- 性能:下单接口平均 ≤ 2s;P95 ≤ 4s;支持 500 并发结算
- 可用性:结算 API 月可用性 99.9%
- 安全:对齐 PCI-DSS;信用卡 token 化;TLS 1.2+
- 兼容性:Chrome/Firefox/Safari/Edge(最近 2 个版本);移动端 Safari/Chrome 最新版
了解更多
需要排版参考?请查看:Formatting Tips