# 交付自检表

用于期末作品交付前的最后一遍检查。逐条走，每条填结果，不要凭印象打勾。

---

## 一、版本号与署名

| 检查项 | 怎么查 | 结果 |
| --- | --- | --- |
| 程序里的版本号与说明文件里的一致 | 两处并排看一眼 | |
| 版本号符合三段格式 | 例如 1.2.0，不是 v1 或者"最终版" | |
| 有作者、班级、日期 | 程序界面与说明文件两处都要有 | |

版本号三段的含义：

| 段 | 什么时候加一 | 例子 |
| --- | --- | --- |
| 修订号（第三段） | 修了缺陷，用法没变 | 1.2.0 → 1.2.1 |
| 次版本号（第二段） | 加了功能，原来的用法还能用 | 1.2.1 → 1.3.0 |
| 主版本号（第一段） | 改了原来的用法，别人要跟着改 | 1.3.0 → 2.0.0 |

第一段是 0 表示还不稳定，用法随时可能变。作品交出去时应当是 1.0.0。

---

## 二、边界情况

七类各试一次，写清实际出现的结果。

| 类别 | 怎么试 | 应该出现什么 | 实际出现什么 |
| --- | --- | --- | --- |
| 空 | 什么都不填直接提交 | 提示要填，不新增记录 | |
| 一 | 只留一条记录 | 文字通顺，没有多余的连接词 | |
| 多 | 录入三十条以上 | 显示正常，不卡 | |
| 边界值 | 填 0；填上限；填上限加一 | 0 与上限接受，超出的拒绝 | |
| 类型不对 | 数字栏填汉字 | 提示格式不对，不出现 NaN | |
| 特殊字符 | 填引号、逗号、空格、全角字符 | 正常存取，不串行 | |
| 时序 | 中途关掉；连点两次同一个按钮 | 不重复执行，不丢数据 | |

---

## 三、验收用例

每条写成"在什么情况下，做什么操作，应该出现什么结果"，读完能用是或否回答。

不能用的写法与可用的写法对照：

| 不能用 | 可以用 |
| --- | --- |
| 界面友好 | 打开程序不做任何操作时，界面上能看到下一步该点哪个按钮 |
| 数据统计准确 | 录入说明文件示例中的三条数据，合计显示 75 |
| 运行稳定不闪退 | 连续执行同一操作十次，十次结果相同，程序没有退出 |
| 兼容性良好 | 在另一台从未装过本程序的计算机上打开，功能与本机一致 |
| 用户体验流畅 | 点击查询后三秒内出现结果 |

自查办法：把验收标准逐条读一遍，凡是出现"友好、流畅、合理、良好、准确"这类词而没有具体数值或具体操作的，都要改写。

---

## 四、交付前清理

三类东西都要清掉，用全文搜索比用眼睛找可靠。

| 类别 | 搜什么 | 结果 |
| --- | --- | --- |
| 占位内容 | 张三、李四、138、test、example、示例、Lorem | |
| 调试残留 | print、console.log、TODO、临时、注释掉的旧代码 | |
| 未经要求的功能 | 对照功能清单逐个数，多出来的一律删掉 | |

未经要求的功能是交付物里唯一没有验收标准覆盖的部分，出了问题不知道该怎么修，也不知道该不该修。

---

## 五、回归检查

改动之后，把之前验过的用例照原样再走一遍。

| 本次改了什么 | 重跑了哪几条用例 | 结果 |
| --- | --- | --- |
| | | |
| | | |

只改一处也要重跑。回归多数发生在你以为无关的地方：共用的一段代码、共用的数据文件、共用的一个样式类。

---

## 六、备份

三份副本、两种介质、一份不在身边。

| 检查项 | 怎么查 | 结果 |
| --- | --- | --- |
| 一共有三份 | 原件加两份备份 | |
| 至少两种介质 | 例如本机加移动硬盘，或本机加网盘 | |
| 至少一份不在身边 | 网盘、邮箱、或者放在别处的移动硬盘 | |
| 做过一次恢复演练 | 从备份里取出来打开一次，确认能用 | |

最后一条最常被跳过，也是备份失效最常见的原因。没有验证过的备份不算备份。

---

## 交付物清单

| 交付物 | 有没有 |
| --- | --- |
| 作品本体（文件夹或可执行文件） | |
| 数据文件 | |
| 说明文件（用途、用法、运行环境、数据位置、已知问题） | |
| 本自检表（填完的） | |
| 演示脚本（场景、主线、取舍三段） | |
