Files
prompt-optimizer/docs/testing/ai-automation
linshen ac621fd011 fix: 提升上下文管理、国际化与测试覆盖,优化数据服务
主要变更:
- **上下文变量管理**: 完善上下文变量的作用域隔离,修复ContextEditor中硬编码i18n字符串问题,添加缺失的国际化键,更新术语并将“变量覆盖”更名为“上下文变量”,并修正变量状态显示逻辑。通过关键架构修复,防止上下文变量污染全局变量库。
- **国际化优化**: 移除国际化文件中冗余的“变量状态”字段,确保文本简洁性和一致性。
- **数据服务重构**: 移除DataManager中的getContextRepo方法,直接通过services引用上下文仓库;统一DataManager.vue组件中服务不可用时的错误提示信息。
- **功能测试与文档**: 新增并完成08-12号测试场景的功能验证,涵盖上下文持久化、变量管理、工具集成、导入导出等核心功能。同时清理了临时文档目录,并更新了测试自动化相关文档结构。

验证结果:
- **国际化**: 所有国际化文本正常显示,无控制台错误。
- **作用域隔离**: 上下文变量已成功隔离,不会出现在全局变量管理器中。
- **功能完整**: 上下文变量增删改查及持久化功能正常,数据管理服务及相关功能稳定运行。
- **测试覆盖**: 所有新旧测试场景设计合理且功能验证通过,高级模式集成(variables/messages/tools)成功,实时持久化、变量优先级系统、工具调用链路稳定,Compare模式测试、导入导出功能正常运行。
2025-09-07 12:32:54 +08:00
..

AI自动化测试系统

🎯 目标

本测试系统专门设计用于AI通过MCP工具进行自动化测试主要目标是

  • 发现Bug - 通过边缘情况和异常场景发现潜在问题
  • 回归测试 - 确保新功能不破坏现有功能
  • 压力测试 - 验证系统在极限条件下的稳定性
  • 用户体验验证 - 发现影响用户体验的问题

📁 目录结构

ai-automation/
├── README.md                       # 本文件
├── electron-mcp-guide.md          # Electron MCP自动化测试指南
├── test-scenarios/                 # 测试场景
│   ├── normal-flow/               # 正常流程测试
│   │   ├── 01-basic-setup.md
│   │   ├── 02-model-management.md
│   │   ├── 02b-model-add-and-test.md  # 模型添加和连接测试
│   │   ├── 03-template-management.md
│   │   ├── 04-prompt-optimization.md  # 已更新 - 包含结果展示功能测试
│   │   ├── 04b-user-prompt-optimization.md  # 已更新 - 包含结果展示功能测试
│   │   ├── 05-history-management.md
│   │   ├── 06-data-management.md
│   │   ├── 07-ui-interaction-features.md  # 新增 - UI交互功能测试
│   │   ├── 08-context-persistence.md      # 新增 - 上下文持久化
│   │   ├── 09-context-variables-and-preview.md  # 新增 - 上下文变量/预览
│   │   ├── 10-tools-management-and-advanced-context.md  # 新增 - 工具与高级上下文
│   │   ├── 11-context-import-export.md   # 新增 - 上下文导入导出
│   │   └── 12-advanced-context-optimization-and-testing.md  # 新增 - 高级优化与测试(变量/上下文/工具)
│   ├── edge-cases/                # 边缘情况测试
│   │   ├── input-validation.md
│   │   ├── performance-limits.md
│   │   ├── concurrent-operations.md
│   │   └── browser-compatibility.md
│   ├── error-handling/            # 错误处理测试
│   │   ├── network-failures.md
│   │   ├── invalid-inputs.md
│   │   ├── storage-failures.md
│   │   └── api-errors.md
│   └── stress-testing/            # 压力测试
│       ├── memory-stress.md
│       ├── rapid-operations.md
│       └── data-volume.md
├── bug-hunting/                   # 专门的bug发现测试
│   ├── ui-glitches.md
│   ├── data-corruption.md
│   ├── race-conditions.md
│   └── memory-leaks.md
├── regression/                    # 回归测试
│   ├── feature-regression.md
│   └── performance-regression.md
├── tools/                         # 测试工具和脚本
│   ├── mcp-helpers.md
│   └── test-data-generator.md
└── reports/                       # 测试报告
    ├── latest/
    └── history/

🤖 AI测试执行原则

1. Bug优先原则

  • 重点关注可能出错的场景
  • 测试边界条件和极限值
  • 验证错误处理的完整性
  • 发现用户体验问题

2. 真实场景模拟

  • 模拟真实用户的使用模式
  • 包含意外操作和错误操作
  • 测试不同环境和条件
  • 考虑并发和竞态情况

3. 系统性测试

  • 覆盖所有主要功能路径
  • 测试功能间的交互
  • 验证数据一致性
  • 检查性能和稳定性

🔍 测试分类说明

Normal Flow正常流程

  • 验证基本功能的正确性
  • 确保主要用户路径可用
  • 作为回归测试的基准
  • 快速验证核心功能

Edge Cases边缘情况

  • 输入验证和边界测试
  • 性能极限测试
  • 并发操作测试
  • 浏览器兼容性测试

Error Handling错误处理

  • 网络故障处理
  • 无效输入处理
  • 存储故障处理
  • API错误处理

Stress Testing压力测试

  • 内存压力测试
  • 快速操作测试
  • 大数据量测试
  • 长时间运行测试

Bug HuntingBug发现

  • UI显示问题
  • 数据损坏问题
  • 竞态条件问题
  • 内存泄漏问题

🛠️ MCP工具使用指南

基础工具

// 页面操作
browser_navigate(url)
browser_snapshot()
browser_resize(width, height)

// 元素交互
browser_click(element, ref)
browser_type(element, ref, text)
browser_hover(element, ref)

// 等待和验证
browser_wait_for(text/textGone/time)
browser_take_screenshot(filename)

高级技巧

// 快速连续操作(测试竞态条件)
for (let i = 0; i < 10; i++) {
    browser_click(element, ref);
}

// 大量数据输入(测试性能)
browser_type(element, ref, "x".repeat(10000));

// 窗口大小变化(测试响应式)
browser_resize(320, 568); // 手机尺寸
browser_resize(1920, 1080); // 桌面尺寸

📊 测试报告格式

Bug报告模板

# Bug报告 - [Bug标题]

## 基本信息
- **发现时间:** 2025-01-07 15:30:00
- **测试场景:** [具体测试场景]
- **严重程度:** 高/中/低
- **影响范围:** [影响的功能或用户]

## Bug描述
[详细描述发现的问题]

## 复现步骤
1. [具体步骤1]
2. [具体步骤2]
3. [具体步骤3]

## 预期行为
[应该发生什么]

## 实际行为
[实际发生了什么]

## 环境信息
- **浏览器:** Chrome 120.0
- **操作系统:** Windows 11
- **屏幕分辨率:** 1920x1080
- **网络状况:** 正常/慢速/离线

## 附件
- **截图:** bug_screenshot.png
- **控制台日志:** console_errors.txt
- **网络请求:** network_log.har

## 建议解决方案
[可能的解决方案或改进建议]

🚀 快速开始

1. 选择测试场景

# 正常流程验证
cd test-scenarios/normal-flow/

# 边缘情况测试
cd test-scenarios/edge-cases/

# Bug发现测试
cd bug-hunting/

2. 执行测试

# 读取测试文档
# 按照AI执行指导进行测试
# 记录发现的问题
# 生成测试报告

3. 报告问题

# 在reports/latest/目录下生成报告
# 包含详细的复现步骤和证据
# 提供改进建议

📈 测试指标

覆盖率指标

  • 功能覆盖率 - 测试的功能占总功能的比例
  • 场景覆盖率 - 测试的使用场景覆盖程度
  • 边缘情况覆盖率 - 边缘情况的测试覆盖程度

质量指标

  • Bug发现率 - 每次测试发现的Bug数量
  • Bug严重程度分布 - 高/中/低严重程度Bug的分布
  • 回归Bug率 - 修复后再次出现的Bug比例

效率指标

  • 测试执行时间 - 完成一轮测试的时间
  • 问题定位时间 - 从发现到定位问题的时间
  • 自动化程度 - 自动化测试的比例

🖥️ Electron桌面应用测试

专门指南

详见 electron-mcp-guide.md - Electron MCP自动化测试完整指南

关键差异

  • 启动方式: 使用 app_launch_circuit-electron 而非 browser_navigate
  • 元素定位: 优先使用 click_by_text_circuit-electron
  • 问题处理: 善用JavaScript执行绕过UI限制
  • 状态判断: 重视界面状态而非控制台信息

测试流程

  1. 构建应用: pnpm clean && pnpm build
  2. 启动测试: 使用packaged模式启动
  3. 执行场景: 按normal-flow顺序执行
  4. 验证结果: 关注功能按钮状态变化

成功案例

  • 测试覆盖率: 9/9 (100%)
  • 通过率: 100%
  • 核心验证: 端到端AI优化流程
  • 技术积累: 完整的Electron测试方法论

🔄 持续改进

测试优化

  • 根据发现的问题调整测试重点
  • 增加新的边缘情况测试
  • 优化测试执行效率
  • 提高Bug发现的准确性

工具改进

  • 开发更好的测试辅助工具
  • 优化MCP工具的使用方法
  • 自动化测试报告生成
  • 集成CI/CD流程

注意: 本测试系统专注于通过AI自动化发现问题而不是简单的功能验证。每个测试场景都应该设计得能够发现潜在的Bug和用户体验问题。