[任务] 调研基于 Qlean 的系统级集成测试开发流程与落地可行性
[任务分值] 25 分
[背景描述]
随着系统复杂度提升,传统的集成测试方式(进程级测试、Docker 容器测试)逐渐暴露出以下问题:
- 隔离级别不足
- 多个测试共享宿主机环境
- 易受端口、文件系统、进程残留影响
- 测试之间存在隐性耦合,容易产生 flaky tests
- 系统级行为难以验证
- 某些组件(如构建客户端、守护进程、文件系统交互、网络服务):
- 依赖真实 OS 行为
- 需要特权能力(mount / namespace / network)
- 使用容器或 mock 难以真实覆盖这些场景
- 需要一种更强隔离的集成测试方案
- qlean 提供基于 完整虚拟机隔离 的测试能力
- 底层依赖
- 理论上可为 Rust 项目提供:
[需求描述]
1. 调研 qlean 的整体测试模型与工作流
理解使用 qlean 编写一个集成测试所需的完整步骤。
需明确的问题包括:
-
qlean 的核心概念:
- 测试生命周期(VM 启动 / 执行 / 销毁)
- 宿主与虚拟机的职责边界
-
一个最小集成测试包含哪些要素:
2. 调研 VM 构建与测试环境准备成本
目标:
评估引入 qlean 的工程成本与维护复杂度。
需调研内容:
- VM 镜像如何制作与维护
- 镜像是否需要频繁更新
- 被测 Rust 二进制如何注入 VM:
- 测试执行耗时预期
3. 调研 CI / 本地开发环境的可行性
目标:
判断 qlean 是否适合在 CI 和开发者本地使用。
需确认:
- CI 是否需要:
- 无 KVM 场景下是否可 fallback
- 对开发者机器的要求与限制
4. 明确适用场景与不适用场景
目标:
给出清晰的使用建议,避免滥用。
需要输出:
- 适合使用 qlean 的测试类型
- system / e2e / daemon / agent
- 不建议使用 qlean 的测试
- 与 Docker / 进程级测试的对比结论
5. 本调研任务应至少产出:
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide;
- 所有 PR 提交必须通过
GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
- 代码注释均需要使用英文;
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
[任务] 调研基于 Qlean 的系统级集成测试开发流程与落地可行性
[任务分值] 25 分
[背景描述]
随着系统复杂度提升,传统的集成测试方式(进程级测试、Docker 容器测试)逐渐暴露出以下问题:
[需求描述]
1. 调研 qlean 的整体测试模型与工作流
理解使用 qlean 编写一个集成测试所需的完整步骤。
需明确的问题包括:
qlean 的核心概念:
一个最小集成测试包含哪些要素:
2. 调研 VM 构建与测试环境准备成本
目标:
评估引入 qlean 的工程成本与维护复杂度。
需调研内容:
3. 调研 CI / 本地开发环境的可行性
目标:
判断 qlean 是否适合在 CI 和开发者本地使用。
需确认:
4. 明确适用场景与不适用场景
目标:
给出清晰的使用建议,避免滥用。
需要输出:
5. 本调研任务应至少产出:
一份书面结论(README / RFC / Wiki),包含:
明确结论:
[代码标准]
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide;GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果;[PR 提交地址] 提交到 mega 仓库的
main分支 `` 目录;[开发指导]
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在
#p-meta频道和导师交流。[备注]