[T.15] 团队项目:Beta 阶段测试报告

项目 内容
这个作业属于哪个课程 2025年春季软件工程(罗杰、任健)
这个作业的要求在哪里 [T.15] 团队项目:Beta 阶段测试报告
我在这个课程的目标是 学习软件工程的基础知识,和团队成员们实践各种软件工程的方法与流程,开发一个让我们值得骄傲的项目
这个作业在哪个具体方面帮助我实现目标 Beta 阶段测试报告

一、测试计划

  1. 目标

    • 验证核心功能稳定性与正确性
    • 覆盖典型业务场景(B 端+ C 端)
    • 保证多租户、Pipeline、LLM 调用等关键模块无阻碍
    • 收集并修复 Beta 发布前的主要缺陷
  2. 范围

    • 功能测试:文档上传/检索、Pipeline 配置、LLM 问答、权限控制
    • 兼容性测试:多操作系统、多浏览器、多硬件配置
    • 性能测试:并发检索吞吐、LLM 并发调用时延
    • 安全测试:多租户隔离与权限边界
  3. 资源与角色

    • 测试负责人:吴佳峻
    • 支撑人员:后端开发(范兴堃)、前端开发(叶佩霖)
  4. 时间安排

    阶段 时间 产出
    测试准备 2025/05/20–05/22 测试计划、测试环境搭建
    功能 & 兼容性 2025/05/23–05/28 测试用例执行
    性能 & 安全 2025/05/29–06/02 性能报告、安全验证
    缺陷修复回归 2025/06/03–06/07 回归测试报告
    总结与验收 2025/06/08–06/10 测试总结、出口评估

二、测试环境与矩阵

维度 取值
操作系统 Windows 10/11macOS 12Ubuntu 20.04
硬件配置 CPU i5-9600/AMD Ryzen 5内存 16–32 GB
浏览器 Chrome 113、Firefox 102、Safari 15
后端环境 Docker Compose (PostgreSQL、Qdrant、FastAPI)8 vCPU + 32 GB RAM

备注:所有环境均在有线网络(100 Mbps 以上)下测试。

三、测试过程与方法

用例设计

  • 场景测试 (Scenario Testing)
    • B 端管理员:私有化部署 → 上传内网文档 → 配置多租户权限 → 流水线问答
    • B 端终端用户:在限定权限下执行问答 → 验证权限边界
    • C 端学习者:上传 PDF → 自助配置默认 Pipeline → 一键问答 → 收藏与分享
  • 边界值 & 异常场景
    • 非法文件格式上传、超大文件上传、网络中断重连
    • 并发 50+ 请求、LLM 超时重试

执行方式

  • 手工执行关键功能测试、兼容性测试
  • 自动化脚本(Postman + pytest)跑回归用例
  • JMeter 并发压测 LLM 服务

Apifox 自动化测试

  • 在 Apifox 中,基于 OpenAPI/Swagger 文档一键导入全部接口定义,生成统一的测试集合(Collection)。

  • 为每个功能模块(文档上传、向量检索、Pipeline 执行、LLM 调用等)编写了 >100 条断言丰富的接口用例,包括状态码、响应字段、Schema 校验、性能阈值等。

  • 在本地与 CI 环境中均通过 Apifox CLI 执行:

    apifox run --project-id=<PID> --collection-id=<CID> --report report.json
    
  • 结合 pytest 进行二次封装,实现了接口返回内容与数据库状态联动校验,覆盖了典型正、异常、边界场景。

Apifox 压力测试

  • 针对文档检索与 LLM 调用两大核心接口,使用 Apifox 的「压力测试(Load Testing)」功能:
    • 并发配置:模拟 50、100、200 并发用户,持续 5 分钟;
    • Ramp-up 设置:在 60 秒内平滑增加至目标并发;
    • 断言:90% 响应时间 ≤ 500ms,错误率 ≤ 1%;
    • 报告:生成柱状响应时延分布、TPS 曲线、错误明细等。
  • 结果表明,200 并发下检索接口平均时延 320ms,错误率 0.8%,满足 SLAs。

Apifox 定时测试

  • 在 Apifox 云平台创建 每日凌晨 2:00 定时执行任务:
    • 自动运行全量自动化用例集;
    • 输出 HTML 和 JSON 格式测试报告,并通过飞书机器人推送结果摘要;
    • 若失败用例 ≥ 1,则立即告警至相关开发者群。
  • 持续监测关键接口稳定性,确保线上环境在任意时刻均在可控状态。

与 CI/CD 集成

  • 在 GitHub Actions 中集成 Apifox 测试步骤:

    - name: Run Apifox Tests
      run: apifox run --project-id=$PID --collection-id=$CID --report report.json
    - name: Upload Report
      uses: actions/upload-artifact@v3
      with:
        name: apifox-report
        path: report.json
    
  • 每次 PR 合并 main 分支即触发全量接口回归与快速压测,未通过时报红并阻止发布。

缺陷管理

  • 所有 Bug 记录于 GitHub Issues,标记 Severity 和 Priority

  • 测试中发现 28 个缺陷,全部在 Beta 发布前完成验证与关闭

四、测试结果

  1. Bug 概况

    • 共发现缺陷 28 条
      • Critical:2 (并发下检索超时、权限绕过)
      • Major:8 (中文 PDF 解析失败、Pipeline 顺序异常)
      • Minor:18 (UI 文本溢出、按钮样式错位等)
    • Issue 记录率:100%修复率:100%
  2. 性能指标

    • 并发检索吞吐:≥ 120 req/s(90% 响应 < 300 ms)
    • LLM 并发调用:支持 ≥ 20 并发,平均时延 1.2 s
  3. 覆盖率

    • 自动化用例:220 条
    • 代码覆盖率:82%(主干组件 > 90%)
  4. 场景测试通过率

    场景 用例数 通过 通过率
    B 端管理员 40 40 100%
    B 端终端用户 35 33 94%
    C 端学习者 45 45 100%
    异常 & 边界场景 30 28 93%

五、Beta 版本出口条件(Exit Criteria)

  1. 缺陷要求
    • 无未修复的 Critical 缺陷
    • Major 缺陷 ≤ 2 且不影响主要业务
  2. 用例通过率 ≥ 95%
  3. 性能达标:并发吞吐 + 时延满足 SLAs
  4. 安全验证:多租户隔离、权限管控无绕过
  5. 文档完善:用户安装指南、API 文档、常见问题俱全

六、经验与后续建议

  • 文档早规划:测试初期即生成“快速上手”与“故障排查”文档,减少测试与运维沟通成本。
  • 场景驱动:场景测试覆盖真实用户流程,比单纯功能测试更能提前暴露集成问题。
  • 持续集成:自动化测试与 CI/CD 深度结合,实现“提交即测”,质量反馈更及时。
  • 性能监控:Beta 发布后上线 Prometheus + Grafana 监控面板,实时跟踪系统健康度。

结语
本次 Beta 测试覆盖了 RAGnarok 的主要功能与典型场景,所有关键缺陷均已修复,性能与兼容性达标。

posted @ 2025-06-11 17:01  Dvorag  阅读(36)  评论(0)    收藏  举报