【每日一题】Web 后台的「Excel 批量导入」功能怎么测(附参考答案)

题目:运营后台新增「批量导入门店信息」:下载模板 → 上传 .xlsx → 校验 → 入库,超过 5000 行走异步任务。请你把这个功能的测试点列全,并说说优先级怎么排。

难度:中级
题型:笔试(简答题)

:point_right:参考答案/答题要点:

  1. 文件层(最容易漏的一类):
    • 格式与伪装:.xlsx / .xls / .csv 是否分别支持;把 .txt 改名成 .xlsx 上传(校验要看文件头魔数,不能只看扩展名);
    • 空文件、只有表头、一行数据、刚好 5000 行、5001 行、10 万行、文件体积上限;
    • 模板版本:旧模板列名/列顺序不同、缺列、多列、列名带空格或改名;
    • Excel 里的脏结构:合并单元格、隐藏行列、公式(VLOOKUP 结果)、批注、图片、多个 sheet(读哪个 sheet,默认第一个还是名字匹配的)。
    • 编码:CSV 用 GBK 导出上传后中文乱码。
  2. 数据层(按字段用等价类 + 边界值逐列过):
    • 必填为空、类型错(手机号填中文/科学计数法 1.23E+10)、超长、前后空格、全角半角、日期格式与 Excel 序列值;
    • 枚举值不在字典内、省市编码不匹配(跨字段校验);
    • 唯一性:文件内重复行、与库里已有数据冲突;外键不存在(归属大区填了个不存在的 ID);
    • 注入类:单元格里写 =cmd|...(公式注入)、<script>、SQL 片段、超长字符串撑爆日志。
  3. 流程与交互:
    • 同步/异步阈值切换(5000 行以内同步返回,超过走任务);进度提示、能否关闭页面后继续、任务中心可查;
    • 校验策略要问清需求:全量成功才入库(事务回滚)还是部分成功的?失败明细能否下载并带行号原因?
    • 重复点击导入、导入中再次上传同一文件(幂等)、导入中途取消;
    • 结果反馈:成功 N 条 / 失败 M 条,数字与明细条数是否一致(这条最常被开发写错)。
  4. 结果正确性与影响面:
    • 落库字段逐列核对,特别是被 Excel「吃掉」的精度(18 位数字、以 0 开头的编码);
    • 关联影响:缓存/ES 索引同步、下游消息、门店变更是否触发既有审批或通知;
    • 导入成功后再导出,内容应一致(往返校验);
    • 操作审计日志:谁、什么时间、导入多少条、来源文件。
  5. 权限与安全:只能导入自己有权的门店范围(越权导入别的区域数据);无权限账号入口是否隐藏且接口侧也拦住。
  6. 异常与稳定性:导入过程中服务重启/网络中断(任务是否可续跑或明确失败,不能出现半批数据);上传大文件的超时;并发导入互相覆盖。
  7. 性能:5000 / 5 万行分别的耗时与内存,是否 OOM;异步任务的积压与消费速率。
  8. 优先级口径(面试官想听这句):先保「校验规则与落库正确性」和「部分成功/回滚策略」,因为直接关系业务数据;再次是权限与越权;最后才是大文件性能。需求里「部分成功怎么处理」如果没写,一定要在评审时就追问,这是最容易出线上事故的一处。