Files
keyboard/docs/testing-checklist.md
2026-03-02 09:19:06 +08:00

9.0 KiB
Raw Blame History

键盘多语言/多布局功能测试清单

测试前准备

1. 在 Xcode 中添加新文件

按照 xcode-file-addition-guide.md 的指引,将以下文件添加到工程:

  • Shared/Resource/kb_input_profiles.json
  • Shared/KBInputProfileManager.h
  • Shared/KBInputProfileManager.m
  • CustomKeyboard/Manager/KBKeyboardLayoutResolver.h
  • CustomKeyboard/Manager/KBKeyboardLayoutResolver.m

2. 编译验证

  • 主 App 编译通过(无错误)
  • 扩展编译通过(无错误)

功能测试

测试 1: 主 App 语言选择界面

1.1 进入语言选择页

  • 打开主 App
  • 进入"个人资料"页面
  • 看到 "Input Language" 行
  • 点击进入语言选择页

1.2 单布局语言测试(英语、葡萄牙语、印尼语)

测试步骤:

  1. 选择"English"
  2. 检查底部是否显示 Confirm 按钮
  3. 点击语言行,确认不会立即触发切换
  4. 点击 Confirm 按钮

预期结果:

  • 底部显示 Confirm 按钮
  • 点击语言行仅更新选中态(显示 ✓)
  • 点击 Confirm 后才触发切换
  • 显示切换成功提示
  • 返回个人资料页,"Input Language" 显示 "English"

重复测试:

  • 葡萄牙语Português
  • 印尼语Bahasa Indonesia

1.3 多布局语言测试(西班牙语)

测试步骤:

  1. 选择"Español"
  2. 检查底部 Confirm 按钮是否隐藏
  3. 确认自动进入 "Choose Layout" 页面
  4. 看到三个布局选项QWERTY / AZERTY / QWERTZ
  5. 选择 "AZERTY"
  6. 点击 Confirm 按钮

预期结果:

  • 语言页底部 Confirm 按钮隐藏
  • 自动进入布局选择页
  • 布局页显示三个选项
  • 布局页底部显示 Confirm 按钮
  • 点击布局行仅更新选中态
  • 点击 Confirm 后才触发切换
  • 返回个人资料页,显示 "Español · AZERTY"

重复测试其他布局:

  • QWERTY
  • QWERTZ

1.4 繁体中文多布局测试

测试步骤:

  1. 选择"繁體中文(台灣)"
  2. 进入布局选择页
  3. 看到三个布局选项:
    • 拼音(繁體)
    • 注音全鍵盤
    • 注音標準
  4. 分别测试每个布局

预期结果:

  • 拼音(繁體)选择成功
  • 注音全鍵盤选择成功
  • 注音標準选择成功
  • 每次切换后返回个人资料页显示正确

测试 2: App Group 数据写入验证

使用以下代码在主 App 中验证数据写入:

NSUserDefaults *appGroup = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.loveKey.nyx"];
NSString *profileId = [appGroup stringForKey:@"AppGroup_SelectedKeyboardProfileId"];
NSString *languageCode = [appGroup stringForKey:@"AppGroup_SelectedKeyboardLanguageCode"];
NSString *layoutVariant = [appGroup stringForKey:@"AppGroup_SelectedKeyboardLayoutVariant"];

NSLog(@"ProfileId: %@", profileId);
NSLog(@"LanguageCode: %@", languageCode);
NSLog(@"LayoutVariant: %@", layoutVariant);

验证项:

  • 切换到英语后profileId = "en_US_qwerty"
  • 切换到西班牙语 AZERTY 后profileId = "es_ES_azerty"
  • 切换到繁体拼音后profileId = "zh_Hant_TW_pinyin"
  • 切换到注音全键盘后profileId = "zh_Hant_TW_bopomofo_full"
  • languageCode 和 layoutVariant 也正确写入

测试 3: 扩展侧布局切换

3.1 英语 QWERTY 布局

测试步骤:

  1. 在主 App 中切换到"English"
  2. 打开任意应用(如备忘录)
  3. 调出键盘

预期结果:

  • 键盘第一行显示: q w e r t y u i o p
  • 键盘第二行显示: a s d f g h j k l
  • 键盘第三行显示: z x c v b n m

3.2 西班牙语 AZERTY 布局

测试步骤:

  1. 在主 App 中切换到"Español · AZERTY"
  2. 打开任意应用
  3. 调出键盘

预期结果:

  • 键盘第一行显示: a z e r t y u i o p
  • 键盘第二行显示: q s d f g h j k l m
  • 键盘第三行显示: w x c v b n

3.3 西班牙语 QWERTZ 布局

测试步骤:

  1. 在主 App 中切换到"Español · QWERTZ"
  2. 打开任意应用
  3. 调出键盘

预期结果:

  • 键盘第一行显示: q w e r t z u i o p
  • 键盘第二行显示: a s d f g h j k l
  • 键盘第三行显示: y x c v b n m

3.4 繁体拼音布局

测试步骤:

  1. 在主 App 中切换到"繁體中文(台灣)· 拼音(繁體)"
  2. 打开任意应用
  3. 调出键盘

预期结果:

  • 键盘布局为 QWERTY与英语相同
  • 输入字母时显示联想栏
  • 联想词为繁体中文(如:你好、謝謝)

3.5 繁体注音全键盘布局

测试步骤:

  1. 在主 App 中切换到"繁體中文(台灣)· 注音全鍵盤"
  2. 打开任意应用
  3. 调出键盘

预期结果:

  • 键盘显示注音符号
  • 第一行包含: ㄅ ㄉ ˇ ˋˊ ˙ ㄚ ㄞ ㄢ
  • 第二行包含: ㄆ ㄊ ㄍ ㄐ ㄔ ㄗ ㄧ ㄛ ㄟ ㄣ
  • 第三行包含: ㄇ ㄋ ㄎ ㄑ ㄕ ㄘ ㄨ
  • 输入注音时显示联想栏
  • 联想词为繁体中文

3.6 繁体注音标准布局

测试步骤:

  1. 在主 App 中切换到"繁體中文(台灣)· 注音標準"
  2. 打开任意应用
  3. 调出键盘

预期结果:

  • 键盘显示注音符号(标准排列)
  • 第一行包含: ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ
  • 第二行包含: ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ ㄗ
  • 第三行包含: ㄘ ㄙ ㄧ ㄨ ㄩ ㄚ ㄛ
  • 输入注音时显示联想栏
  • 联想词为繁体中文

测试 4: 联想引擎切换

4.1 拉丁字母联想(英语、西班牙语、葡萄牙语、印尼语)

测试步骤:

  1. 切换到英语
  2. 在键盘上输入 "app"

预期结果:

  • 联想栏显示英文单词app, apple, apply, application
  • 选择联想词后正确插入

4.2 繁体拼音联想

测试步骤:

  1. 切换到"繁體中文(台灣)· 拼音(繁體)"
  2. 在键盘上输入拼音

预期结果:

  • 联想栏显示繁体中文词汇
  • 选择联想词后正确插入繁体字

4.3 注音联想

测试步骤:

  1. 切换到"繁體中文(台灣)· 注音全鍵盤"
  2. 在键盘上输入注音符号

预期结果:

  • 联想栏显示繁体中文词汇
  • 选择联想词后正确插入繁体字

测试 5: 皮肤下发

5.1 繁体中文皮肤

测试步骤:

  1. 切换到"繁體中文(台灣)"
  2. 检查键盘皮肤

预期结果:

  • 皮肤请求已发布(检查日志)
  • 使用 normal_hei_them.zip 皮肤

5.2 其他语言皮肤

测试步骤:

  1. 切换到英语/西班牙语/葡萄牙语/印尼语
  2. 检查键盘皮肤

预期结果:

  • 皮肤请求已发布
  • 使用 normal_them.zip 皮肤

测试 6: 异常情况处理

6.1 空 profileId

测试步骤:

  1. 清空 App Group 中的 profileId
  2. 打开键盘

预期结果:

  • 键盘不崩溃
  • 回退到默认布局(英语 QWERTY

6.2 无效 profileId

测试步骤:

  1. 在 App Group 中写入无效的 profileId如 "invalid_profile"
  2. 打开键盘

预期结果:

  • 键盘不崩溃
  • 回退到默认布局(英语 QWERTY

6.3 布局 JSON 缺失

测试步骤:

  1. 在配置中引用一个不存在的 layoutJsonId
  2. 打开键盘

预期结果:

  • 键盘不崩溃
  • 回退到默认布局letters

测试 7: 切换流畅性

7.1 快速切换语言

测试步骤:

  1. 快速连续切换多个语言
  2. 每次切换后立即打开键盘

预期结果:

  • 每次切换都能正确应用
  • 键盘布局正确
  • 无崩溃或卡顿

7.2 跨应用切换

测试步骤:

  1. 在主 App 中切换语言
  2. 打开备忘录,调出键盘
  3. 返回主 App再次切换语言
  4. 返回备忘录,调出键盘

预期结果:

  • 键盘布局正确更新
  • 联想引擎正确切换

性能测试

1. 启动性能

  • 键盘首次加载时间 < 1 秒
  • 切换布局时无明显延迟

2. 内存占用

  • 键盘内存占用正常(< 50MB
  • 切换布局后无内存泄漏

3. 日志检查

查看控制台日志,确认:

  • 布局切换日志正确输出
  • 联想引擎切换日志正确输出
  • 无异常错误日志

回归测试

1. 原有功能不受影响

  • 数字面板正常工作
  • 符号面板正常工作
  • Emoji 面板正常工作
  • 聊天功能正常工作
  • 设置页面正常工作

2. 原有语言功能

  • 简体中文输入正常
  • 英语输入正常

测试结果汇总

通过的测试

  • 主 App 语言选择界面
  • App Group 数据写入
  • 扩展侧布局切换
  • 联想引擎切换
  • 皮肤下发
  • 异常情况处理
  • 切换流畅性
  • 性能测试
  • 回归测试

发现的问题

记录测试过程中发现的问题:

待优化项

记录需要优化的地方:


测试完成签名

  • 测试人员: _______________
  • 测试日期: _______________
  • 测试结果: ☐ 通过 ☐ 部分通过 ☐ 未通过