# ruyiSDK Test **Repository Path**: Paged/ruyisdk-test ## Basic Information - **Project Name**: ruyiSDK Test - **Description**: ruyiSDK Test - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-01-19 - **Last Updated**: 2024-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuyiSDK 测试策略和测试报告(2024.1.16 - ) 修订记录 | 日期 | 修订版本 | 修改 章节 | 修改描述 | 作者 | | --------- | ----- | ------ | ---- | --------------- | | 2024-01-16 | 1.0.0 | | 初稿 v0.3 | PLCT Lab 第三测试小队 | | 2024-02-05 | 1.0.1 | | v0.4 | PLCT Lab 第三测试小队 | | 2024-03-05 | 1.0.2 | | v0.5 | PLCT Lab 第三测试小队 | | 2024-03-19 | 1.0.3 | | v0.6 | PLCT Lab 第三测试小队 | | 2024-04-02 | 1.0.4 | | v0.7 | PLCT Lab 第三测试小队 | | 2024-04-16 | 1.0.5 | | v0.8 | PLCT Lab 第三测试小队 | 目 录 1. 概述 2. 测试策略 3. 两周迭代版本的敏捷测试 4. 里程碑版本的测试 5. 测试资源 **测试报告列表** 1. [20240116 v0.3 敏捷双周开发版本测试报告](./20240116/) 2. [20240130 v0.4 敏捷双周开发版本测试报告](./20240130/) 3. [20240224 v0.5 敏捷双周开发版本测试报告](./20240224/) 4. [20240312 v0.6 敏捷双周开发版本测试报告](./20240312/) 5. [20240326 v0.7 敏捷双周开发版本测试报告](./20240327/) 6. [20240408 v0.8 敏捷双周开发版本测试报告](./20240408/) ## 1. 概述 如意SDK旨在为 RISC-V 开发者提供一个一体化集成开发环境。为普通 RISC-V 用户提供相同的开发流程,让用户可以在不同的开源工具和制造商定制的工具链之间轻松切换。对于用户购买到的任何一款如意 SDK支持的 RISC-V 开发板或模组,都可通过如意 SDK 系统获得硬件资料说明、固件和软件更新、系统性开发环境支持、软硬件调试支持。开发者可以轻松获取任何常用的 RISC-V 扩展指令集架构组合的系统软件支持,通过如意 SDK 系统便捷地生成客户所需的操作系统、工具链、语言执行环境(运行时或虚拟机)、计算库和应用框架。如意SDK支持和持续维护 RISC-V Vector 0.7.1和 RVP 0.5.2 等已经大规模硅化的草案标准和一些厂商定制扩展。 如意 SDK V1.0主要聚焦 RuyiSDK 基础框架的实现与主体环节的打通,发布内容主要包含6个方面。 1. Toolchain:GNU 工具链对 RISC-V 扩展指令集的多版本支持和系统适配 2. Sysroot:openEuler,RevyOS 在内的2种操作系统的交叉环境和本地环境支持 3. 模拟器:整合了 Xuantie CPUs 的扩展实现,并模拟了 LicheeRV 和 LicheePi4A 的硬件环境 4. 硬件镜像:提供 Lichee RV,Lichee Pi 4A ,Milk-V Pioneer 等多平台配套镜像 5. 辅助工具:提供了自动化构建与便捷交互使用工具 6. RuyiSDK 文档:介绍了工具链,模拟器,镜像和辅助工具的构建与使用方法 详细参考: https://github.com/ruyisdk/ 和 https://github.com/ruyisdk/ruyi 根据RuyiSDK发展路线,2023年12月推出首个版本 (已通过测试按期发布),从2024年1月16日起按每两个工作周为周期,发布新开发功能,并在发布一周后给出测试报告。 ## 2. 测试策略 RuyiSDK 版本测试按照RuyiSDK团队制定的版本发布计划规划相应的测试活动,测试以用户的视角,基于[RuyiSDK 版本用户手册(同步增加)](https://ruyisdk.github.io/docs/zh/introduction/),测试检验每个功能是否能正常使用。本测试只验证Ruyi工具的使用,不涉及使用GCC、LLVM等具体工具链的使用。 ### 2.1 测试计划 每两周敏捷开发版本的测试为开发中的测试,只测试新加的功能,即完成单元测试。每个里程碑版本测试分为开发中的测试,Round1测试,缺陷修复,Round2测试四个过程,如表1。 每两周敏捷开发版本的测试为开发中的测试,测试任务包括:1. 开发新功能自动化测试用例,并提交到组内仓库;2. RuyiSDK可自动化测试部分进行全量测试,包括测试新加的功能,跳过暂未实现自动化测试的历史继承特性测试;3. 回归测试遗留缺陷; 4. 缺陷提交issue到项目repo; 5.在使用手册上添加新功能的使用方法。 表1. RuyiSDK 2周敏捷版本测试计划(每2周收到一个新的版本和简要功能描述) | 测试阶段 | 起始时间 | 结束时间 | Days | 备注 | | ------ | --------- | ---------------------- | ---- | ------ | | 敏捷测试| | | 7 | 自动化测试用例开发,新功能测试,缺陷回归测试,缺陷ISSUE提交,测试报告,使用文档添加(新功能) | * 2周发布功能点少,不影响敏捷测试进度时,可安排专门人员手工快速对新增功能点进行快速验证。 * 测试平台开发(QEMU + 开发板 + 图形化应用)开发为长线任务,在非测试周(两周中的另一周)为工作重点,安排专人(多人)负责。 * 调研工作(IDE工具、原型搭建、RISC-V开发板的操作系统适用情况)为非测试周的工作重点(职工)或每周的工作重点(不参与RuyiSDK测试和测试平台开发的实习生),每两周进行一次技术分享。 表2. RuyiSDK 里程碑版本测试计划 | 测试阶段 | 起始时间 | 结束时间 | Days | 备注 | | ------ | --------- | ---------------------- | ---- | ------ | | 开发中的测试 | | |
| 单元测试启动 | | Round1 (同步添加缺陷issue)| | | 7 | 版本启动测试 | | 缺陷修复 | | | 7 | 缺陷修复 | | Round2 | | | 7 | 发布测试 | ### 2.2 测试重点 单元测试:单元测试在RuyiSDK 开发完成前进行,协助开发人员完成开发过程中的缺陷发现和修复。 Round1 测试:RuyiSDK 开发完成后进行,根据[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/)验证功能的正确性。 Round2 测试:Round1缺陷修复后,根据[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/)验证功能的正确性。 ### 2.3 入口标准 1. 上个阶段无 block 问题遗留。 2. 转测版本的冒烟无阻塞性问题。 3. 满足各阶段版本转测检查项。 ### 2.4 出口标准 1. 策略规划的测试活动涉及的测试用例已执行完毕。 2. 发布特性满足版本规划目标。 3. 版本无阻塞问题遗留,其它严重问题有相应规避措施或说明。 ## 3. 开发中的测试 测试目的:开发中的测试在RuyiSDK 每2周敏捷开发版本或里程碑正式发布版本开发完成前进行,协助开发人员完成开发过程中的缺陷发现和修复。 测试方法:单一功能的测试(用于验证Ruyi工具的功能点),功能点参考[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/) 1. Mugen测试:根据功能点,开发mugen测试套和测试用例,验证实际输出和预期输出的一致性。 2. openQA测试:针对硬件开发板平台和GUI图像化应用使用,根据功能点,开发openQA测试程序,验证实际命令行和图形化输出和预期输出的一致性。 3. 问题单回归 正确判定标准:按照[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/),实际输出和预期输出的一致。 ## 4. 里程碑版本测试 ### 4.1 Round1 测试 测试目的:RuyiSDK 里程碑正式发布版本开发完成后进行,根据[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/)验证功能的正确性。 测试方法:基于[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/),开发mugen测试套和测试用例,自动化验证功能的正确性。 1. Mugen测试:根据功能点,开发mugen测试套和测试用例,验证实际输出和预期输出的一致性。 2. openQA测试:针对硬件开发板平台和GUI图像化应用使用,根据功能点,开发openQA测试程序,验证实际命令行和图形化输出和预期输出的一致性。(无GUI环境,此测试不用进行) 3. 问题单全量回归 4. 编译器测试(用于验证安装成功的编译环境功能和手动安装的环境功能一致,AnghaBench、csmith、dejagnu,RuyiSDK会议确认此测试不用进行)。 5. 文档测试(对安装文档和部分操作文档进行验证) 测试方法:基于[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/),开发mugen测试套和测试用例,自动化验证功能的正确性。 1. Mugen测试:根据功能点,开发mugen测试套和测试用例,验证实际输出和预期输出的一致性。 2. openQA测试:针对硬件开发板平台和GUI图像化应用使用,根据功能点,开发openQA测试程序,验证实际命令行和图形化输出和预期输出的一致性。(无GUI环境,此测试不用进行) 3. 问题单全量回归 4. 编译器测试(用于验证安装成功的编译环境功能和手动安装的环境功能一致,AnghaBench、csmith、dejagnu,RuyiSDK会议确认此测试不用进行)。 5. 文档测试(对安装文档和部分操作文档进行验证) 正确判定标准:按照[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/),实际输出和预期输出的一致。 ### 4.2 Round2 测试 测试目的:round1 测试缺陷修复后进行,根据[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/)验证功能的正确性,重点回归测试round1测试发现的缺陷。 测试方法:基于[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/),开发mugen测试套和测试用例,自动化验证功能的正确性。 1. Mugen测试:根据功能点,开发mugen测试套和测试用例,验证实际输出和预期输出的一致性。 2. openQA测试:针对硬件开发板平台和GUI图像化应用使用,根据功能点,开发openQA测试程序,验证实际命令行和图形化输出和预期输出的一致性。(无GUI环境,此测试不用进行) 3. 问题单全量回归 4. 编译器测试(用于验证安装成功的编译环境功能和手动安装的环境功能一致,AnghaBench、csmith、dejagnu,RuyiSDK会议确认此测试不用进行)。 5. 文档测试(对安装文档和部分操作文档进行验证) 正确判定标准:按照[RuyiSDK 版本用户手册](https://ruyisdk.github.io/docs/zh/introduction/),实际输出和预期输出的一致。 ## 5. 测试资源 1. [mugen-ruyi](https://gitee.com/yunxiangluo/mugen-ruyi)