test(cache): 修复CacheConfigTest边界值测试
- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl - 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE - 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查 - 所有1266个测试用例通过 - 覆盖率: 指令81.89%, 行88.48%, 分支51.55% docs: 添加项目状态报告 - 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态 - 包含质量指标、已完成功能、待办事项和技术债务
This commit is contained in:
307
.testing-autonomous/config.yml
Normal file
307
.testing-autonomous/config.yml
Normal file
@@ -0,0 +1,307 @@
|
||||
# 🎯 Testing-Autonomous: 蚊子项目专用配置
|
||||
# 基于1210个测试经验的优化方案
|
||||
|
||||
---
|
||||
|
||||
# 1. 目标设定
|
||||
targets:
|
||||
# 覆盖率目标(生产级标准)
|
||||
coverage:
|
||||
instruction: 85% # 指令覆盖率
|
||||
branch: 60% # 分支覆盖率
|
||||
method: 85% # 方法覆盖率
|
||||
class: 95% # 类覆盖率
|
||||
|
||||
# 质量目标
|
||||
quality:
|
||||
min_tests_per_class: 5
|
||||
max_tests_per_class: 50
|
||||
avg_test_execution_time: 100ms # 毫秒
|
||||
|
||||
# 缺陷发现目标
|
||||
defects:
|
||||
min_boundary_tests: 10
|
||||
min_exception_tests: 5
|
||||
min_concurrency_tests: 3
|
||||
|
||||
# 迭代限制
|
||||
iteration:
|
||||
max_rounds: 10
|
||||
coverage_gain_threshold: 2% # 每轮至少提升2%
|
||||
|
||||
---
|
||||
|
||||
# 2. 自动恢复配置
|
||||
recovery:
|
||||
# 超时设置
|
||||
timeout_threshold: 300s # 5分钟无响应视为卡住
|
||||
|
||||
# 恢复策略(基于蚊子项目经验)
|
||||
strategies:
|
||||
# 策略1: DTO默认构造函数缺失
|
||||
dto_noargs_constructor:
|
||||
trigger: "Cannot construct instance.*no Creators.*exist"
|
||||
action: "auto_fix_dto"
|
||||
fix_steps:
|
||||
- "分析DTO类结构"
|
||||
- "添加@NoArgsConstructor注解"
|
||||
- "重新编译验证"
|
||||
- "重新生成JSON测试"
|
||||
max_retry: 3
|
||||
|
||||
# 策略2: 文件过大拆分
|
||||
file_too_large:
|
||||
trigger: "test_file_lines > 500"
|
||||
action: "split_to_nested"
|
||||
split_rules:
|
||||
- "按功能分组(Constructor/Getter/Boundary)"
|
||||
- "每类最多100个测试"
|
||||
- "使用@Nested注解"
|
||||
max_retry: 2
|
||||
|
||||
# 策略3: 覆盖率停滞突破
|
||||
coverage_stalled:
|
||||
trigger: "coverage_gain < 1% after 100 tests"
|
||||
action: "switch_strategy"
|
||||
alternatives:
|
||||
- name: "focus_branches"
|
||||
description: "专注分支覆盖"
|
||||
target: "if/else/switch语句"
|
||||
|
||||
- name: "focus_dtos"
|
||||
description: "专注DTO测试"
|
||||
target: "com.mosquito.project.dto.*"
|
||||
|
||||
- name: "focus_integration"
|
||||
description: "专注集成测试"
|
||||
target: "API端到端流程"
|
||||
|
||||
- name: "use_testcontainers"
|
||||
description: "使用真实数据库"
|
||||
target: "Repository层"
|
||||
|
||||
# 策略4: 内存溢出处理
|
||||
out_of_memory:
|
||||
trigger: "heap_usage > 90% OR OutOfMemoryError"
|
||||
action: "reduce_batch_size"
|
||||
batch_sizes: [100, 50, 25, 10]
|
||||
cleanup:
|
||||
- "强制GC"
|
||||
- "清理临时文件"
|
||||
- "减少并发线程"
|
||||
|
||||
---
|
||||
|
||||
# 3. 质量门禁配置
|
||||
gates:
|
||||
# 门禁1: 基础检查(必须全部通过)
|
||||
level1_basic:
|
||||
compile_check:
|
||||
command: "mvn compile -q"
|
||||
must_pass: true
|
||||
error_message: "编译失败,请检查代码语法"
|
||||
|
||||
test_execution:
|
||||
command: "mvn test -q"
|
||||
must_pass: true
|
||||
error_message: "测试执行失败"
|
||||
|
||||
# 门禁2: 覆盖率检查
|
||||
level2_coverage:
|
||||
instruction_coverage:
|
||||
metric: "instruction_coverage"
|
||||
threshold: 85%
|
||||
must_pass: true
|
||||
auto_fix: true # 未达标自动触发优化
|
||||
|
||||
branch_coverage:
|
||||
metric: "branch_coverage"
|
||||
threshold: 60%
|
||||
must_pass: false # 警告但不阻止
|
||||
warning_message: "分支覆盖率未达标,建议加强条件测试"
|
||||
|
||||
method_coverage:
|
||||
metric: "method_coverage"
|
||||
threshold: 85%
|
||||
must_pass: true
|
||||
|
||||
# 门禁3: 质量检查
|
||||
level3_quality:
|
||||
test_quality_score:
|
||||
metric: "test_quality_score"
|
||||
threshold: 0.7 # 70分
|
||||
must_pass: true
|
||||
evaluation_criteria:
|
||||
- "代码覆盖贡献 > 0.5"
|
||||
- "分支覆盖贡献 > 0.3"
|
||||
- "断言数量 >= 2"
|
||||
- "复杂度适中"
|
||||
|
||||
duplicate_test_ratio:
|
||||
metric: "duplicate_test_ratio"
|
||||
threshold: 5% # 重复率<5%
|
||||
must_pass: true
|
||||
auto_deduplicate: true # 自动去重
|
||||
|
||||
low_value_test_ratio:
|
||||
metric: "low_value_test_ratio"
|
||||
threshold: 20% # 低价值测试<20%
|
||||
must_pass: false
|
||||
warning_message: "低价值测试过多(getter/setter),建议使用参数化测试"
|
||||
|
||||
# 门禁4: 缺陷检查(建议性质)
|
||||
level4_defects:
|
||||
boundary_test_coverage:
|
||||
metric: "boundary_test_count"
|
||||
threshold: 10
|
||||
must_pass: false
|
||||
suggestion: "增加边界条件测试(null/空值/极大值/负数)"
|
||||
|
||||
exception_test_coverage:
|
||||
metric: "exception_test_count"
|
||||
threshold: 5
|
||||
must_pass: false
|
||||
suggestion: "增加异常处理测试"
|
||||
|
||||
concurrency_test_coverage:
|
||||
metric: "concurrency_test_count"
|
||||
threshold: 3
|
||||
must_pass: false
|
||||
suggestion: "增加并发安全测试"
|
||||
|
||||
---
|
||||
|
||||
# 4. 缺口分析配置
|
||||
gap_analysis:
|
||||
# 未覆盖代码优先级
|
||||
priority_rules:
|
||||
- condition: "class_name contains 'Config'"
|
||||
priority: 10 # 最高
|
||||
reason: "配置类影响系统启动"
|
||||
|
||||
- condition: "class_name contains 'Service'"
|
||||
priority: 9
|
||||
reason: "核心业务逻辑"
|
||||
|
||||
- condition: "class_name contains 'Controller'"
|
||||
priority: 8
|
||||
reason: "API入口"
|
||||
|
||||
- condition: "class_name contains 'Security'"
|
||||
priority: 10
|
||||
reason: "安全相关"
|
||||
|
||||
- condition: "class_name contains 'Dto' OR class_name contains 'DTO'"
|
||||
priority: 7
|
||||
reason: "数据传输对象"
|
||||
|
||||
- condition: "complexity > 10"
|
||||
priority: 9
|
||||
reason: "复杂度高,风险大"
|
||||
|
||||
- condition: "branch_count > 5"
|
||||
priority: 8
|
||||
reason: "分支多,测试价值高"
|
||||
|
||||
# 忽略规则
|
||||
ignore_patterns:
|
||||
- "com.mosquito.project.config.Test*" # 测试配置
|
||||
- "*.class" # 已编译类
|
||||
- "target/**" # 构建目录
|
||||
|
||||
---
|
||||
|
||||
# 5. 蚊子项目特定优化
|
||||
mosquito_optimizations:
|
||||
# DTO优化(基于发现的问题)
|
||||
dto_optimization:
|
||||
enabled: true
|
||||
actions:
|
||||
- "检查并添加@NoArgsConstructor"
|
||||
- "验证Jackson兼容性"
|
||||
- "生成JSON序列化/反序列化测试"
|
||||
- "测试边界值(null/空字符串/极大值)"
|
||||
|
||||
# 分支覆盖优化
|
||||
branch_optimization:
|
||||
enabled: true
|
||||
target_classes:
|
||||
- "com.mosquito.project.service.*"
|
||||
- "com.mosquito.project.web.*"
|
||||
focus_areas:
|
||||
- "if/else条件分支"
|
||||
- "switch语句"
|
||||
- "三元运算符"
|
||||
- "异常处理路径"
|
||||
|
||||
# 配置类优化
|
||||
config_optimization:
|
||||
enabled: true
|
||||
target_classes:
|
||||
- "com.mosquito.project.config.AppConfig"
|
||||
- "com.mosquito.project.config.CacheConfig"
|
||||
- "com.mosquito.project.config.WebMvcConfig"
|
||||
test_focus:
|
||||
- "默认值验证"
|
||||
- "配置加载"
|
||||
- "边界条件(0/负数/极大值)"
|
||||
- "异常处理(无效配置)"
|
||||
|
||||
---
|
||||
|
||||
# 6. 监控和日志
|
||||
monitoring:
|
||||
# 进度记录
|
||||
progress_log: ".testing-autonomous/progress.log"
|
||||
|
||||
# 失败模式记录
|
||||
failure_log: ".testing-autonomous/failures.log"
|
||||
|
||||
# 覆盖率历史
|
||||
coverage_history: ".testing-autonomous/coverage-history.csv"
|
||||
|
||||
# 告警设置
|
||||
alerts:
|
||||
- condition: "coverage < 50% after 3 rounds"
|
||||
level: "warning"
|
||||
message: "覆盖率提升缓慢,建议检查测试策略"
|
||||
|
||||
- condition: "test_execution_time > 2 minutes"
|
||||
level: "warning"
|
||||
message: "测试执行时间过长,建议优化测试性能"
|
||||
|
||||
- condition: "recovery_triggered > 5 times"
|
||||
level: "error"
|
||||
message: "多次触发恢复机制,建议人工介入检查"
|
||||
|
||||
---
|
||||
|
||||
# 7. 预设命令
|
||||
commands:
|
||||
# 快速开始
|
||||
quick_start: |
|
||||
@skill testing-autonomous
|
||||
analyze-and-optimize --target 85% --auto-recovery --max-rounds 10
|
||||
|
||||
# 仅缺口分析
|
||||
gap_analysis_only: |
|
||||
@skill testing-autonomous
|
||||
analyze-gaps --output report.html
|
||||
|
||||
# 质量检查
|
||||
quality_check: |
|
||||
@skill testing-autonomous
|
||||
check-quality --gates all
|
||||
|
||||
# 持续优化(适合CI/CD)
|
||||
continuous_optimization: |
|
||||
@skill testing-autonomous
|
||||
optimize --incremental --coverage-threshold 85% --fail-on-miss
|
||||
|
||||
---
|
||||
|
||||
# 使用说明
|
||||
# 1. 复制此文件到项目根目录: .testing-autonomous/config.yml
|
||||
# 2. 根据项目实际情况调整阈值
|
||||
# 3. 运行: @skill testing-autonomous
|
||||
# 4. 执行: optimize-project --config .testing-autonomous/config.yml
|
||||
Reference in New Issue
Block a user