把功能要求写成验收项,核心做法是:每一条都写成“输入—操作—可观察结果”的句式,并标明不通过时的表现。例如“用户提交手机号后,页面显示‘提交成功’且后台新增一条记录;若手机号为空,显示‘请输入手机号’且不新增记录”。这样开发、测试和验收三方对同一句话的理解一致,避免“能用就行”这类无法判定的描述。
功能要求回答“系统要做什么”,验收项回答“做到什么程度算完成”。前者可以写“支持文章发布”,后者必须写成“编辑填写标题和正文后点击发布,列表页出现该文章,标题和正文与输入一致”。
时间和人手有限时,不要给每个功能都写长篇用例,而是优先覆盖三类:涉及钱和数据的流程、涉及外部接口的流程、用户最容易投诉的流程。其余功能可以只写一条主路径验收项。
缺少第四项时,测试人员容易把“报错但数据写入了”当成小问题放过,导致上线后才发现数据异常。
不合格写法:“搜索功能要准确。”合格写法:“在搜索框输入‘绍兴网站开发’,点击搜索,结果列表只显示标题或正文包含该词的记录;输入不存在的词,显示‘暂无结果’,不显示全部数据。”适用条件是关键词搜索场景;判断结果是:前者无法判定通过与否,后者任何人执行都能得出一致结论。
如果功能涉及第三方服务,例如短信或地图,验收项要写成“接口返回成功时页面提示已发送;接口返回失败时提示‘发送失败,请重试’,且不扣减次数”。不要写“短信要能发出去”,因为发送成功与否依赖外部条件,必须区分“我方系统行为”和“外部返回结果”。
先写阻塞开发的验收项:数据库字段、接口入参出参、页面跳转关系。这三类不确定,开发和测试都会返工。再写影响上线的验收项:注册登录、下单支付、内容发布、权限控制。最后写体验类验收项:文案、间距、动画。体验类可以合并成一条“页面无错别字、无横向滚动条”,不必逐页拆开。
每写完一条,让不参与开发的人读一遍,如果对方能说出“怎么操作、看到什么算通过”,这条就算合格;如果对方反问“这个怎么测”,就说明还需要补充具体现象。
下一步:打开当前的功能清单,把其中无法判定通过与否的句子挑出来,按“前置条件—操作—预期结果—不通过表现”改写成一条验收项,再交给开发确认。确认一条再改下一条,不要一次性重写全部文档。