diff --git "a/Test_Result/openGauss_7.0.0_RC1/\345\205\274\345\256\271\346\200\247/gms_assert\351\253\230\347\272\247\345\214\205\346\265\213\350\257\225\346\212\245\345\221\212.md" "b/Test_Result/openGauss_7.0.0_RC1/\345\205\274\345\256\271\346\200\247/gms_assert\351\253\230\347\272\247\345\214\205\346\265\213\350\257\225\346\212\245\345\221\212.md" new file mode 100644 index 0000000000000000000000000000000000000000..d412acca3608e4255fc245984f18ff6eb01db89a --- /dev/null +++ "b/Test_Result/openGauss_7.0.0_RC1/\345\205\274\345\256\271\346\200\247/gms_assert\351\253\230\347\272\247\345\214\205\346\265\213\350\257\225\346\212\245\345\221\212.md" @@ -0,0 +1,242 @@ + + +版权所有 © 2024 openGauss社区 + 您对“本文档”的复制、使用、修改及分发受知识共享(Creative Commons)署名—相同方式共享4.0国际公共许可协议(以下简称“CC BY-SA 4.0”)的约束。为了方便用户理解,您可以通过访问[*https://creativecommons.org/licenses/by-sa/4.0/*](https://creativecommons.org/licenses/by-sa/4.0/) 了解CC BY-SA 4.0的概要 (但不是替代)。CC BY-SA 4.0的完整协议内容您可以访问如下网址获取:[*https://creativecommons.org/licenses/by-sa/4.0/legalcode*](https://creativecommons.org/licenses/by-sa/4.0/legalcode)。 + +修订记录 + +| 日期 | 修订版本 | 修改描述 | 作者 | +| ------------- | -------- | ------------------------------ | ---- | +| 2025年2月28日 | V1.0 | 新建 | 宋菲 | +| 20253月17日 | V2.0 | 验收问题,修改测试报告问题状态 | 宋菲 | + +[TOC] + +**Keywords 关键词**:插件、GMS_ASSERT、防止SQL注入 + +**Abstract 摘要**: + +​ 需求内容为[支持GMS_ASSERT 高级包](https://e.gitee.com/opengaussorg/projects/676554/requirements/table?issue=IBD6SV ),本次从功能、兼容性、可靠性、特性耦合分析、资料等方面进行测试,测试质量良好。 + +*** + + +# 1 概述 + +​ GMS_ASSERT系统包,主要用于验证和确保输入字符串的合法性,防止 SQL 注入等安全问题。它提供了一系列函数,用于检查字符串是否符合特定格式或类型,确保其在 SQL 语句中的安全使用。 + +​ 本报告描述[支持GMS_ASSERT 高级包](https://e.gitee.com/opengaussorg/projects/676554/requirements/table?issue=IBD6SV )特性测试活动,本需求随openGauss 7.0.0-RC1 build 7e79432c(B016)版本发布,并在此基础上进行测试验证。 + +# 2 测试版本说明 + +## 2.1 测试版本信息 + +### 2.1.1 被测版本 + +| 版本名称 | 软件包名称 | 测试起始时间 | 测试结束时间 | 测试人员 | +| ---------------------------------- | ----------------------- | ------------- | ------------- | -------- | +| openGauss 7.0.0-RC1 build 7e79432c | openGauss7.0.0-RC1.B016 | 2025年2月24日 | 2025年2月25日 | 宋菲 | +| openGauss 7.0.0-RC1 build 92468bff | openGauss7.0.0-RC1.B021 | 2025年3月17日 | 2025年3月17日 | 宋菲 | + +### 2.1.2 配套测试的版本 + +| 版本名称 | 配套版本 | 版本说明 | +| -------- | -------- | -------- | +| 无 | 无 | 无 | + +## 2.2 测试环境描述 + +### 2.2.1 环境硬件信息 + +| 环境信息 | 硬件型号 | 硬件配置信息 | 备注 | +| -------- | ---------- | ------------------------------------------------------------ | ---- | +| 测试环境 | Kunpeng920 | CPU:8核
内存:16G
硬盘:128G
OS:Kylin Linux Advanced Server V10 SP2
文件系统:XFS
网卡:千兆 | 无 | + +### 2.2.2 虚拟化平台 + +| 虚拟化平台 | 版本说明 | +| ---------- | ------------- | +| KVM | version 4.1.0 | + +# 3 版本概要测试结论、关键风险和规避措施 + +## 3.1 测试结论总结 + +​ 本需求在测试阶段完成了功能测试、可服务性测试、资料测试、特性耦合分析测试。需求100%实现,所有被测特性的测试用例的累计执行覆盖率达到100%,上述测试发现的缺陷均已得到修正,回归测试结果正常,无遗留问题。 + +## 3.2 约束说明 + +- 仅支持create extension命令方式加载插件。 + + + + +## 3.3 关键风险和规避措施 + +| 风险类型 | 风险描述 | 风险影响 | 规避措施和计划 | 责任人 | 当前进展 | +| -------- | -------- | -------- | -------------- | ------ | -------- | +| 无 | 无 | 无 | 无 | 无 | 无 | + +# 4 版本详细测试结论 + +## 4.1 特性测试结论 + +### 4.1.1 新需求质量评价 + +| 特性 | 特性价值评估 | 应用说明及关键约束假设依赖 | 关键遗留事项如缺陷等 | 测试整体覆盖情况 | 特性质量评估 | 主要风险 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | -------------------- | ---------------- | -------------------------- | -------- | +| [支持GMS_ASSERT 高级包](https://e.gitee.com/opengaussorg/projects/676554/requirements/table?issue=IBD6SV ) | GMS_ASSERT系统包,主要用于验证和确保输入字符串的合法性,防止 SQL 注入等安全问题。本需求扩展对A的兼容性,扩展用户使用场景,增强了关于语句安全的防护措施。 | 无 | 无 | 良好 | | 无 | + +## 4.2 产品质量属性目标(DFX)测试结论 + +### 4.2.1 性能测试结论 + +​ 本需求不涉及。 + +### 4.2.2 可靠性测试结论 + +​ 本需求不涉及。 + +### 4.2.3 安全&隐私保护测试结论 + +​ 本需求不涉及。 + +### 4.2.4 可服务性测试结论 + +| 测试步骤 | 测试结果 | +| ---------------------------------------- | -------- | +| 验证异常情况时,可以给予告警或报错。 | 测试通过 | +| 告警或报错信息,语句清晰,内容有效易懂。 | 测试通过 | + +### 4.2.5 生命周期管理测试结论 + +​ 本需求不涉及。 + +### 4.2.6 韧性测试结论 + +​ 本需求不涉及。 + +### 4.2.7 兼容性测试结论 + +​ 本需求只在A模式下进行兼容,其他模式不兼容。 + +| 测试步骤 | 测试结果 | +| ------------------------------------------- | -------- | +| 用例在兼容A库模式下执行,验证功能是否正确。 | 测试通过 | + +### 4.2.8 升级测试结论 + +| 测试步骤 | 升级路径 | 测试结果 | +| ------------------------------------------ | ------------------------------------------------------------ | -------- | +| 升级版本,新增本需功能,且测试用例执行通过 | 从openGauss7.0.0-RC1.B015版本升级到openGauss7.0.0-RC1.B016版本 | 测试通过 | +| 回退版本,不支持本需求功能,报函数不存在 | 从openGauss7.0.0-RC1.B016版本回退到openGauss7.0.0-RC1.B015版本 | 测试通过 | + +## 4.3 资料测试结论 + +| 序号 | 测试章节 | 测试结论 | +| ---- | ------------------------------------------------------------ | -------- | +| 1 | [文档地图/插件参考/插件使用指南](https://docs.opengauss.org/zh/docs/latest/docs/ExtensionReference/Extension.html) | 测试通过 | + +# 5 测试对象质量评估 + +## 5.1 覆盖率分析 + +## 5.2 缺陷统计和分析 + +### 5.2.1 缺陷统计 + +全部为问题单,无资料单。 + +| | 问题总数 | 严重 | 主要 | 次要 | 不重要 | +| ------ | -------- | ---- | ---- | ---- | ------ | +| 数目 | 5 | 0 | 0 | 5 | 0 | +| 百分比 | | 0 | 0 | 100% | 0 | + +### 5.2.2 缺陷列表 + +| 问题单号 | 问题描述 | 问题级别 | 当前状态 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | -------- | -------- | +| [IBP2LI](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP2LI) | sql_object_name函数入参为用户触发器,报错 | 次要 | 已验收 | +| [IBP2FK](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP2FK) | sql_object_name函数入参为用户包时,包名和函数名都校验,不兼容 | 次要 | 已验收 | +| [IBP2B2](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP2B2) | sql_object_name函数入参为系统表、系统视图时,报错 | 次要 | 已验收 | +| [IBP288](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP288) | 插件删除失败 | 次要 | 已验收 | +| [IBOGPR](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBOGPR) | gms_assert插件安装失败 | 次要 | 已验收 | + +# 6 测试过程评估 + +## 6.1 测试策略回顾 + +| 编号 | 特性 | 验证策略 | 是否按照测试策略执行 | +| ---- | ---------- | ------------------------------------------------------------ | -------------------- | +| 1 | 功能测试 | ENQUOTE_LITERAL函数,入参含有单引号、双引号、中文字符、特殊字符、大小写字符;入参输入超长字符串;入参个数不同、空值空串;入参为非字符串类型 | YES | +| 2 | | ENQUOTE_NAME函数,入参含有单引号、双引号、中文字符、特殊字符、大小写字符;入参输入超长字符串;入参个数不同、空值空串;入参为非字符串类型 | YES | +| 3 | | SCHEMA_NAME函数,入参为系统模式、用户模式(名称包含中文字符、特殊字符、大小写字符);入参为最长模式名;入参为不存在的用户模式;入参个数不同、空值空串;入参为非字符串类型 | YES | +| 4 | | SQL_OBJECT_NAME函数,入参为系统对象中的系统表、系统视图、系统函数、系统包;入参为用户对象中的表、索引、视图、存储过程、函数、自定义类型、触发器、包、同义词(名称包含中文字符、特殊字符、大小写字符);入参为最长对象名,如表;入参为不存在的用户对象,如表;入参个数不同、空值空串;入参为非字符串类型 | YES | +| 5 | | NOOP函数,入参含有中文字符、特殊字符、大小写字符;入参支持varchar和clob类型;入参个数不同、空值空串;入参为不可转换为文本类型的类型;入参支持多个带引号的名称连接在一起 | YES | +| 6 | | QUALIFIED_SQL_NAME函数,入参支持xx.xx、xx@xx格式写法(xx包含中文字符、特殊字符、大小写字符);入参为不支持其他格式,如xx,xx;入参个数不同、空值空串; | YES | +| 7 | | SIMPLE_SQL_NAME函数,入参含有中文字符、特殊字符(仅可包含_、$、#)、大小写字符;入参个数不同、空值空串;入参字符串以特殊字符开头(仅支持以下划线开头) | YES | +| 8 | | 复杂场景,在PL(存储过程、匿名块)中使用函数;多个函数混合使用 | YES | +| 9 | | 创建删除插件 | YES | +| 10 | 兼容性测试 | 本需求只兼容A模式,其他模式不兼容,报函数不存在。 | YES | +| 11 | 资料验证 | 验证说明是否有错字、错误用例,描述是否清晰。 | YES | +| 12 | 特性耦合 | 驱动JDBC验证,Yat工具执行自动化测试用例 | YES | +| 27 | | 主备场景 | YES | + +## 6.2 测试设计评估 + + + +| 编号 | 测试点修改说明 | 修改原因 | 是否影响测试质量 | +| ---- | -------------- | -------- | ---------------- | +| 1 | 无 | 无 | 无 | + +## 6.3 测试执行评估 + +### 6.3.1 测试执行统计数据 + +| 版本名称 | 工作量投入(人天) | 测试用例数 | 用例执行数 | 发现缺陷数 | 代码行数(k) | 缺陷密度(个/KLOC) | +| ------------------------------------------ | ---------------- | ---------- | ------------------------------------- | ---------- | ----------- | ----------------- | +| openGauss 7.0.0-RC1 build 7e79432c(B016) | 2 | 14 | 14(13个自动化用例,1个人工执行用例) | 5 | 1.550 | 5/1.550=3.226 | +| openGauss 7.0.0-RC1 build 92468bff(B021) | 0.5 | 14 | 14(13个自动化用例,1个人工执行用例) | | | | + +### 6.3.2 测试用例执行结果统计数据 + +| 总测试用例数 | 实际测试的用例数 | Passed | Failed | Blocked | Unavailable | 执行率 | 执行通过率 | +| ------------ | ---------------- | ------ | ------ | ------- | ----------- | ------ | ---------- | +| 14 | 14 | 12 | 2 | 0 | 0 | 100% | 85.7% | +| 14 | 14 | 14 | 0 | 0 | 0 | 100% | 100% | + +# 7 附件 + +## 7.1 附件1:遗留问题列表 + +​ 本需求无遗留缺陷。 + +## 7.2 附件2:特性相关PR + +- 需求代码PR + + https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/6986 + +- 问题修复相关PR + + | 问题单号 | PR | 问题级别 | + | ------------------------------------------------------------ | ------------------------------------------------------------ | -------- | + | [IBP2LI](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP2LI) | https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/7250 | 次要 | + | [IBP2FK](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP2FK) | https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/7247 | 次要 | + | [IBP2B2](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP2B2) | https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/7246 | 次要 | + | [IBP288](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBP288) | https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/7240 | 次要 | + | [IBOGPR](https://e.gitee.com/opengaussorg/projects/676554/bugs/table?issue=IBOGPR) | https://e.gitee.com/opengaussorg/repos/opengauss/openGauss-server/pulls/7225 | 次要 | + +- 资料PR + + https://e.gitee.com/opengaussorg/repos/opengauss/docs/pulls/7249 + +- 测试用例 + + 测试用例/DBV伙伴\_TC/神通_TC/IBD6SV-支持GMS_ASSERT 高级包 + +- 测试设计 + + [测试设计/基线/openGauss_7.0.0RC1/#IBD6SV【神舟通用】-支持GMS_ASSERT 高级包](https://devcloud.cn-east-3.huaweicloud.com/testmind/project/03669bfd256c444bbfda6d7fb8b83bb2/testmind/mindmap?mindId=fe84d913f80f4b5d99ec76c2da6148db&hideDevcloudHead=true) +