Skip to content

测试文档索引

本目录存放筷字输入法 v4 版本的单元测试文档。每个测试文档对应一个开发计划,与计划同名,由软件验收员负责编写、维护和验证。测试文档在开发计划验收时同步更新。


核心原则

  1. 只有软件验收员才能编写和更新单元测试用例:软件开发员负责实现功能代码,软件验收员负责编写测试用例、验证实现是否符合设计、确保测试用例真正通过。这种职责分离确保测试从独立视角检验代码质量,避免开发员「自产自销」导致测试流于形式。

  2. 测试用例必须真正通过:每个测试用例的执行结果必须可验证、可复现。如果测试用例无法通过,说明功能实现存在缺陷或测试设计本身存在问题,必须修正后才能标记为通过。纸面上「写完」测试用例不等于完成,运行通过才算数。

  3. 测试与开发计划绑定:测试文档对应开发计划而非设计文档。开发计划中的任务除了相应的代码和文档等已编写外,相关的单元测试也必须全部测试通过才能标记为已完成。测试文档在开发计划验收时同步更新。


文档列表

测试文档在对应开发计划创建后由验收员编写,以下为待创建的开发计划及对应的测试文档占位。

开发计划测试文档测试范围状态
(待创建)(与计划同名)键盘状态机、Intent 处理、状态转换(对应设计 100)📋待编写
(待创建)(与计划同名)ImeEngine API、ImeConfig、ImeOutput、ImeDictProvider(对应设计 160)📋待编写
(待创建)(与计划同名)InputList 不可变操作、游标、撤销 / 重做(对应设计 200)📋待编写
(待创建)(与计划同名)Room DAO、ImeDictProvider 实现、字典查询、升级迁移(对应设计 300)📋待编写
(待创建)(与计划同名)ConfigRepository、ImeConfig 运行时优先、DataStore(对应设计 500)📋待编写
(待创建)(与计划同名)ClipboardProvider、FavoritesRepository、Feature 裁剪(对应设计 600)📋待编写
(待创建)(与计划同名)UserDataService、JSON 序列化、替换 / 合并、SAF(对应设计 800)📋待编写
(待创建)(与计划同名)ImeLog 分级、持久化、崩溃拦截(对应设计 900)📋待编写
(待创建)(与计划同名)InputActionPlayer、脚本编译、回放(对应设计 930)📋待编写

测试文档编写规范

详见 000-test-writing-guide.md


测试状态说明

状态说明
📋待编写测试文档尚未创建,测试用例尚未编写
🔄编写中验收员正在编写测试用例
✅已通过所有测试用例已编写完成,且在当前代码上全部执行通过
❌未通过部分测试用例执行失败,需开发员修正代码或验收员修正测试
⏸️暂停测试编写或执行暂停,需说明原因

角色与权限

角色可执行的操作不可执行的操作
软件验收员编写和更新测试用例文档、执行测试、记录测试结果、标记测试状态修改功能实现代码
软件开发员根据测试失败结果修正功能代码修改测试用例文档(只能提交缺陷反馈)
设计师更新测试文档索引、调整测试范围修改测试用例的具体内容和预期结果

测试文件组织

单元测试代码与测试文档紧密对应,测试代码按模块和功能组织在源码目录中:

code/
├── ime-engine/src/test/                    ← :ime-engine 库单元测试
│   └── org/crazydan/studio/app/ime/kuaizi/engine/
│       ├── api/                            ← 引擎公开 API 测试
│       │   ├── ImeEngineTest.kt
│       │   ├── ImeConfigTest.kt
│       │   └── ImeOutputTest.kt
│       ├── domain/                         ← 领域逻辑测试
│       │   ├── KeyboardStateMachineTest.kt
│       │   ├── InputListTest.kt
│       │   └── CandidateListPagerTest.kt
│       └── dict/                           ← 字典接口测试
│           └── ImeInMemoryDictProviderTest.kt

├── ime-ui/src/test/                        ← :ime-ui 库单元测试
│   └── org/crazydan/studio/app/ime/kuaizi/ui/
│       └── theme/                          ← 主题系统测试
│           └── KeyboardThemeTest.kt

└── app/src/test/                           ← :app 模块单元测试
    └── org/crazydan/studio/app/ime/kuaizi/
        ├── config/                         ← 配置系统测试
        │   └── ConfigRepositoryTest.kt
        ├── clipboard/                      ← 剪贴板测试
        ├── favorite/                       ← 收藏测试
        ├── userdata/                       ← 用户数据导入导出测试
        └── logging/                        ← 日志系统测试

注意:截图对比测试(Paparazzi)和 UI 测试工具相关代码不属于单元测试范畴,其组织方式见设计文档 910。