任务#1703 产出(测试工程师)
> 自动落盘:2026-11-04 19:29
---
1. 功能测试点清单
| # | 测试项 | 输入示例 | 预期结果 | 验收标准 |
|---|---|---|---|---|
| 1 | 正常文本合成 | '你好,欢迎使用佑观智伴' | 返回 ok=True, 生成合法 WAV 文件, bytes > 0 | 文件大小 ≥ 44 字节, WAV 头为 RIFF |
| 2 | 空文本处理 | '' | 返回 ok=False, error='输入文本为空' | error 字段包含 '空' |
| 3 | 非字符串类型 | 123 / None / [] | 返回 ok=False, error='类型错误: str' | error 字段包含 'str' |
| 4 | 超长文本处理 | '重复文字' * 1000 | 正常合成或截断处理 | 不抛异常, 有合理输出 |
| 5 | voice_list 返回格式 | 无参数调用 | 返回 list 类型, 长度 ≥ 3 | len(voice_list) >= 3 |
| 6 | retry 装饰器重试次数 | 模拟失败场景 | 实际执行次数 = times | retries 统计正确 |
2. 边界 Case
- 空字符串: '' → ok=False
- None 值: None → TypeError 捕获, ok=False
- 纯空白字符: ' ' → 按非空处理或按空处理(需明确)
- 特殊字符: '!@#$%^&*()' → 正常合成
- emoji/unicode: '🎉你好' → 支持多语言编码
- 极大整数: 2**100 → 类型错误捕获
3. 验收标准
| 项目 | 判定条件 | 通过方式 |
|---|---|---|
| py_compile | exit=0 | python -m py_compile m04_tts_client.py |
| 自测运行 | exit=0 | python m04_tts_client.py |
| 文件非空 | size > 44 bytes | os.path.getsize(path) > 44 |
| WAV 头正确 | RIFF 标识 | file.read(4) == b'RIFF' |
| voice_list | len >= 3 | len(voice_list()) >= 3 |
4. 测试数据准备
test_cases = [
{'input': '你好', 'expected_ok': True},
{'input': '', 'expected_ok': False},
{'input': None, 'expected_ok': False},
{'input': 123, 'expected_ok': False}
]
5. 执行计划
- 环境准备: 确保 Python 3.6+ 环境, 无第三方依赖
- 模块导入测试:
from m04_tts_client import synthesize, voice_list - 功能验证: 逐个调用测试用例, 断言预期结果
- 文件检查: 验证生成的 WAV 文件格式正确性
- 边界覆盖: 执行所有边界 Case 测试
6. 验收清单
- [ ] synthesize('你好') → ok=True, path exists, size > 44
- [ ] synthesize('') → ok=False, error='输入文本为空'
- [ ] synthesize(None) → ok=False, error='类型错误: str'
- [ ] voice_list() → len >= 3
- [ ] retry decorator works correctly
7. 异常处理验证
try:
result = synthesize('test')
assert result['ok'] == True
except Exception as e:
print(f'Test failed: {e}')