15. 表单类功能怎么测试最全面
表单是业务系统最常见的功能类型。
登录、注册、新增、编辑、搜索、筛选、导入、导出,几乎都是表单操作。
一、表单测试的核心关注点
表单测试要覆盖:
- 字段校验;
- 提交逻辑;
- 数据存储;
- 状态变化;
- 异常处理;
- 交互细节;
- 权限控制。
只测能不能提交成功是不够的。
二、字段校验要覆盖完整
每个字段都要测试校验规则。
常见校验包括:
- 必填项为空;
- 格式错误;
- 长度超限;
- 范围超限;
- 类型错误;
- 特殊字符;
- 重复值;
- 关联字段一致性。
比如用户注册表单:
- 用户名:必填、长度限制、重复检测;
- 手机号:必填、格式校验、重复检测;
- 邮箱:格式校验、重复检测;
- 密码:必填、长度限制、复杂度校验;
- 角色:必填、可选范围。
三、提交逻辑要验证
表单提交不只是点按钮,要验证:
- 提交前校验是否执行;
- 提交时按钮状态变化;
- 提交成功后提示和跳转;
- 提交失败后提示和重试;
- 重复提交是否被拦截;
- 提交中断是否可恢复。
比如提交订单:
- 点击提交前校验库存和优惠券;
- 提交按钮点击后变为不可点击或显示加载;
- 成功后跳转到订单详情或支付页;
- 失败后提示具体原因并可重新提交;
- 快速多次点击只生成一个订单。
四、数据存储要验证
表单提交后要验证数据库:
- 数据是否正确新增或更新;
- 必填字段是否都有值;
- 可选字段是否正确处理空值;
- 时间戳是否正确;
- 创建人是否正确;
- 关联表数据是否正确。
比如新增商品:
- 商品表是否新增记录;
- 商品名称、价格、库存是否正确;
- 创建时间是否正确;
- 商品分类关联是否正确。
五、状态变化要验证
有些表单操作会改变状态。
要验证:
- 状态字段是否正确更新;
- 状态流转是否符合规则;
- 状态不允许时是否拦截;
- 状态变更后功能是否可用。
比如编辑订单:
- 待支付状态是否可修改地址;
- 已支付状态是否不可修改地址;
- 修改成功后订单状态是否保持。
六、异常处理要覆盖
表单异常场景要测试:
- 网络中断;
- 服务器异常;
- 数据库异常;
- 接口超时;
- 数据冲突;
- 权限不足;
- 数据不存在。
比如保存商品:
- 网络中断后是否有提示;
- 服务器异常后是否可重试;
- 重复保存是否有处理。
七、交互细节要测试
表单交互细节影响用户体验。
要测试:
- 必填项是否有标记;
- 格式错误是否有提示;
- 校验时机是否合理;
- 提示文案是否清晰;
- 默认值是否正确;
- 联动字段是否正确更新;
- 重置或清空是否正确。
比如选择商品分类:
- 选择一级分类后二级分类是否联动;
- 清空一级分类后二级分类是否清空。
八、权限控制要验证
表单权限要测试:
- 不同角色是否能看到表单;
- 不同角色是否能提交;
- 不同角色能操作的字段是否不同;
- 数据权限是否正确过滤。
比如编辑用户:
- 管理员可编辑所有字段;
- 普通管理员只能编辑部分字段;
- 普通用户不能编辑。
九、面试回答模板
可以这样回答:
表单测试我会从字段校验、提交逻辑、数据存储、状态变化、异常处理、交互细节和权限控制几个方面展开。字段校验覆盖必填为空、格式错误、长度超限、范围超限、类型错误、特殊字符、重复值、关联一致性;提交逻辑验证校验执行、按钮状态、成功提示跳转、失败提示重试、重复提交拦截;数据存储验证数据库新增更新、字段值正确、时间戳和创建人、关联表数据;状态变化验证状态字段更新、流转规则、状态不允许拦截;异常处理测网络中断、服务器异常、接口超时、数据冲突;交互细节测必填标记、格式提示、校验时机、联动更新;权限控制测不同角色可见可操作范围。
这个回答能体现你有完整的表单测试思路。
十、下一步建议
建议你把一个熟悉的表单按上面维度重新整理:
- 字段校验清单;
- 提交逻辑验证点;
- 数据存储验证点;
- 状态变化验证点;
- 异常处理场景;
- 交互细节验证点;
- 权限控制验证点。
