# openEuler RISC-V 24.03 LTS 合入主线测试准备阶段
**Repository Path**: yunxiangluo/openEuler-RISCV-2403LTS-Pretest
## Basic Information
- **Project Name**: openEuler RISC-V 24.03 LTS 合入主线测试准备阶段
- **Description**: openEuler-RISCV-2403LTS-Pretest
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-12-27
- **Last Updated**: 2025-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

版权所有 © 2023 openEuler 社区
您对“本文档”的复制、使用、修改及分发受知识共享 (Creative Commons) 署名—相同方式共享 4.0 国际公共许可协议 (以下简称“CC BY-SA
4.0”) 的约束。为了方便用户理解,您可以通过访问了解 CC BY-SA 4.0 的概要 (但不是替代)。CC BY-SA
4.0 的完整协议内容您可以访问如下网址获取:。
修订记录
| 日期 | 修订版本 | 修改 章节 | 修改描述 | 作者 |
|------------|----------|------------|----------|---------|
| 2023-12-28 | 1.0.0 | | 初稿 | KevinMX |
| | | | | |
目 录
1 概述
> 1.1 版本背景
> 1.2 需求范围
2 风险
3 测试分层策略
4 测试分析设计策略
> 4.1 继承 feature/组件测试设计策略
> 4.2 专项测试策略
5 测试执行策略
6 附件
**Keywords 关键词**:
openEuler RISC-V LTS 测试策略
Abstract 摘要:
本文是 openEuler 24.03 LTS RISC-V 版本的整体测试策略,用于指导该版本测试活动的开展。
缩略语清单:
| 缩略语 | 英文全名 | 中文解释 |
|--------|--------------------------------------|------------|
| CVE | Common Vulnerabilities and Exposures | 公共漏洞和暴露 |
| LTS | Long time support | 长时间维护 |
| OS | Operation System | 操作系统 |
# 概述
openEuler 是一款开源操作系统。当前 openEuler 内核源于 Linux,支持鲲鹏、RISC-V 及其它多种架构处理器,能够充分释放计算芯片的潜能,是面向全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等应用场景。
本文主要描述 openEuler 24.03 RISC-V 版本的总体测试策略。其按照社区开发模式进行运作,结合社区 release-manager 团队制定的版本计划规划相应的测试活动。整体测试策略覆盖需求、继承需求的测试分析与执行,明确各个测试周期的测试策略及出入口标准,并指导后续测试活动。
## 版本背景
- openEuler 24.03 RISC-V 版本已于 2023.10 发布
- openEuler 24.03 RISC-V LTS 版本发布
- 本次发布范围为 BaseOS 仓库
- 内核版本:Linux kernel 6.6
## 需求范围
本次发布的 openEuler 24.03 RISC-V 版本为 RISC-V 第一个正式发布的 LTS 版本。
BaseOS 软件包发布范围见:[BaseOS List]()
# 风险
| 问题类型 | 问题描述 | 问题等级 | 应对措施 | 责任人 | 状态 |
|----------|----------|----------|----------|--------|------|
| | | | | | |
# 测试分层策略
| 需求 | 开发主体 | 测试主体 | 测试分层策略 |
|------|----------|----------|--------------|
| | | | |
# 测试分析设计策略
## 继承 feature/组件测试设计策略
从历史版本继承的功能特性的测试策略如下:
从老版本继承的功能特性的测试策略如下:
| Feature/组件 | 策略 |
|-----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **内核** | 适配内核到 Linux kernel 6.6,继承已有测试能力,采用开源测试套 LTP/mmtest 等进行内核基本功能的测试保障;通过开源性能测试工具对内核性能进行验证 |
| **操作系统基础底座 (BaseOS)** | 继承已有测试能力,通过 mugen 自动化测试对发布范围内所有软件包进行验证 |
| **容器**(isula/docker/安全容器/系统容器/镜像) | 继承已有测试能力,重点关注本次容器领域相关软件包升级后,容器引擎原有功能完整性和有效性,需覆盖 isula、docker 两个引擎;分别验证安全容器、系统容器和普通容器场景下基本功能验证;另外需要对发布的 openEuler 容器镜像进行基本的使用验证 |
| **编译器**(gcc/jdk) | 继承已有测试能力,基于开源测试套对 gcc 和 jdk 相关功能进行验证 |
| **安装部署** | 继承已有测试能力,覆盖开发板/虚机场景 |
| **xfce** | 继承已有测试能力,重点关注 xfce 桌面的可安装性和提供组件的能力 |
## 专项测试策略
### 安全测试
| 测试内容 | 策略/说明 |
|---------------------|----------------------------------------------------------|
| syzkaller | fuzz 48~72h(由于 QEMU 转译效率原因,fuzz 速度较慢) |
| nmap | 对虚机/开发板进行端口扫描,确保不存在非必要的端口开放 |
| mugen/security_test | 执行 mugen/security_test 测试套 |
### 可靠性测试
可靠性测试是本次版本测试中重点考虑的测试活动,在各类资源异常、抢占竞争、压力、故障等背景下,通过功能的并发与反复操作进行长时间的测试;过程中通过监控系统资源、进程运行等状态,及时发现系统和特性隐藏的问题并解决。
本次可靠性测试从关键特性、重要组件、新增特性的可靠性指标和系统级可靠性进行分析和设计,以保证特性和系统在各类异常、故障及压力背景下的持续提供服务的能力。
| 测试类型 | 具体测试内容 |
|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| 操作系统长稳 | 基于 QEMU 的系统在各种压力背景下,通过构造资源类和服务类等异常,随机执行 LTP、系统管理操作等测试;过程中关注系统重要进程和服务,日志等异常情况;稳定性测试时长充分 |
### 性能测试
性能测试是针对交付件的具体性能指标,利用工具进行各类性能指标的测试。openEuler SP 版本是 LTS 版本的补丁版本,所以在操作系统基本 benchmark 各类指标上需要和 LTS 版本保持一致,性能数据波动需小于 5%;特性类的性能,需要按照各个特性既定的指标,进行时间效率、资源消耗底噪等方面的测试验证,保证指标项与既定目标的一致。
openEuler 24.03 RISC-V 版本为首次 LTS 发布,本次性能测试结果将作为后续版本的性能基线。
| **指标大项** | **指标小项** | **指标值** | **说明** |
|-------------|---------------------------------------------------------------------------------|------------------------|-------------------------------------|
| **OS 基础性能** | 进程调度子系统,内存管理子系统、进程通信子系统、系统调用、锁性能、文件子系统、网络子系统。 | 参考 LTS 版本相应指标基线 | 与 LTS 基线数据差异小于 5% 以内可接受 |
### 兼容性测试
#### 南向兼容性
南向兼容性测试覆盖 QEMU 虚机和硬件开发板两部分,其中硬件开发板信息如下:
| 型号 | 硬件配置信息 | 备注 |
|-----------------------------|------------------------------------------------------|----------------|
| AllWinner D1 Nezha LicheeRV | AllWinner D1, 1*C906 @ 1GHz, 1GB DDR3 | WiFi+BT+RJ45 |
| Sipeed LicheeRV D1 | AllWinner D1, 1*C906 @ 1GHz, 512MB DDR3 | WiFi+BT |
| Sipeed LicheePi 4A | THead TH1520, 4*C910 @ 2GHz, 8/16GB LPDDR4X-3733 | WiFi+BT+2*RJ45 |
| StarFive VisionFive | StarFive JH7100, 2*U74 @ 1GHz, 8GB LPDDR4 | WiFi+BT+RJ45 |
| StarFive VisionFive 2 | StarFive JH7110, 4*U74 @ 1.5GHz, 4GB LPDDR4 | 2*RJ45 |
| HiFive Unmatched | SiFive Freedom U740, 4*U74 @ 1.2GHz, 16GB DDR4-1866 | RJ45 |
| SG2042 (Milk-V Pioneer) | Sophon SG2042, 64*C910 @ 2GHz, 128GB DDR4-3200 RDIMM | 2*RJ45 |
硬件兼容性测试项:供电接口、USB 接口、视频输出(HDMI)、RJ45 以太网、WiFi、蓝牙。
### 软件包管理专项测试
- 检查发布软件包依赖情况
- 检查发布软件包安装情况与冲突情况
### 资料测试
资料测试主要是对版本交付的资料进行测试,重点保证各个资料描述的清晰性和功能的正确性,此外,openEuler 作为一个开源社区,在对提供的中文资料进行测试外,也对英文文档进行了重点测试。资料交付清单如下:
| 手册名称 | 覆盖策略 | 中英文测试策略 |
|--------|--------------------------|-----------|
| 安装指南 | 文档描述与版本的行为是否一致 | 英文描述的准确性 |
| 管理员指南 | 文档描述与版本的行为是否一致 | 英文描述的准确性 |
### 取消的测试项目
安全测试
- oss-fuzz:安装部署依赖的 Docker 镜像缺少 riscv64 架构适配
虚拟化测试
- 目前没有支持 H 扩展的硬件设备,目前只有 QEMU 支持,效率过低
接口测试
- 已包含在 CI 内
兼容性测试
- 北向兼容性测试 oecp/oec-application:未适配 riscv64
- 南向兼容性 oec-hardware/oech-ci:未适配 riscv64
# 测试执行策略
openEuler 24.03 RISC-V 版本按照社区 release-manger 团队既定的版本计划,共有 5 轮测试,按照社区研发模式,所有的需求已在拉分支前完成合入,因此本次版本测试采取 1+3+1 的测试方式,即 Round 1 发布的 beta 版本可提供外部开发者基本功能及测试条件,Round 2~4 全量保障本次版本发布所有特性 (新增&继承) 以及其他 DFX 能力,Round 5 进行回归测试。
### 测试计划
openEuler 24.03 RISC-V 版本按照社区开发模式进行运作,结合社区 release-manager 团队制定的版本计划规划相应的测试活动。
| 测试阶段 | 起始时间 | 结束时间 | Days | Note |
|--------------|----------|----------|------|--------------|
| Test round 1 | | | 5 | 版本启动测试 |
### 测试重点
### Round 1
- 功能测试
- mugen
- LTP
- 编译器测试
- AnghaBench
- csmith
- dejagnu
- yarpgen
- 内核测试
- trinity
- mmtest
### Round 2
- 功能测试
- mugen
- 长稳测试
- LTP Stress
### Round 3
- 功能测试
- mugen
- 长稳测试
- LTP Stress
- 文档测试
- 对已提供的安装文档和部分操作文档进行验证
- 问题单回归
### Round 4
- 功能测试
- mugen
- 问题单回归
- 长稳测试
- LTP Stress
- 文档测试
- 对已提供的安装文档和部分操作文档进行验证
### Round 5
- 功能测试
- mugen
- 问题单全量回归
- 文档测试
- 对已提供的安装文档和部分操作文档进行验证
### 入口标准
1. 上个阶段无 block 问题遗留。
2. 转测版本的冒烟无阻塞性问题。
3. 满足各阶段版本转测检查项。
### 出口标准
1. 策略规划的测试活动涉及的测试用例已执行完毕。
2. 发布特性满足版本规划目标。
3. 版本无阻塞问题遗留,其它严重问题有相应规避措施或说明。
# 附件