You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cbmc/codedetect/tests/framework_verification.md

4.7 KiB

LLM生成测试框架验证报告

框架概述

本测试框架是为CodeDetect项目中的LLM生成CBMC规范功能设计的全面测试解决方案。框架按照用户原始计划严格实现包含以下核心组件

核心组件清单

1. 测试框架核心

  • 文件: tests/test_llm_generation.py (576行)
  • 功能: 核心测试框架包含TestRunner、TestCase、TestResult类
  • 特性: 异步测试支持、结果收集、性能监控、详细报告生成

2. 测试数据管理

  • 文件: tests/test_data/simple_c_examples.py
  • 功能: 渐进式测试用例集合,涵盖从基础到高级的复杂度级别
  • 覆盖: 基础算术、指针操作、数组处理、字符串操作、FreeRTOS特定函数

3. C源码测试文件

  • 目录: tests/test_data/c_files/
  • 文件列表:
    • basic_arithmetic.c (1,570字节) - 基础算术函数
    • pointer_operations.c (2,673字节) - 指针操作函数
    • array_operations.c (4,781字节) - 数组操作函数
    • string_functions.c (6,046字节) - 字符串处理函数
    • freertos_examples.c (6,454字节) - FreeRTOS示例函数

4. 集成测试

  • 文件: tests/integration/test_parser_llm_pipeline.py
  • 功能: 完整的解析器→LLM→规范生成流水线测试
  • 验证: 端到端流程集成,数据一致性,错误处理

5. 单元测试

  • 文件:
    • tests/unit/test_llm_generator.py - LLM生成器单元测试
    • tests/unit/test_prompt_builder.py - 提示构建器单元测试
  • 覆盖: API集成、重试机制、流式处理、错误处理、模板选择

6. 验证工具

  • 文件: tests/utils/cbmc_spec_validator.py
  • 功能: CBMC规范验证框架
  • 验证维度: 语法正确性、逻辑一致性、完整性、质量评估

7. CLI测试工具

  • 文件: tests/tools/test_llm_cli.py
  • 功能: 交互式CLI测试界面
  • 特性: 单函数测试、批量处理、模板比较、交互式调试

8. 性能测试

  • 文件: tests/performance/test_llm_performance.py
  • 功能: 性能测试和基准测试框架
  • 监控: 指标收集、分析、可视化、资源使用监控

9. 配置管理

  • 文件: tests/config/test_config.yaml
  • 功能: 全面的测试配置管理
  • 配置项: 质量阈值、超时设置、LLM参数、性能测试设置

10. 测试运行器

  • 文件: tests/run_llm_tests.py (569行)
  • 功能: 主要测试编排器和运行器
  • 特性: 多类型测试协调、报告生成、错误处理

11. 运行脚本

  • 文件: scripts/test-llm-generation.sh (332行)
  • 功能: 便于执行的Shell脚本
  • 特性: 依赖检查、环境设置、命令行界面、错误处理

12. 测试框架配置

  • 文件: pytest.ini
  • 功能: Pytest配置
  • 特性: 异步支持、覆盖率、测试发现、标记定义

技术特性

测试类型覆盖

  • 单元测试 (Unit Tests)
  • 集成测试 (Integration Tests)
  • 性能测试 (Performance Tests)
  • CLI测试 (CLI Tests)
  • 验证测试 (Validation Tests)
  • 回归测试 (Regression Tests)

复杂度级别

  • 基础级别 (Basic Complexity)
  • 中等级别 (Intermediate Complexity)
  • 高级级别 (Advanced Complexity)
  • 领域特定 (Domain-Specific - FreeRTOS/Embedded)

质量保证

  • 语法验证
  • 逻辑一致性检查
  • 完整性验证
  • 质量评分系统
  • 性能监控

集成能力

  • SiliconFlow DeepSeek V3.1 API集成
  • pycparser C/C++解析
  • 异步编程模式
  • 配置文件管理
  • 日志系统

使用说明

快速开始

# 运行所有测试
./scripts/test-llm-generation.sh

# 运行特定类型测试
./scripts/test-llm-generation.sh basic
./scripts/test-llm-generation.sh integration
./scripts/test-llm-generation.sh performance

# 使用配置文件
./scripts/test-llm-generation.sh -c custom_config.yaml

环境变量

export SILICONFLOW_API_KEY="your_api_key_here"

配置文件

框架使用 tests/config/test_config.yaml 进行配置管理,可根据需要调整测试参数。

验证状态

所有12个核心组件已成功实现 13个Python测试文件已创建 5个C源码测试文件已创建 语法验证通过 目录结构完整 配置文件完备

总结

LLM生成测试框架已完全按照用户原始计划实现提供了从基础到高级的全面测试能力。框架支持多种测试类型、复杂度级别和质量保证机制为CodeDetect项目的LLM生成功能提供了坚实的测试基础。

所有组件均已就绪可以进行后续的CBMC集成和变异测试阶段。