9.0 KiB
9.0 KiB
键盘多语言/多布局功能测试清单
测试前准备
1. 在 Xcode 中添加新文件
按照 xcode-file-addition-guide.md 的指引,将以下文件添加到工程:
Shared/Resource/kb_input_profiles.jsonShared/KBInputProfileManager.hShared/KBInputProfileManager.mCustomKeyboard/Manager/KBKeyboardLayoutResolver.hCustomKeyboard/Manager/KBKeyboardLayoutResolver.m
2. 编译验证
- 主 App 编译通过(无错误)
- 扩展编译通过(无错误)
功能测试
测试 1: 主 App 语言选择界面
1.1 进入语言选择页
- 打开主 App
- 进入"个人资料"页面
- 看到 "Input Language" 行
- 点击进入语言选择页
1.2 单布局语言测试(英语、葡萄牙语、印尼语)
测试步骤:
- 选择"English"
- 检查底部是否显示
Confirm按钮 - 点击语言行,确认不会立即触发切换
- 点击
Confirm按钮
预期结果:
- 底部显示
Confirm按钮 - 点击语言行仅更新选中态(显示 ✓)
- 点击
Confirm后才触发切换 - 显示切换成功提示
- 返回个人资料页,"Input Language" 显示 "English"
重复测试:
- 葡萄牙语(Português)
- 印尼语(Bahasa Indonesia)
1.3 多布局语言测试(西班牙语)
测试步骤:
- 选择"Español"
- 检查底部
Confirm按钮是否隐藏 - 确认自动进入 "Choose Layout" 页面
- 看到三个布局选项:QWERTY / AZERTY / QWERTZ
- 选择 "AZERTY"
- 点击
Confirm按钮
预期结果:
- 语言页底部
Confirm按钮隐藏 - 自动进入布局选择页
- 布局页显示三个选项
- 布局页底部显示
Confirm按钮 - 点击布局行仅更新选中态
- 点击
Confirm后才触发切换 - 返回个人资料页,显示 "Español · AZERTY"
重复测试其他布局:
- QWERTY
- QWERTZ
1.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 布局
测试步骤:
- 在主 App 中切换到"English"
- 打开任意应用(如备忘录)
- 调出键盘
预期结果:
- 键盘第一行显示:
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 布局
测试步骤:
- 在主 App 中切换到"Español · AZERTY"
- 打开任意应用
- 调出键盘
预期结果:
- 键盘第一行显示:
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 布局
测试步骤:
- 在主 App 中切换到"Español · QWERTZ"
- 打开任意应用
- 调出键盘
预期结果:
- 键盘第一行显示:
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 繁体拼音布局
测试步骤:
- 在主 App 中切换到"繁體中文(台灣)· 拼音(繁體)"
- 打开任意应用
- 调出键盘
预期结果:
- 键盘布局为 QWERTY(与英语相同)
- 输入字母时显示联想栏
- 联想词为繁体中文(如:你好、謝謝)
3.5 繁体注音全键盘布局
测试步骤:
- 在主 App 中切换到"繁體中文(台灣)· 注音全鍵盤"
- 打开任意应用
- 调出键盘
预期结果:
- 键盘显示注音符号
- 第一行包含: ㄅ ㄉ ˇ ˋ ㄓ ˊ ˙ ㄚ ㄞ ㄢ
- 第二行包含: ㄆ ㄊ ㄍ ㄐ ㄔ ㄗ ㄧ ㄛ ㄟ ㄣ
- 第三行包含: ㄇ ㄋ ㄎ ㄑ ㄕ ㄘ ㄨ
- 输入注音时显示联想栏
- 联想词为繁体中文
3.6 繁体注音标准布局
测试步骤:
- 在主 App 中切换到"繁體中文(台灣)· 注音標準"
- 打开任意应用
- 调出键盘
预期结果:
- 键盘显示注音符号(标准排列)
- 第一行包含: ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ
- 第二行包含: ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ ㄗ
- 第三行包含: ㄘ ㄙ ㄧ ㄨ ㄩ ㄚ ㄛ
- 输入注音时显示联想栏
- 联想词为繁体中文
测试 4: 联想引擎切换
4.1 拉丁字母联想(英语、西班牙语、葡萄牙语、印尼语)
测试步骤:
- 切换到英语
- 在键盘上输入 "app"
预期结果:
- 联想栏显示英文单词(如:app, apple, apply, application)
- 选择联想词后正确插入
4.2 繁体拼音联想
测试步骤:
- 切换到"繁體中文(台灣)· 拼音(繁體)"
- 在键盘上输入拼音
预期结果:
- 联想栏显示繁体中文词汇
- 选择联想词后正确插入繁体字
4.3 注音联想
测试步骤:
- 切换到"繁體中文(台灣)· 注音全鍵盤"
- 在键盘上输入注音符号
预期结果:
- 联想栏显示繁体中文词汇
- 选择联想词后正确插入繁体字
测试 5: 皮肤下发
5.1 繁体中文皮肤
测试步骤:
- 切换到"繁體中文(台灣)"
- 检查键盘皮肤
预期结果:
- 皮肤请求已发布(检查日志)
- 使用
normal_hei_them.zip皮肤
5.2 其他语言皮肤
测试步骤:
- 切换到英语/西班牙语/葡萄牙语/印尼语
- 检查键盘皮肤
预期结果:
- 皮肤请求已发布
- 使用
normal_them.zip皮肤
测试 6: 异常情况处理
6.1 空 profileId
测试步骤:
- 清空 App Group 中的 profileId
- 打开键盘
预期结果:
- 键盘不崩溃
- 回退到默认布局(英语 QWERTY)
6.2 无效 profileId
测试步骤:
- 在 App Group 中写入无效的 profileId(如 "invalid_profile")
- 打开键盘
预期结果:
- 键盘不崩溃
- 回退到默认布局(英语 QWERTY)
6.3 布局 JSON 缺失
测试步骤:
- 在配置中引用一个不存在的 layoutJsonId
- 打开键盘
预期结果:
- 键盘不崩溃
- 回退到默认布局(letters)
测试 7: 切换流畅性
7.1 快速切换语言
测试步骤:
- 快速连续切换多个语言
- 每次切换后立即打开键盘
预期结果:
- 每次切换都能正确应用
- 键盘布局正确
- 无崩溃或卡顿
7.2 跨应用切换
测试步骤:
- 在主 App 中切换语言
- 打开备忘录,调出键盘
- 返回主 App,再次切换语言
- 返回备忘录,调出键盘
预期结果:
- 键盘布局正确更新
- 联想引擎正确切换
性能测试
1. 启动性能
- 键盘首次加载时间 < 1 秒
- 切换布局时无明显延迟
2. 内存占用
- 键盘内存占用正常(< 50MB)
- 切换布局后无内存泄漏
3. 日志检查
查看控制台日志,确认:
- 布局切换日志正确输出
- 联想引擎切换日志正确输出
- 无异常错误日志
回归测试
1. 原有功能不受影响
- 数字面板正常工作
- 符号面板正常工作
- Emoji 面板正常工作
- 聊天功能正常工作
- 设置页面正常工作
2. 原有语言功能
- 简体中文输入正常
- 英语输入正常
测试结果汇总
通过的测试
- 主 App 语言选择界面
- App Group 数据写入
- 扩展侧布局切换
- 联想引擎切换
- 皮肤下发
- 异常情况处理
- 切换流畅性
- 性能测试
- 回归测试
发现的问题
记录测试过程中发现的问题:
待优化项
记录需要优化的地方:
测试完成签名
- 测试人员: _______________
- 测试日期: _______________
- 测试结果: ☐ 通过 ☐ 部分通过 ☐ 未通过