Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

View File

@@ -0,0 +1,210 @@
# 评分标准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 数据结构验证
```sql
-- 验证字段类型
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数据验证
```sql
-- 验证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 数据完整性验证
```sql
-- 检查所有项目都有评分标准
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 查询性能
```sql
-- 测试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[描述]
## 🔧 调试工具
### 浏览器控制台命令
```javascript
// 检查页面数据
console.log('评分标准数据:', this.getScoringCriteria());
// 检查表单数据
console.log('表单数据:', this.formData);
```
### 数据库调试SQL
```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