已合并
【轻量级 PR】:add Test_Strategy/openEuler_24.09/openEuler 24.09 syscare支持栈检测和容器化测试策略.md. #824
linmengmengmeng创建于 2024年10月26日
【轻量级 PR】:add Test_Strategy/openEuler_24.09/openEuler 24.09 syscare支持栈检测和容器化测试策略.md. #824
已合并
从refs/pull/824/head合入到master
共 1 个文件变更+122-0
| @@ -0,0 +1,122 @@ | |||
| 1 | + | ||
| 2 | + | ||
| 3 | +版权所有 © 2024 openEuler社区 | ||
| 4 | +您对“本文档”的复制、使用、修改及分发受知识共享(Creative Commons)署名—相同方式共享4.0国际公共许可协议(以下简称“CC BY-SA | ||
| 5 | +4.0”)的约束。为了方便用户理解,您可以通过访问<https://creativecommons.org/licenses/by-sa/4.0/>了解CC BY-SA 4.0的概要 (但不是替代)。CC BY-SA | ||
| 6 | +4.0的完整协议内容您可以访问如下网址获取:<https://creativecommons.org/licenses/by-sa/4.0/legalcode>。 | ||
| 7 | + | ||
| 8 | + 修订记录 | ||
| 9 | + | ||
| 10 | +| 日期 | 修订版本 | 修改描述 | 作者 | | ||
| 11 | +| ---- | ----------- | -------- | ---- | | ||
| 12 | +| 2024-07-13 | 1.0.0 | 初稿 | 林孟孟 | | ||
| 13 | + | ||
| 14 | +关键词:syscare 栈检测 容器化 | ||
| 15 | + | ||
| 16 | +摘要:24.09版本继承22.03-LTS-SP4版本syscare功能,提供一键式集成用户态和内核态热补丁编译以及补丁生命周期管理工具,并新增栈检测功能,支持容器化。 | ||
| 17 | + | ||
| 18 | +缩略语清单: | ||
| 19 | +| 缩略语 | 英文全名 | 中文解释 | | ||
| 20 | +| ------ | -------- | -------- | | ||
| 21 | + | ||
| 22 | +# 特性描述 | ||
| 23 | +<!-- 主要介绍特性实现的背景、功能以及作用 --> | ||
| 24 | +背景:24.09版本继承22.03-LTS-SP4版本syscare功能,提供一键式集成用户态和内核态热补丁编译以及补丁生命周期管理工具,并新增栈检测功能,支持容器化。 | ||
| 25 | + | ||
| 26 | +## 需求清单 | ||
| 27 | +|no|feature|status|sig|owner|发布方式|涉及软件包列表| | ||
| 28 | +|:----|:---|:---|:--|:----|:----|:----| | ||
| 29 | +|[IAMK2Q](https://gitee.com/openeuler/release-management/issues/IAMK2Q?from=project-issue)| 【openEuler 24.09 】syscare特性增强:用户态热补丁支持栈检测 | Discussion | sig-ops | @bb-cat | ISO | syscare | | ||
| 30 | +|[IAMJYQ](https://gitee.com/openeuler/release-management/issues/IAMJYQ?from=project-issue)| 【openEuler 24.09 】syscare特性增强:用户态热补丁支持容器化制作| Discussion | sig-ops | @luanjianhai | ISO | syscare | | ||
| 31 | + | ||
| 32 | + | ||
| 33 | +# 特性分层策略 | ||
| 34 | +## 总体测试策略 | ||
| 35 | +<!-- 主要描述特性的整体测试策略,主要开展哪些测试(接口/功能/场景/专项) --> | ||
| 36 | + | ||
| 37 | +- 测试目标:新增特性主要分为两个功能:栈检测功能,支持容器化;继承特性主要包括热补丁制作与热补丁管理。在覆盖已有测试点的基础上,重点测试此次新增的栈检测功能,检查内核模块upatch_helper.ko删除之后的补丁制作和管理功能正常,包括接口正向,负向的功能测试、以及可靠性测试,并发测试,长稳测试,资料测试,安全测试。 | ||
| 38 | +- 时间进度:待评估 | ||
| 39 | +- 风险评估:NA | ||
| 40 | +- 重点事项:验证栈检测功能,支持容器化; | ||
| 41 | +- 争议事项:NA | ||
| 42 | + | ||
| 43 | +## 特性测试约束 | ||
| 44 | +<!-- 主要描述特性测试的约束条件 --> | ||
| 45 | + | ||
| 46 | +- 当前仅支持64位系统; | ||
| 47 | +- 当前仅支持ELF格式的热修复,暂不支持解释型语言; | ||
| 48 | +- 当前仅支持gcc / g++编译器; | ||
| 49 | +- 编译器需要支持-gdwarf -ffunction-sections -fdata-sections参数; | ||
| 50 | +- 仅支持DWARF格式的调试信息,且不支持g3等级; | ||
| 51 | +- 不支持修改全局变量; | ||
| 52 | +- 暂不支持交叉编译; | ||
| 53 | +- 暂不支持汇编修改; | ||
| 54 | +- 暂不支持新增外部符号(动态库依赖); | ||
| 55 | +- 暂不支持对同一个二进制打多个补丁; | ||
| 56 | +- 暂不支持补丁文件名相同,Bind为Local并且Type为STT_FUNC或STT_OBJECT完全相同的符号修改: 存在同名文件,并且局部变量和函数名称完全一致,实现可能不一致; | ||
| 57 | +- 暂不支持C & C++ 混合编译; | ||
| 58 | +- 暂不支持C++ exception修改; | ||
| 59 | +- 暂不支持group section: -g3编译选项,特定编译优化选项,特定gcc plugin等; | ||
| 60 | +- 暂不支持新增ifunc: __attribute__((ifunc("foo"))); | ||
| 61 | +- 暂不支持新增TLS变量: __thread int foo; | ||
| 62 | +- 暂不支持编译开启LTO选项。 | ||
| 63 | + | ||
| 64 | +## 接口测试 | ||
| 65 | +<!-- 主要描述接口级测试策略及测试设计思路 --> | ||
| 66 | + | ||
| 67 | +| 接口描述 | 设计思路 | 测试重点 | 备注 | | ||
| 68 | +| ------- | ------- | ------- | ---- | | ||
| 69 | +| NA | NA | NA | NA | | ||
| 70 | + | ||
| 71 | +## 功能测试 | ||
| 72 | +<!-- 主要描述特性提供的功能的测试策略及测试思路 --> | ||
| 73 | + | ||
| 74 | +| 功能描述 | 设计思路 | 测试重点 | 备注 | | ||
| 75 | +| ------- | ------- | ------- | ---- | | ||
| 76 | +| 覆盖接口正常,异常测试。包括syscare build热补丁制作接口, syscare管理热补丁接口 | | | | | ||
| 77 | +| 覆盖用户态,内核态的热补丁制作测试。内核态覆盖内核和内核模块,用户态主要覆盖redis,nginx,openvswicth,openssl,glibc,重点测试补丁依赖,累积补丁等场景。 | | | | ||
| 78 | +| 覆盖补丁管理流程测试,重点测试冲突检测,补丁覆盖,补丁状态保存与恢复等场景。 | | | | ||
| 79 | +| 覆盖新增栈检测功能,检查进程在栈中运行时,补丁激活失败,进程出栈之后,补丁激活成功。 | | | | ||
| 80 | +| 覆盖支持容器化功能,检查内核模块upatch_helper.ko删除之后的补丁制作和管理功能正常。 | | | | | ||
| 81 | + | ||
| 82 | +## 场景测试 | ||
| 83 | +<!-- 主要描述对特性使用的主要场景的测试策略及测试思路 --> | ||
| 84 | + | ||
| 85 | +参考功能场景 | ||
| 86 | + | ||
| 87 | +## 专项测试 | ||
| 88 | +<!-- 主要描述其他专项测试,如安全测试 稳定性测试 性能测试 兼容性测试等 --> | ||
| 89 | + | ||
| 90 | +| 专项测试类型 | 专项测试描述 | 测试预期结果 | 备注 | | ||
| 91 | +| ----------- | ----------- | ----------- | ---- | | ||
| 92 | +| 可靠性测试 | 热补丁制作和管理操作期间,构造CPU,内存高负载 | | | | ||
| 93 | +| 可靠性测试 | 构造虚拟机异常重启,异常断电 | | | | ||
| 94 | +| 可靠性测试 | 构造热补丁制作和管理期间,临时补丁文件和补丁状态等关键文件被篡改 | | | | ||
| 95 | +| 并发长稳测试 | 并发起syscare-build,并穿插syscare一系列管理操作 | | | | ||
| 96 | +| 并发长稳测试 | 在syscare的管理流程并发执行背景下,不断执行kill syscare操作,不定期重启syscare服务 | | | | ||
| 97 | + | ||
| 98 | +# 特性测试环境描述 | ||
| 99 | +<!-- 主要描述执行测试的硬件信息 --> | ||
| 100 | +不涉及特殊硬件 | ||
| 101 | + | ||
| 102 | +| 硬件型号 | 硬件配置信息 | 备注 | | ||
| 103 | +| -------- | ------------ | ---- | | ||
| 104 | + | ||
| 105 | +# 特性测试执行策略 | ||
| 106 | + | ||
| 107 | +## 测试计划 | ||
| 108 | +<!-- 测试执行策略主要描述该轮次执行的分层策略中的测试项 --> | ||
| 109 | + | ||
| 110 | +| Stange name | Begin time | End time | Days | 测试执行策略 | 备注 | | ||
| 111 | +| :------------ | :--------- | :--------- | ---- | ----------------------------- | ------ | | ||
| 112 | +| round3-round4 | 2024/8/29 |2024/9/11 | 12| 全量测试 | | | ||
| 113 | +| round5 | 2024/9/12 | 2024/9/18 |7 | 回归测试+长稳测试 | | | ||
| 114 | + | ||
| 115 | +# 入口标准 | ||
| 116 | +1.特性满足质量标准,达成需求设计要求目标 | ||
| 117 | + | ||
| 118 | +# 出口标准 | ||
| 119 | +1.策略规划的测试活动涉及测试用例100%执行完毕 | ||
| 120 | +2.版本无严重问题遗留,其他问题有规避措施 | ||
| 121 | + | ||
| 122 | +# 附件 | ||