Files
akmon/doc_zhipao/SCORING_CRITERIA_TESTING_PLAN.md
2026-01-20 08:04:15 +08:00

5.4 KiB
Raw Permalink Blame History

评分标准JSON迁移验证测试计划

🎯 测试目标

验证评分标准从 instructions 字段的字符串格式迁移到 scoring_criteria 字段的JSON格式后所有功能正常工作。

📋 测试清单

Phase 1: 前端功能验证

1.1 教师端 - 项目创建页面 (project-create.uvue)

  • 新建项目保存

    • 填写项目基本信息
    • 添加评分标准(多个等级)
    • 验证保存后数据库中 scoring_criteria 字段为JSON格式
    • 验证包含 criteria, scoring_method, weight_distribution 字段
  • 草稿保存功能

    • 保存为草稿(is_active: false
    • 验证数据正确保存
    • 验证JSON结构完整

1.2 教师端 - 项目编辑页面 (project-edit.uvue)

  • 编辑现有项目
    • 加载项目数据
    • 验证新JSON格式正确解析
    • 验证旧格式兼容性如果有legacy数据
    • 修改评分标准并保存
    • 验证更新后JSON结构正确

1.3 教师端 - 项目详情页面 (project-detail.uvue)

  • 评分标准显示
    • 查看项目详情
    • 验证评分标准正确显示
    • 验证分数范围、描述信息完整
    • 测试新旧数据格式兼容性

1.4 教师端 - 创建作业页面 (create-assignment.uvue)

  • 项目选择功能
    • 项目列表正确加载(使用 is_active: true 过滤)
    • 项目信息正确显示
    • 难度等级样式正确应用 (getDifficultyClass)

1.5 学生端 - 作业详情页面 (assignment-detail.uvue)

  • 评分标准显示
    • 查看作业详情
    • 验证评分标准正确解析和显示
    • 测试新JSON格式解析
    • 测试旧格式兼容性

Phase 2: 数据库验证

2.1 数据结构验证

-- 验证字段类型
SELECT 
    column_name, 
    data_type, 
    is_nullable 
FROM information_schema.columns 
WHERE table_name = 'ak_training_projects' 
    AND column_name IN ('scoring_criteria', 'title', 'sport_type', 'difficulty_level', 'is_active');

2.2 JSON数据验证

-- 验证JSON结构
SELECT 
    id,
    title,
    scoring_criteria,
    jsonb_typeof(scoring_criteria) as type,
    scoring_criteria ? 'criteria' as has_criteria,
    scoring_criteria ? 'scoring_method' as has_method,
    scoring_criteria ? 'weight_distribution' as has_weights,
    jsonb_array_length(scoring_criteria->'criteria') as criteria_count
FROM ak_training_projects 
WHERE scoring_criteria IS NOT NULL
LIMIT 5;

2.3 数据完整性验证

-- 检查所有项目都有评分标准
SELECT 
    COUNT(*) as total_projects,
    COUNT(scoring_criteria) as projects_with_criteria,
    COUNT(*) - COUNT(scoring_criteria) as missing_criteria
FROM ak_training_projects;

Phase 3: 兼容性测试

3.1 新旧数据共存测试

  • 创建包含新JSON格式的项目
  • 确保legacy数据如果存在仍能正常显示
  • 验证前端代码能同时处理两种格式

3.2 边界条件测试

  • 空的评分标准数组
  • 单个评分标准
  • 最大数量评分标准5-10个
  • 特殊字符在描述中
  • 极值分数0, 100

Phase 4: 性能测试

4.1 查询性能

-- 测试JSON查询性能
EXPLAIN ANALYZE 
SELECT * FROM ak_training_projects 
WHERE scoring_criteria ? 'criteria' 
    AND jsonb_array_length(scoring_criteria->'criteria') > 3;

4.2 页面加载性能

  • 项目列表页面加载时间
  • 项目详情页面加载时间
  • 大量数据情况下的响应时间

🚀 测试执行步骤

Step 1: 环境准备

  1. 确保开发环境数据库连接正常
  2. 备份当前数据库(可选)
  3. 准备测试数据

Step 2: 前端测试

  1. 启动开发服务器
  2. 按照上述清单逐项测试
  3. 记录任何异常或错误

Step 3: 数据库验证

  1. 连接数据库
  2. 执行验证SQL语句
  3. 检查数据结构和内容

Step 4: 集成测试

  1. 完整的创建-编辑-查看流程
  2. 跨页面数据一致性验证
  3. 用户体验测试

📊 测试结果记录

功能测试结果

功能项 状态 备注
项目创建 待测试
项目编辑 待测试
项目详情 待测试
作业创建 待测试
作业详情 待测试

数据验证结果

验证项 状态 备注
字段类型 待验证
JSON结构 待验证
数据完整性 待验证

问题记录

  • 问题1[描述]
  • 问题2[描述]

🔧 调试工具

浏览器控制台命令

// 检查页面数据
console.log('评分标准数据:', this.getScoringCriteria());

// 检查表单数据
console.log('表单数据:', this.formData);

数据库调试SQL

-- 查看最近创建的项目
SELECT * FROM ak_training_projects 
ORDER BY created_at DESC LIMIT 5;

-- 查看特定项目的评分标准
SELECT title, scoring_criteria 
FROM ak_training_projects 
WHERE id = '[项目ID]';

完成标准

所有测试项都通过,包括:

  1. 前端功能正常
  2. 数据正确保存和加载
  3. 新旧格式兼容
  4. 性能满足要求
  5. 用户体验良好

🚨 问题升级标准

如果遇到以下情况,需要立即反馈:

  1. 数据丢失或损坏
  2. 功能完全无法使用
  3. 严重性能问题
  4. 安全相关问题

测试负责人: [填写]
测试时间: [填写]
版本信息: 评分标准JSON迁移 v1.0