UNPKG

@xiaolaa2/ableton-copilot-mcp

Version:
603 lines (513 loc) 18.1 kB
# MCP Ableton Tools 全面测试计划 ## 1. 测试目标 - 验证所有 MCP Ableton tools 的功能正确性 - 测试正常使用场景和各种异常情况的处理能力 - 确保工具间的交互正常 - 详细记录测试结果,包括问题和解决方案 ## 2. 测试环境准备 - Ableton Live 版本: 11或12 (记录具体版本) - 操作系统: Windows 10/11 - 确保测试前有足够的素材: - 音频样本文件 - MIDI片段 - 第三方插件 ## 3. 测试框架 每个工具测试将包括: 1. **基本功能测试** - 验证工具在正常参数下的基本功能 2. **边界值测试** - 测试参数的边界条件 3. **异常处理测试** - 测试错误参数和异常情况 4. **性能测试** - 测试在大量数据或频繁调用下的性能 5. **交互测试** - 测试与其他工具的交互 ## 4. 测试范围 ### 4.1 Browser Tools (浏览器工具) #### 4.1.1 列出资源 (list_resources) - **正常场景**: - 列出所有音频效果器 - 列出所有乐器 - 列出所有插件 - 列出所有样本 - 列出所有鼓机 - 列出所有MIDI效果器 - 列出所有声音 - **异常场景**: - 在Ableton未启动时调用 - 提供无效的资源类型参数 #### 4.1.2 加载设备 (load_device) - **正常场景**: - 加载音频效果器到当前选中轨道 - 加载乐器到指定MIDI轨道 - 加载插件到指定轨道 - **异常场景**: - 提供不存在的设备ID - 提供不存在的轨道ID - 加载音频效果器到无效轨道 - 加载过大插件时的性能 ### 4.2 Song Tools (歌曲工具) #### 4.2.1 获取歌曲属性 (get_song_properties) - **正常场景**: - 获取歌曲基本信息(名称、速度、音阶等) - 获取轨道列表 - 获取场景列表 - **异常场景**: - 在Ableton未启动时调用 - 请求不支持的属性 #### 4.2.2 获取歌曲视图属性 (get_song_view_properties) - **正常场景**: - 获取当前选中片段 - 获取当前选中轨道 - 获取当前选中场景 - **异常场景**: - 无选中内容时调用 - 请求不支持的属性 #### 4.2.3 设置歌曲属性 (set_song_property) - **正常场景**: - 修改歌曲速度 - 启用/禁用循环 - 设置循环起始和结束位置 - **异常场景**: - 设置无效的速度值(负数或过大值) - 设置无效的循环位置(结束早于开始) #### 4.2.4 设置歌曲视图属性 (set_song_view_property) - **正常场景**: - 选择特定片段 - 选择特定轨道 - 选择特定场景 - **异常场景**: - 选择不存在的片段 - 选择不存在的轨道 - 选择不存在的场景 #### 4.2.5 创建轨道 (create_track) - **正常场景**: - 创建MIDI轨道(不同索引位置) - 创建音频轨道(不同索引位置) - 创建返送轨道 - **异常场景**: - 使用无效的轨道类型 - 使用无效的索引位置(负数、超大数值) - 在保护状态下创建轨道 #### 4.2.6 删除轨道 (delete_track) - **正常场景**: - 删除MIDI轨道 - 删除音频轨道 - 删除返送轨道 - **异常场景**: - 删除不存在的轨道索引 - 删除主轨道 - 删除已被锁定的轨道 #### 4.2.7 复制轨道 (duplicate_track) - **正常场景**: - 复制MIDI轨道(含设备和片段) - 复制音频轨道(含设备和片段) - **异常场景**: - 复制不存在的轨道索引 - 复制返送轨道(不支持) - 复制主轨道(不支持) #### 4.2.8 时间范围录音 (record_by_time_range) - **正常场景**: - 录制4小节音频 - 录制精确时间范围(非整数拍) - **异常场景**: - 轨道未设置为录音状态 - 未设置正确的输入路由 - 结束时间早于开始时间 - 录音期间项目状态改变 ### 4.3 Clip Tools (片段工具) #### 4.3.1 获取片段属性 (get_clip_properties) - **正常场景**: - 获取MIDI片段属性 - 获取音频片段属性 - 获取所有可用属性 - 获取特定属性子集 - **异常场景**: - 获取不存在的片段 - 请求不支持的属性 - 音频片段特有属性应用于MIDI片段 #### 4.3.2 删除片段音符 (remove_clip_notes) - **正常场景**: - 删除特定音高范围的音符 - 删除特定时间范围的音符 - 删除所有音符 - **异常场景**: - 在音频片段上操作 - 使用无效的音高范围 - 使用无效的时间范围 - 在空片段上操作 #### 4.3.3 添加音符到片段 (add_notes_to_clip) - **正常场景**: - 添加单个音符 - 添加多个按和弦排列的音符 - 添加多个按顺序排列的音符 - **异常场景**: - 添加无效音符(无效音高、负时长) - 在音频片段上操作 - 添加超出片段长度的音符 #### 4.3.4 替换片段所有音符 (replace_all_notes_to_clip) - **正常场景**: - 用单个音符替换 - 用和弦序列替换 - 用旋律替换 - **异常场景**: - 用无效音符替换 - 在音频片段上操作 - 替换后长度超出片段长度 #### 4.3.5 设置片段属性 (set_clips_property) - **正常场景**: - 设置MIDI片段名称和颜色 - 设置音频片段循环点 - 设置多个片段属性 - **异常场景**: - 设置不存在的片段 - 设置无效的属性值 - 设置MIDI特有属性到音频片段 #### 4.3.6 裁剪片段 (crop_clip) - **正常场景**: - 裁剪循环MIDI片段 - 裁剪非循环MIDI片段 - 裁剪音频片段 - **异常场景**: - 裁剪不存在的片段 - 裁剪未设置适当标记的片段 #### 4.3.7 复制片段循环 (duplicate_clip_loop) - **正常场景**: - 复制MIDI片段循环 - 复制音频片段循环 - **异常场景**: - 复制不存在的片段 - 复制未循环的片段 - 复制无法循环的音频片段 #### 4.3.8 复制片段区域 (duplicate_clip_region) - **正常场景**: - 复制MIDI片段区域(所有音高) - 复制MIDI片段区域(特定音高) - 使用不同移调复制 - **异常场景**: - 复制音频片段区域(不支持) - 使用无效的区域范围 - 使用无效的移调量 ### 4.4 Track Tools (轨道工具) #### 4.4.1 获取轨道属性 (get_track_properties) - **正常场景**: - 获取MIDI轨道属性 - 获取音频轨道属性 - 获取返送轨道属性 - 获取主轨道属性 - **异常场景**: - 获取不存在的轨道 - 请求不支持的属性 #### 4.4.2 创建空MIDI片段 (create_empty_midi_clip) - **正常场景**: - 在MIDI轨道创建空片段 - 创建不同长度的片段 - 在不同时间位置创建 - **异常场景**: - 在音频轨道上创建 - 使用无效长度(负数或零) - 使用无效时间位置 #### 4.4.3 设置轨道属性 (set_tracks_property) - **正常场景**: - 设置轨道名称和颜色 - 设置音量和声像 - 设置多个轨道属性 - **异常场景**: - 设置不存在的轨道 - 设置无效的属性值 - 设置音频特有属性到MIDI轨道 #### 4.4.4 复制片段到轨道 (duplicate_clip_to_track) - **正常场景**: - 复制MIDI片段到MIDI轨道 - 复制音频片段到音频轨道 - **异常场景**: - 复制不存在的片段 - 复制到不存在的轨道 - 复制MIDI片段到音频轨道 - 复制音频片段到MIDI轨道 #### 4.4.5 删除设备 (delete_device) - **正常场景**: - 删除音频效果器 - 删除乐器 - 删除第三方插件 - **异常场景**: - 删除不存在的设备 - 删除不存在的索引 - 删除已锁定的设备 #### 4.4.6 创建音频片段 (create_audio_clip) - **正常场景**: - 创建WAV格式音频片段 - 创建MP3格式音频片段 - 创建AIFF格式音频片段 - **异常场景**: - 创建在MIDI轨道上 - 使用不存在的音频文件 - 使用不支持的文件格式 - 在已冻结的轨道上创建 ### 4.5 Device Tools (设备工具) #### 4.5.1 获取设备属性 (get_device_properties) - **正常场景**: - 获取内置效果器属性 - 获取内置乐器属性 - 获取第三方插件属性 - **异常场景**: - 获取不存在的设备 - 请求不支持的属性 #### 4.5.2 修改设备参数值 (modify_device_parameter_value) - **正常场景**: - 修改常见参数(音量、频率等) - 修改布尔参数(开关状态) - 修改枚举参数(模式选择) - **异常场景**: - 修改不存在的参数 - 修改只读参数 - 使用无效的参数值(超出范围) - 修改第三方插件参数(不确定支持) ### 4.6 History Tools (历史工具) #### 4.6.1 获取操作历史 (get_operation_histories) - **正常场景**: - 获取第一页历史 - 使用不同页码和大小 - **异常场景**: - 使用无效的页码(负数) - 使用无效的页大小(过大、零) - 在没有历史记录时获取 #### 4.6.2 获取快照 (get_snapshot_by_history_id) - **正常场景**: - 获取MIDI操作快照 - 获取最近操作快照 - 获取较旧操作快照 - **异常场景**: - 获取不存在的历史ID - 获取无快照的操作 #### 4.6.3 回滚操作 (rollback_by_history_id) - **正常场景**: - 回滚添加音符操作 - 回滚删除音符操作 - 回滚替换音符操作 - **异常场景**: - 回滚不存在的历史ID - 回滚不支持的操作类型 - 回滚已被依赖的操作 ## 5. 测试结果记录模板 对每个测试用例记录: ``` 测试工具: [工具名称] 测试场景: [场景描述] 测试时间: YYYY-MM-DD HH:MM 测试数据: [输入参数] 预期结果: [预期结果] 实际结果: [实际结果] 测试状态: [成功/失败/部分成功] 问题描述: [如果失败,详细描述问题] 解决方案: [解决思路或具体修复] 备注: [其他重要信息] ``` ## 6. 测试实施计划 1. **准备阶段** (2天) - 准备测试环境和测试数据 - 创建详细测试用例 - 设置测试记录系统 2. **初步测试** (3天) - 完成所有正常场景的基本功能测试 - 记录初步测试结果 - 解决关键问题 3. **深入测试** (5天) - 完成所有异常场景测试 - 进行边界值测试 - 进行交互测试 4. **性能/稳定性测试** (2天) - 进行长时间连续操作测试 - 进行高负载测试 - 进行恢复能力测试 5. **回归测试** (2天) - 验证已修复的问题 - 确保无新问题引入 6. **文档和报告** (1天) - 整理测试结果 - 生成测试报告 - 提出改进建议 ## 7. 测试工具和自动化 1. **手动测试工具** - Ableton Live测试项目 - 测试数据集(MIDI文件、音频文件等) - 测试记录模板 2. **自动化测试** - 编写简单的API测试脚本 - 创建参数生成器用于边界测试 - 设置基本的回归测试脚本 ## 8. 已知限制和注意事项 1. 某些操作可能在Ableton Live不同版本之间有差异 2. 第三方插件可能会有兼容性问题 3. 大型项目中性能可能会下降 4. 某些文件格式可能不被所有版本支持 5. 需要确保测试不影响生产环境 6. 自动化测试可能无法覆盖所有用户界面交互 7. 某些回滚操作可能影响项目状态 ## 9. 风险评估 | 风险 | 可能性 | 影响 | 缓解策略 | |------|--------|------|----------| | 版本兼容性问题 | 中 | 高 | 在多个版本上测试 | | 第三方插件崩溃 | 高 | 中 | 隔离测试第三方插件 | | 数据丢失 | 低 | 极高 | 始终使用测试项目复制品 | | 自动化测试不完整 | 中 | 中 | 关键功能手动测试 | | 测试资源不足 | 中 | 高 | 优先测试核心功能 | ## 10. 成功标准 1. 所有核心功能在正常情况下100%通过测试 2. 所有工具对异常输入有适当错误处理 3. 没有数据丢失或损坏的风险 4. 性能满足预期要求 5. 与Ableton Live的集成稳定可靠 6. 所有关键问题都有解决方案 ## 11. 后续步骤 1. 根据测试结果更新文档 2. 创建用户指南和示例 3. 开发更多自动化测试 4. 优化性能和稳定性 5. 计划下一轮功能扩展和测试 ## 12. 测试结果 ### 12.1 Browser Tools(浏览器工具)测试结果 #### 列出资源 (list_resources) - **测试状态**:成功 - **测试时间**:2025-05-06 10:45 - **详细信息** - 成功列出音频效果器,共49个内置效果器 - 成功列出乐器,共23个内置乐器 - 每个资源项包含ID、名称和加载状态 - **问题记录**:无 #### 加载设备 (load_device) - **测试状态**:成功 - **测试时间**:2025-05-06 10:49 - **详细信息**: - 成功将Auto Shift设备加载到MIDI轨道 - 设备ID: id_644776000 - 设备在轨道上正确显示 - **问题记录**:无 ### 12.2 Song Tools(歌曲工具)测试结果 #### 获取歌曲属性 (get_song_properties) - **测试状态**:成功 - **测试时间**:2025-05-06 10:46 - **详细信息** - 成功获取基本信息:根音符(C)、音阶(Major)、速度(120 BPM)等 - 成功获取轨道列表 - **问题记录**:无 #### 创建轨道 (create_track) - **测试状态**:成功 - **测试时间**:2025-05-06 10:47 - **详细信息**: - 成功创建MIDI轨道,返回轨道ID: live_120089512 - 成功创建音频轨道,返回轨道ID: live_618211376 - **问题记录**:无 #### 设置歌曲属性 (set_song_property) - **测试状态**:成功 - **测试时间**:2025-05-06 10:55 - **详细信息**: - 成功将歌曲速度从120 BPM修改为125 BPM - **问题记录**:无 #### 复制轨道 (duplicate_track) - **测试状态**:成功 - **测试时间**:2025-05-06 10:50 - **详细信息** - 成功复制索引0位置的音频轨道 - 新轨道保留了原轨道的名称和颜色属性 - **问题记录**:无 ### 12.3 Clip Tools(片段工具)测试结果 #### 获取片段属性 (get_clip_properties) - **测试状态**:成功 - **测试时间**:2025-05-06 10:51 - **详细信息** - 成功获取MIDI片段的名称、颜色和音符 - 成功获取片段的循环信息 - **问题记录**:无 #### 添加音符到片段 (add_notes_to_clip) - **测试状态**:成功 - **测试时间**:2025-05-06 10:50 - **详细信息**: - 成功添加4个音符到MIDI片段 - 音符按预期被添加,形成C大调音阶 - 操作被记录到历史记录中(ID: 1) - **问题记录**:无 #### 设置片段属性 (set_clips_property) - **测试状态**:成功 - **测试时间**:2025-05-06 10:51 - **详细信息**: - 成功修改片段名称为"测试MIDI片段" - 成功修改片段颜色为红色 - **问题记录**:无 #### 复制片段循环 (duplicate_clip_loop) - **测试状态**:成功 - **测试时间**:2025-05-06 10:53 - **详细信息**: - 成功将循环长度从4拍扩展到8拍 - 音符被正确复制到新区域 - **问题记录**:无 #### 复制片段区域 (duplicate_clip_region) - **测试状态**:成功 - **测试时间**:2025-05-06 10:54 - **详细信息**: - 成功将0-2拍的区域复制到第6拍位置 - 应用了+7半音的移调,音符升高了一个五度 - **问题记录**:无 ### 12.4 Track Tools(轨道工具)测试结果 #### 获取轨道属性 (get_track_properties) - **测试状态**:成功 - **测试时间**:2025-05-06 10:55 - **详细信息**: - 成功获取轨道的设备列表 - 能够正确显示轨道上的设备状态 - **问题记录**:无 #### 创建空MIDI片段 (create_empty_midi_clip) - **测试状态**:成功 - **测试时间**:2025-05-06 10:47 - **详细信息** - 成功在MIDI轨道上创建4拍长的空片段 - 片段ID: live_619884912 - **问题记录**:无 #### 设置轨道属性 (set_tracks_property) - **测试状态**:成功 - **测试时间**:2025-05-06 10:49 - **详细信息**: - 成功修改轨道名称为"测试音频轨道" - 成功修改轨道颜色为红色 - **问题记录**:无 #### 复制片段到轨道 (duplicate_clip_to_track) - **测试状态**:成功 - **测试时间**:2025-05-06 10:52 - **详细信息** - 成功将MIDI片段复制到另一个MIDI轨道 - **问题记录**:无 #### 删除设备 (delete_device) - **测试状态**:成功 - **测试时间**:2025-05-06 10:54 - **详细信息**: - 成功删除轨道上索引0位置的Auto Shift设备 - **问题记录**:无 ### 12.5 Device Tools(设备工具)测试结果 #### 获取设备属性 (get_device_properties) - **测试状态**:成功 - **测试时间**:2025-05-06 10:53 - **详细信息**: - 成功获取Auto Shift设备的详细属性 - 返回数据包含: - 类名:AutoShift - 激活状态:true - 设备参数列表(49个参数) - **问题记录**:无 #### 修改设备参数值 (modify_device_parameter_value) - **测试状态**:成功 - **测试时间**:2025-05-06 10:53 - **详细信息** - 成功修改Auto Shift的Shift Semitones参数值为7 - 参数ID: live_123978864 - **问题记录**:无 ### 12.6 History Tools(历史工具)测试结果 #### 获取操作历史 (get_operation_histories) - **测试状态**:成功 - **测试时间**:2025-05-06 10:52 - **详细信息**: - 成功获取最近的操作历史 - 能够获取到添加音符操作的历史记录(ID:1) - **问题记录**:无 #### 获取快照 (get_snapshot_by_history_id) - **测试状态**:成功 - **测试时间**:2025-05-06 10:52 - **详细信息**: - 成功获取历史ID 1的快照 - 快照包含操作前的状态信息 - **问题记录**:无