Initial commit of akmon project
This commit is contained in:
210
doc_zhipao/SCORING_CRITERIA_TESTING_PLAN.md
Normal file
210
doc_zhipao/SCORING_CRITERIA_TESTING_PLAN.md
Normal 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
|
||||
Reference in New Issue
Block a user