From 71183019ad9c3ab3c126f8b2a740ce34e7bade0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=97=E9=87=8C=E5=AF=BB=E4=BB=96=E5=8D=83=E7=99=BE?= =?UTF-8?q?=E5=BA=A6?= <783479891@qq.com> Date: Wed, 5 Mar 2025 16:59:01 +0800 Subject: [PATCH] =?UTF-8?q?cast=E5=87=BD=E6=95=B0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...13\350\257\225\346\212\245\345\221\212.md" | 224 ++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 "Test_Result/openGauss_7.0.0_RC1/\345\205\274\345\256\271\346\200\247/cast\346\265\213\350\257\225\346\212\245\345\221\212.md" diff --git "a/Test_Result/openGauss_7.0.0_RC1/\345\205\274\345\256\271\346\200\247/cast\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/cast\346\265\213\350\257\225\346\212\245\345\221\212.md" new file mode 100644 index 0000000..def98d7 --- /dev/null +++ "b/Test_Result/openGauss_7.0.0_RC1/\345\205\274\345\256\271\346\200\247/cast\346\265\213\350\257\225\346\212\245\345\221\212.md" @@ -0,0 +1,224 @@ +![avatar](../../images/openGauss.png) + +版权所有 © 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)。 + +修订记录 + +| 日期 | 修订版本 | 修改描述 | 作者 | +| ---- | -------- | -------- | ---- | +| 2024/12/26 | V1.0 | 测试报告初稿 | 王俊 | + +[TOC] + +**Keywords 关键词**:*cast,函数,功能测试* + +**Abstract 摘要**:*本次主要测试cast函数。主要测试常用场景为基本功能测试,性能测试,升级回滚测试,资料测试等,共发现2个issue,整体质量良好* + +# 1 概述 + +*本次测试主要测试cast函数(CAST( expr AS type_name[ DEFAULT return_value ON CONVERSION ERROR ][, fmt [, 'nlsparam' ] ])),包括功能测试,性能测试,升级回滚测试,资料测试,jdbc/odbc的使用情况以及部分不涉及到核心代码功能的部分* + +# 2 测试版本说明 + +## 2.1 测试版本信息 + +### 2.1.1 被测版本 + +| 版本名称 | 软件包名称 | 测试起始时间 | 测试结束时间 | 测试人员 | +| -------- | ---------- | ------------ | ------------ | -------- | +| openGauss7.0.0-RC1.B0010 | openGauss-All-7.0.0-RC1-openEuler20.03-aarch64.tar.gz |2024.12.25| 2024.1.7 | wangjun | +| openGauss7.0.0-RC1.B011 | openGauss-All-7.0.0-RC1-openEuler20.03-aarch64.tar.gz |2024.1.10| 2024.2.22 | wangjun | + +## 2.2 测试环境描述 + +### 2.2.1 环境硬件信息 + +| 环境信息 | 硬件配置信息 | +| -------- | ------------------------------------------------------------ | +| 云服务器| CPU:4核
内存:16GB
硬盘:SSD 40GB
OS:openEuler 20.03 (LTS)
+ +### 2.2.2 OS版本 + +| 操作系统 | OS版本 | +| -------- | ------ | +| Linux | openEuler 20.03 (LTS) | + +# 3 版本概要测试结论、关键风险和规避措施 + +## 3.1 测试结论总结 + +主要测试内容为测试兼容A库的cast()函数,测试包括功能测试,升级回滚测试,性能测试,资料测试,共执行674个用例共发现1个issue。 + +## 3.2 约束说明 + +无 + +## 3.3 关键风险和规避措施 + +| 风险类型 | 风险描述 | 风险影响 | 规避措施和计划 | 责任人 | 当前进展 | +| ------------ | -------- | -------- | -------------- | ------ | -------- | +|质量风险|to_timestamp中可以执行的字符串,但是cast中报错|结果不符合预期|不使用cast将字符串转为to_timestamp|李浩|已取消| +|质量风险|cast有nls时,将字符串转换为numeric时结果异常 |结果不符合预期|不使用nls参数|李浩|已验收| + +# 4 版本详细测试结论 + +## 4.1 特性测试结论 + +### 4.1.1 新需求质量评价 + +| 特性 | 特性价值评估 | 应用说明及关键约束假设依赖 | 关键遗留事项如缺陷等 | 测试整体覆盖情况 | 特性质量评估 | 主要风险 | +| ---- | ------------------------------------------------------------ | -------------------------- | -------------------- | ---------------- | -------------------------- | ---------------------- | +| 支持CAST( expr AS type_name [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ])子句 | 兼容A库中cast()函数 | 无| 1个| 100% || cast在使用nls时结果有误| + + +## 4.2 产品质量属性目标(DFX)测试结论 + +### 4.2.1 性能测试结论 + +*主要对照A库做了参照性的性能测试,测试方案如下: +1.首先,建表,建表时考虑到两种情况,1)表中的数据重复度很高的情况;2)表中的重复度很低 +2.将cast()函数在select和where处使用。3.最终观察相同数据量下与A库的性能对照 +PS:数据量挡位为100W,300W,1000W* + +| 测试步骤 | 测试结果 | +| -------- | -------- | +| 1.首先,建表,建表时考虑到两种情况:1)表中的数据重复度很高的情况;2)表中的重复度很低; 2.将cast()函数在select和where处使用。3.共执行12个用例,最终观察相同数据量下与A库的性能对照 观察在三种数据量挡位下的性能表现| 共12个用例,同样的sql,A库所用总时间为比opengauss多约411.73%,性能无劣化| + +### 4.2.2 可靠性测试结论 + +无 + +### 4.2.3 安全&隐私保护测试结论 + +无 + +### 4.2.4 可服务性测试结论 + +无 + +### 4.2.5 生命周期管理测试结论 + +无 + +### 4.2.6 韧性测试结论 + +无 + +### 4.2.7 兼容性测试结论 + +无 + +### 4.2.8 升级测试结论 + +升级回滚验证无异常 + +| 测试步骤 | 升级路径 | 测试结果 | +| -------- | -------- | -------- | +| 1.首先安装6.0.0(LTS) | 6.0.0->7.0.0 | 成功 | +| 2.回滚到6.0.0(LTS) | 7.0.0->6.0.0 | 成功 | +| 3.6.0.0(LTS)再次升级到7.0.0 | 6.0.0->7.0.0 | 成功 | +| 4.升级提交 | 7.0.0->7.0.0 | 成功 | +经检验均无异常 + +## 4.3 资料测试结论 + +| 序号 | 测试章节 | 测试结论 | +| ---- | ------------------------------------------------------------ | ------------------------------------------------- | +| 1. | *content/docs-lite/zh/docs/BriefTutorial/函数.md>类型转换相关函数>cast* | *整体质量良好* | +| 2. | *content/zh/docs/BriefTutorial/函数.md>类型转换相关函数>cast* | *整体质量良好* | +| 3. | *content/docs-lite/zh/docs/SQLReference/类型转换函数.md>类型转换相关函数>cast* | *整体质量良好* | +| 4. | *content/zh/docs/SQLReference/类型转换函数.md>类型转换相关函数>cast* | *整体质量良好* | +| 5. | *content/docs-lite/en/docs/BriefTutorial/functions.md>Functions Related to Type Conversion>cast* | *整体质量良好* | +| 6. | *content/docs-lite/en/docs/BriefTutorial/type-conversion-functions.md>Functions Related to Type Conversion>cast* | *整体质量良好* | +| 7. | *content/docs-lite/en/docs/SQLReference/type-conversion-functions.md>Functions Related to Type Conversion>cast* | *整体质量良好* | +| 8. | *content/en/docs/BriefTutorial/functions.md>Functions Related to Type Conversion>cast* | *整体质量良好* | + +资料测试整体质量良好 + +# 5 测试对象质量评估 + +## 5.1 覆盖率分析 + +## 5.2 缺陷统计和分析 + +### 5.2.1 缺陷统计 + +| | 问题总数 | 严重 | 主要 | 次要 | 不重要 | +| ------ | -------- | ---- | ---- | ---- | ------ | +| 数目 | 2 | 0 | 0 | 2 | 0 | +| 百分比 | 100% | 0% | 0% | 100% | 0% | + +### 5.2.2 缺陷列表 + +| 问题单号 | 问题描述 | 问题级别 | 当前状态 | +| -------- | -------- | -------- | -------- | +| IBP6BM | cast中对timestamp数据类型支持有问题 | 次要 | 已取消| +| IBPEHK | cast有nls时,将字符串转换为numeric时结果异常 | 次要 |已验收| + +# 6 测试过程评估 + +## 6.1 测试策略回顾 + + +| 编号 | 测试项目 | 验证策略 | 是否按照测试策略执行 | +| ---- | ---- | ------------------------------------------------ | -------------------- | +| 1 | 功能测试 |1.主要测试了不使用default功能的情况 2.测试default功能 3.对边界值进行了测试 4.测试了可能会受到影响的其他情况的场景(select cast(' 2022-09-21 14:13:29' as timestamp default '01-09-02 14:10:10' on conversion error,'yyyy-mm-dd hh24:mi:ss')-30/60/24;)5.测试了被多重嵌套、多重嵌套其他函数和不同表达式中的复杂场景 | YES | +| 2 | 性能测试 | *主要对照A库做了参照性的测试,测试方案如下: 1.首先,建表,建表时考虑到两种情况,1)表中的数据重复度很高的情况;2)表中的重复度很低 2.将cast()函数在select和where处使用。3.最终观察相同数据量下与A库的性能对照 PS:数据量挡位为100W,300W,1000W*| YES | +| 3 | 资料测试 |1.依照特性说明文档与官方说明文档对比测试结果 | YES | +| 4 | 驱动测试 |使用jdbc和odbc连接数据库,检验新增功能,观察是否有异常情况 | YES | +| 5 | 升级回滚测试 |1.安装6.0.0(LTS)2.6.0.0升级至7.0.0 3.7.0.0回滚到6.0.0 4.6.0.0再次升级至7.0.0 5.7.0.0升级提交,观察每次升级和回滚后的执行结果是否符合预期| YES | + +## 6.2 测试设计评估 + +无 + +## 6.3 测试执行评估 + +### 6.3.1 测试执行统计数据 + +| 版本名称 | 工作量投入(人天) | 测试用例数 | 用例执行数 | 发现缺陷数 | 代码量(KLOC) | 缺陷密度 | +| -------- | ---------------- | ---------- | ---------- | ---------- | -------------- | -------- | +| openGauss7.0.0-RC1.B008 | 0.5 | 674 | 674 | 1 | 1033 |1/1.033k=0.97 + + + +### 6.3.2 测试用例执行结果统计数据 + +| | 计划测试用例数 | 实际测试的用例数 | Passed | Failed | Blocked | Unavailable | 执行率 | 执行通过率 | +| ------ | -------------- | ---------------- | ------ | ------ | ------- | ----------- | ------ | ---------- | +| 第一轮 | 674 | 674 | 663 | 11 | 0 | 0 | 100% | 98.37% | + +共计测试用例674,11个未通过,共发现1个issue. + +# 7 附件 + +## 7.1 附件1:遗留问题列表 + +| 序号 | 问题单号 | 问题描述 | 问题级别 | 问题分析与影响 | 规避措施 | +| ---- | -------- | -------- | ---- | -------- | -------------- | +| 1 | IBP6BM | cast中对timestamp数据类型支持有问题 | 次要 | 在使用cast将字符串转换为timestamp类型时结果会出现异常 |不使用to_timestamp| +| 2 | IBPEHK | cast有nls时,将字符串转换为numeric时结果异常 | 次要 | cast有nls时,将字符串转换为numeric时结果异常 |不使用nls参数| + + + +## 7.2 附件2:特性相关PR + +*提供本需求相关的代码pr及资料pr* + +设计文档及checkin文档地址 + +https://gitee.com/opengauss-compatible/openGauss-design/blob/master/cast%20default%20on%20conversion%20error/openGauss%20cast%20default%20on%20covnersion%20err%E7%89%B9%E6%80%A7%E8%AE%BE%E8%AE%A1%E8%AF%B4%E6%98%8E%E4%B9%A6(202410181741).md + +pr链接 + +https://gitee.com/opengauss/openGauss-server/pulls/6605/files + +测试设计 + +https://devcloud.cn-east-3.huaweicloud.com/testmind/project/03669bfd256c444bbfda6d7fb8b83bb2/testmind/mindmap?mindId=74b9f60491bf497b959c50692d7e2cfd&hideDevcloudHead=true + +测试用例 + +https://devcloud.cn-east-3.huaweicloud.com/cloudtestportal/project/03669bfd256c444bbfda6d7fb8b83bb2/testcase?branch_id=vb100000vjo9uumo +PS:软通_TC CAST \ No newline at end of file -- Gitee