1.1 选题背景与意义
软件测试是保障软件质量的核心环节,贯穿于软件开发的全生命周期。随着软件行业的快速发展,软件系统的复杂度不断提升,对测试用例的数量和质量提出了更高的要求。传统软件测试用例主要依靠测试人员手工编写,该过程存在效率低下、成本高昂、覆盖度不足等问题。对于中小型开发团队而言,专业测试人员的缺失导致测试环节往往被简化,大量边界场景和异常场景无法得到有效覆盖,进而增加了软件上线后的故障风险。对于大型企业而言,即使配备了完善的测试团队,人工编写测试用例仍需耗费大量时间,难以适应敏捷开发模式下快速迭代的需求。
近年来,大语言模型技术取得了突破性进展,在自然语言理解、代码生成与分析等领域展现出强大的能力。大语言模型能够从源代码和自然语言需求中提取核心逻辑,自动生成符合规范的测试用例,为解决传统测试用例生成的痛点提供了新的技术途径。FastAPI 作为一款轻量级、高性能的 Python Web 框架,具备异步编程、类型提示、自动生成 API 文档等特性,能够快速构建 AI 辅助开发平台,为大语言模型的工程化落地提供了有力支撑。
然而,当前市场上的大语言模型测试用例生成工具大多存在功能单一的问题。多数工具仅能实现基础的用例生成功能,缺乏完善的质量评估体系和多维度的对比分析功能。同时,现有工具对多编程语言的支持不够完善,不同模型和提示策略的效果难以进行统一对比,无法满足课程设计和毕业设计场景下的实验需求。针对上述问题,本课题开发了基于 FastAPI 的测试用例生成及分析平台,实现了测试用例生成、质量评估、结果对比与研究结论聚合的全流程自动化。
本课题的研究具有重要的实际应用价值和学术实践价值。在实际应用方面,平台支持 Java、Python、C++ 三种主流编程语言,集成了 Gemini 3.0、GPT-4.0、Claude 3.5、Qwen 四款主流大语言模型,提供零样本、少样本、模块化及自定义四种提示策略。平台构建的多维度质量评估体系能够对生成的用例进行量化评估,并支持不同模型和策略的效果对比。该平台能够帮助中小型开发团队快速生成高质量的测试用例,降低测试成本,提升测试效率。在学术实践方面,本课题验证了大语言模型在软件测试领域的落地可行性,探索了 FastAPI 框架在 AI 辅助开发平台中的应用模式。通过开展实证研究,分析了不同编程语言、不同模型和不同提示策略对测试用例生成质量的影响,得出了具有实际指导意义的结论。同时,本课题完成了从需求分析、系统设计、代码实现到实验验证的全流程开发,巩固了计算机专业的核心知识,提升了工程实践能力。
1.2 国内外研究现状
在国外,大语言模型辅助测试用例生成的研究起步较早。OpenAI 公司推出的 GPT 系列模型在代码生成领域表现突出,相关研究表明,GPT-4.0 模型能够生成符合规范的单元测试用例,其生成质量在部分场景下已接近人工水平。Google 公司的 Gemini 系列模型同样具备强大的代码理解能力,能够支持多种编程语言的测试用例生成。此外,一些商业公司也推出了基于大语言模型的测试工具,如 GitHub Copilot、Sourcery 等,这些工具能够集成到开发环境中,为开发人员提供实时的测试用例生成支持。
国内在该领域的研究也取得了显著进展。阿里巴巴的通义千问、百度的文心一言、字节跳动的豆包等国产大语言模型在代码生成能力上不断提升,逐渐应用于软件测试领域。国内高校和科研机构也开展了相关研究,探索了提示工程优化、质量评估体系构建等关键技术。例如,清华大学的研究团队提出了基于代码结构的提示词设计方法,有效提升了测试用例的生成质量。然而,国内的相关研究大多集中在单一模型或单一编程语言的测试用例生成上,缺乏集生成、评估、对比、研究于一体的综合性平台。
综合来看,现有研究和产品在大语言模型测试用例生成方面取得了一定的成果,但仍存在以下不足:一是对多编程语言的支持不够完善,多数工具仅能支持 Python 一种语言;二是提示策略单一,缺乏对不同提示策略效果的系统对比;三是质量评估体系不完善,多数工具仅能进行简单的语法检查,无法对用例的覆盖度和有效性进行量化评估;四是缺乏一体化的研究分析功能,无法满足科研和教学场景下的实验需求。本课题针对上述不足,开发了集多语言支持、多模型对比、多提示策略、多维度评估于一体的测试用例生成及分析平台。
下述表1-1对比了国内外主流测试用例生成工具的功能特性,明确了本课题的研究切入点。
表1-2 国内外主流测试用例生成工具对比表
工具名称 | 支持语言 | 多模型支持 | 质量评估 | 对比分析 | 研究功能 |
GitHub Copilot | 多种 | 否 | 无 | 无 | 无 |
Sourcery | Python | 否 | 语法检查 | 无 | 无 |
通义灵码 | 多种 | 否 | 简单评估 | 无 | 无 |
本平台 | Java/Python/C++ | 是 | 多维度评估 | 是 | 是 |
2.4 数据集与实验环境
2.4.1 实验数据集
平台实验数据集来源于公开代码集,包括 HumanEvalX、Kaggle 与 GitHub 开源项目,选取 Java、Python、C++ 三种语言的典型函数。数据集覆盖简单逻辑、条件分支、循环结构、异常处理等常见场景,保证实验结果具有代表性。数据集用于测试用例生成、质量评估、模型对比与策略验证,可复现、可替换,满足实验严谨性要求。
2.4.2 实验环境
硬件环境以普通个人计算机为主,无需高性能 GPU,符合毕业设计硬件条件。软件环境使用 Python 3.12、Node.js 18 及以上版本,依赖库通过配置文件统一管理,环境搭建步骤简单、可复现。平台前后端分离运行,后端启动后提供 API 服务,前端通过网络请求完成交互,本地运行即可完成全部实验。
3.2.1 系统架构设计
平台采用前后端分离的三层架构,由前端展示层、后端服务层和数据层组成,各层之间通过 RESTful API 进行通信,数据格式统一采用 JSON。
前端展示层基于 Vue 3 + TypeScript 构建,负责用户界面渲染、交互逻辑处理和状态管理。该层通过浏览器端的 fetch API 调用后端接口,所有请求自动注入 Bearer Token 进行身份认证。前端按业务模块划分为代码输入、参数配置与生成、单实验结果与导出、研究结论、数据管理五个核心视图,使用 ECharts 实现数据可视化,jsPDF 实现 PDF 导出。
后端服务层基于 FastAPI 框架构建,负责业务逻辑处理、LLM 调用和数据持久化。该层通过 api_router 汇总所有接口路由,使用 Pydantic 进行请求参数校验和响应序列化,统一通过 ResponseEnvelope 封装返回数据。核心服务包括认证服务、代码输入服务、AST 解析服务、提示词构建服务、LLM 网关服务、评估服务、实验管理服务、研究结论服务和导出服务。后端通过 httpx 客户端与外部 LLM API 通信,统一由 LLM 网关路由到对应的 Provider。
数据层采用 SQLite 作为持久化存储,存储用户信息、解析源码记录和实验运行记录。实验详情数据同时以 JSON 文件形式持久化到 outputs 目录,便于离线查看和批量脚本读取。前后端之间通过 HTTP 协议通信,请求和响应均采用 JSON 格式,接口前缀统一为 /api/v1。
5.1.2 代码输入与 AST 解析功能展示
用户在"代码输入"页面选择编程语言(Java/Python/C++),在代码文本框中粘贴源码或点击"上传文件"按钮选择本地代码文件。提交后系统自动执行代码规范化,并在页面下方展示 AST 解析结果,包括解析摘要(如"parsed 5 symbols: 2 functions, 1 classes, 0 methods, 2 branches")和符号列表(显示符号名称、类型和行号)。解析后的源码和符号信息自动保存,供后续参数配置使用。
图 5-2 代码输入与 AST 解析结果截图
5.1.3 参数配置与测试用例生成功能展示
用户在"参数配置与生成"页面依次选择目标源码、LLM 模型、提示策略和评估指标。选择完成后点击"预览提示词"按钮,页面展示根据当前配置动态生成的提示词内容,用户可直接在文本框中编辑修改。确认配置后点击"执行生成"按钮,系统调用 LLM 生成测试用例。生成完成后页面展示 test_case_code 和 unit_test_code 两个代码区域,支持在线查看和一键复制。
图 5-3 参数配置与提示词预览截图
图 5-4 测试用例生成结果截图
5.1.4 结果展示与导出功能展示
在"单实验结果与导出"页面,用户输入实验 ID 查询实验结果。页面展示实验基本信息和评估指标评分的 ECharts 柱状图,直观呈现各指标得分。模型对比功能展示同一源码在不同模型下的生成结果对比,包括各指标评分和综合均分的排名。导出功能支持三种格式:JSON 格式导出完整的实验记录数据,CSV 格式导出结构化的指标评分表格,PDF 格式导出排版美观的实验报告文档。
图 5-5 质量评估指标柱状图
图 5-6 模型对比结果截图
.1.5 研究结论与数据管理功能展示
在"研究结论"页面,用户可设置时间范围筛选实验数据,点击"刷新"按钮后页面展示三个维度的聚合统计图表:按语言聚合的指标均值柱状图、按模型聚合的指标均值柱状图、按策略聚合的指标均值柱状图。每个图表下方展示综合均分和样本数量,页面底部展示自动生成的结论摘要。
在"数据管理"页面,用户可分页浏览实验历史和源码历史记录,支持按关键字搜索源码。每条记录提供编辑和删除操作按钮,删除操作需确认后执行。
图 5-7 研究结论-按语言聚合统计折线图
图 5-8 研究结论-按模型聚合统计折线图
图 5-9 研究结论-按策略聚合统计折线图
图 5-10 数据管理页面截图