提供文件下载功能
This commit is contained in:
902
cdTMP/package-lock.json
generated
902
cdTMP/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -13,10 +13,10 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@arco-design/color": "^0.4.0",
|
"@arco-design/color": "^0.4.0",
|
||||||
"@arco-design/web-vue": "^2.56.3",
|
"@arco-design/web-vue": "^2.56.3",
|
||||||
"@tanstack/vue-query": "^5.66.4",
|
"@tanstack/vue-query": "^5.67.2",
|
||||||
"@tinymce/tinymce-vue": "^6.1.0",
|
"@tinymce/tinymce-vue": "^6.1.0",
|
||||||
"@vueuse/core": "^12.7.0",
|
"@vueuse/core": "^12.8.2",
|
||||||
"axios": "^1.7.9",
|
"axios": "^1.8.2",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"file2md5": "^1.3.0",
|
"file2md5": "^1.3.0",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
@@ -27,34 +27,35 @@
|
|||||||
"pinyin-match": "^1.2.6",
|
"pinyin-match": "^1.2.6",
|
||||||
"postcss-import": "^16.1.0",
|
"postcss-import": "^16.1.0",
|
||||||
"qs": "^6.14.0",
|
"qs": "^6.14.0",
|
||||||
"tinymce": "^7.7.0",
|
"tinymce": "^7.7.1",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.13",
|
||||||
"vue-clipboard3": "^2.0.0",
|
"vue-clipboard3": "^2.0.0",
|
||||||
"vue-color-kit": "^1.0.6",
|
"vue-color-kit": "^1.0.6",
|
||||||
"vue-data-ui": "^2.6.3",
|
"vue-data-ui": "^2.6.15",
|
||||||
"vue-router": "^4.5.0",
|
"vue-router": "^4.5.0",
|
||||||
"vuedraggable": "^2.24.3"
|
"vuedraggable": "^2.24.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/postcss": "^4.0.7",
|
"@tailwindcss/postcss": "^4.0.12",
|
||||||
"@tailwindcss/vite": "^4.0.7",
|
"@tailwindcss/vite": "^4.0.12",
|
||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/node": "^22.13.4",
|
"@types/node": "^22.13.10",
|
||||||
"@types/nprogress": "^0.2.3",
|
"@types/nprogress": "^0.2.3",
|
||||||
"@types/qs": "^6.9.18",
|
"@types/qs": "^6.9.18",
|
||||||
"@vitejs/plugin-vue": "^5.2.1",
|
"@vitejs/plugin-vue": "^5.2.1",
|
||||||
"@vitejs/plugin-vue-jsx": "^4.1.1",
|
"@vitejs/plugin-vue-jsx": "^4.1.1",
|
||||||
"@vue/babel-plugin-jsx": "^1.2.5",
|
"@vue/babel-plugin-jsx": "^1.4.0",
|
||||||
"browserslist": "^4.24.4",
|
"browserslist": "^4.24.4",
|
||||||
"eslint": "^9.20.1",
|
"eslint": "^9.22.0",
|
||||||
"eslint-plugin-vue": "^9.32.0",
|
"eslint-plugin-vue": "^10.0.0",
|
||||||
"less": "^4.2.2",
|
"less": "^4.2.2",
|
||||||
"less-loader": "^12.2.0",
|
"less-loader": "^12.2.0",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"prettier": "^3.5.1",
|
"prettier": "^3.5.3",
|
||||||
"rollup-plugin-visualizer": "^5.14.0",
|
"rollup-plugin-visualizer": "^5.14.0",
|
||||||
"tailwindcss": "^4.0.7",
|
"tailwindcss": "^4.0.12",
|
||||||
"typescript": "^5.7.3",
|
"typescript": "^5.8.2",
|
||||||
"vite": "^6.1.1"
|
"vite": "^6.2.1",
|
||||||
|
"vue-eslint-parser": "^10.1.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/dgDocument`,
|
url: `/create/dgDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +20,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/smDocument`,
|
url: `/create/smDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -30,7 +32,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/jlDocument`,
|
url: `/create/jlDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -41,7 +44,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/bgDocument`,
|
url: `/create/bgDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -52,7 +56,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/hsmDocument`,
|
url: `/create/hsmDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -63,7 +68,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/hjlDocument`,
|
url: `/create/hjlDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -74,7 +80,8 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/wtdDocument`,
|
url: `/create/wtdDocument`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
|
responseType: "blob"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -85,7 +92,7 @@ export default {
|
|||||||
return request({
|
return request({
|
||||||
url: `/create/cancel`,
|
url: `/create/cancel`,
|
||||||
method: "get",
|
method: "get",
|
||||||
params
|
params,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
<span>{{ props.data.name }}</span>
|
<span>{{ props.data.name }}</span>
|
||||||
<span class="text-base ml-3 text-red-950" v-if="!props.data.step">所属文档片段</span>
|
<span class="text-base ml-3 text-red-950" v-if="!props.data.step">所属文档片段</span>
|
||||||
<a-tag color="red" size="small" v-else>{{ props.data.step }}</a-tag>
|
<a-tag color="red" size="small" v-else>{{ props.data.step }}</a-tag>
|
||||||
|
<!-- 提示插槽:位置在页头最右侧 -->
|
||||||
|
<slot></slot>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
</a-page-header>
|
</a-page-header>
|
||||||
|
|||||||
939
cdTMP/src/views/testmanage/projFragment/constants.ts
Normal file
939
cdTMP/src/views/testmanage/projFragment/constants.ts
Normal file
@@ -0,0 +1,939 @@
|
|||||||
|
// 该文件导出一些常量以及文档片段预制文档名称
|
||||||
|
enum fragmentName {
|
||||||
|
NotSelect = "不使用模版(X)",
|
||||||
|
TestObject = "测评对象",
|
||||||
|
StaticEnv = "静态测试环境说明",
|
||||||
|
StaticSoft = "静态软件项",
|
||||||
|
StaticHard = "静态硬件和固件项",
|
||||||
|
DynamicEnv = "动态测试环境说明",
|
||||||
|
DynamicSoft = "动态软件项",
|
||||||
|
DynamicHard = "动态硬件和固件项",
|
||||||
|
TestData = "测评数据",
|
||||||
|
EnvDiff = "环境差异性分析",
|
||||||
|
TestLevelAndType = "测试级别和测试类型",
|
||||||
|
TestStrategy = "测试策略"
|
||||||
|
}
|
||||||
|
|
||||||
|
export { fragmentName }
|
||||||
|
|
||||||
|
// TestObject-测评对象模版
|
||||||
|
export const TestObjectHTML = `<p>CX-3E(01/02/03)ZCL数据处理机主要用于接收星上载荷3台广域监视相机和1台精密跟踪相机的原始数据并实时处理,完成目标在轨检测、图像定位、天文定位以及目标异动识别。</p>
|
||||||
|
<p>广域图像处理机、广域精跟图像处理机主要用于接收相机的图像数据,进行图像处理并将数据处理结果转发至天文定位数据处理机。数据处理分系统的连接关系如图所示:</p>
|
||||||
|
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="" width="400" height="300" ></p>
|
||||||
|
<p style="text-align: center;">图<!-- [if supportFields]> STYLEREF 1 \s <![endif]-->5<!-- [if supportFields]><![endif]-->‑<!-- [if supportFields]> SEQ 图 \* ARABIC \s 1 <![endif]-->1数据处理分析系统连接关系图</p>
|
||||||
|
<p style="text-align: left;">图像处理机分为广域图像处理机和广域精跟图像处理机,硬件和软件均做统型设计,硬件按照最大接口包络设计,软件通过BOOT_FLAG标示,识别当前为广域处理机或者精跟处理机;其中广域图像处理机为2路2711图像输入,接收6个DSP的图像处理结果;精跟图像处理机为1路2711图像输入,1路LVDS图像输入,接收4个DSP的图像处理结果;接口管理FPGA通过BOOT_FLAG选通两路数据作为图像输入源,在接口管理FPGA内部,两路图像数据通道完全独立,独立的处理数据并通过各自独立的SRIO发送出去,接口管理FPGA交联图如下:</p>
|
||||||
|
<p style="text-align: left;"><img style="display: block; margin-left: auto; margin-right: auto;" src="" width="684" height="370"></p>
|
||||||
|
<p style="text-align: center;">图<!-- [if supportFields]> STYLEREF 1 \s <![endif]-->5<!-- [if supportFields]><![endif]-->‑<!-- [if supportFields]> SEQ 图 \* ARABIC \s 1 <![endif]-->1接口管理FPGA外部交联图</p>
|
||||||
|
<p>接口管理FPGA主要完成以下功能:</p>
|
||||||
|
<p>1)通过EMIF接口与处理器进行数据传输;</p>
|
||||||
|
<p>2)接口管理FPGA通过2711/LVDS接口接收广域/精跟相机的图像数据,并通过SRIO转发至FPGA计算节点;FPGA提供异步串口接口,由处理器控制,实现与各个计算节点的遥控遥测数据传输;</p>
|
||||||
|
<p>3)接收DSP计算节点的IPD数据和图像处理日志,并通过LVDS接口发送至天文定位数据处理机;</p>
|
||||||
|
<p>4)控制AD采集芯片SAD0832的时序,周期性完成各个计算节点的电压采集,由处理器读取结果;</p>
|
||||||
|
<p>5)控制SPI FLASH时序,可以根据处理器指令提取相应位置的配置文件,实现对不同计算节点的原始配置文件重构,能够根据处理器指令要求,缓存新的配置文件;</p>
|
||||||
|
<p>6)模拟LSMEU03的JTAG时序,实现对LSMEU03的上注功能;</p>
|
||||||
|
<p>7)OC指令输出功能;</p>
|
||||||
|
<p style="text-align: left;">8)状态检测等功能;</p>`
|
||||||
|
|
||||||
|
export const StaticEnvHTML = `<p>静态测试环境由1台测试计算机组成,测试计算机部署了Klocwork、Understand、Testbed等软件,对被测软件文档、源代码开展文档审查、静态分析、代码审查、代码走查等静态测试。</p>
|
||||||
|
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="" width="447" height="196"></p>
|
||||||
|
<p style="text-align: center;">图5.4静态测试环境示意图</p>`
|
||||||
|
|
||||||
|
export const StaticSoftHTML = `<p>此次软件静态测试环境使用的软件项见下表。</p>
|
||||||
|
<p style="text-align: center;">表5-5静态测评环境软件项</p>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="100%" cellspacing="0" cellpadding="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">软件项名称</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p align="center">版本</p>
|
||||||
|
</td>
|
||||||
|
<td width="23%">
|
||||||
|
<p align="center">提供单位</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p align="center">用途</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">XXXX软件</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>VX.X</p>
|
||||||
|
</td>
|
||||||
|
<td rowspan="8" width="23%">
|
||||||
|
<p>中国科学院卫星软件评测中心</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>被测软件</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">2 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">Klocwork</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>V2018</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>用于运行错误检测</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">3 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p>Testbed</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>V9.4</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>用于静态分析</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">4 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p>Understand</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>V5.0</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>用于静态分析、质量度量</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">5 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">Source Insight</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>V4.0</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>阅读代码工具</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">6 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">Beyond Compare</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>V4.4</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>代码对比工具</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">7 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">SourceCounter</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>V3.4.16.85</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>代码行统计工具</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">8 </p>
|
||||||
|
</td>
|
||||||
|
<td width="24%">
|
||||||
|
<p align="center">Microsoft Office</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>2016</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>文档阅读、编辑工具</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: left;"> </p>`
|
||||||
|
|
||||||
|
export const StaticHardHTML = `<p>此次静态测试环境使用的硬件和固件项详见下表所示。</p>
|
||||||
|
<p style="text-align: center;">表<!-- [if supportFields]><b
|
||||||
|
style='mso-bidi-font-weight:normal'></b> STYLEREF 1 \s <b
|
||||||
|
style='mso-bidi-font-weight:normal'></b><![endif]-->5<!-- [if supportFields]><b
|
||||||
|
style='mso-bidi-font-weight:normal'></b><![endif]-->‑<!-- [if supportFields]><b
|
||||||
|
style='mso-bidi-font-weight:normal'></b> SEQ 表 \* ARABIC \s 1 <b style='mso-bidi-font-weight:normal'></b><![endif]-->6<!-- [if supportFields]><b
|
||||||
|
style='mso-bidi-font-weight:normal'></b><![endif]--> 静态测评环境硬件和固件项</p>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="100%" cellspacing="0" cellpadding="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td width="11%">
|
||||||
|
<p align="center">硬件或固件项名称</p>
|
||||||
|
</td>
|
||||||
|
<td width="23%">
|
||||||
|
<p align="center">配置信息</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p align="center">设备编号</p>
|
||||||
|
</td>
|
||||||
|
<td width="16%">
|
||||||
|
<p align="center">提供单位</p>
|
||||||
|
</td>
|
||||||
|
<td width="26%">
|
||||||
|
<p align="center">用途</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td width="11%">
|
||||||
|
<p>计算机</p>
|
||||||
|
</td>
|
||||||
|
<td width="23%">
|
||||||
|
<p>CPU:intel i7 6700</p>
|
||||||
|
<p>内存:16G</p>
|
||||||
|
<p>硬盘:500G</p>
|
||||||
|
<p>操作系统:Windows 7(64)</p>
|
||||||
|
</td>
|
||||||
|
<td width="14%">
|
||||||
|
<p>TY20191200277</p>
|
||||||
|
</td>
|
||||||
|
<td width="16%">
|
||||||
|
<p>中国科学院卫星软件评测中心</p>
|
||||||
|
</td>
|
||||||
|
<td width="26%">
|
||||||
|
<p>运行Klocwork、Source Insight等测试工具以及相关辅助软件,用于静态测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: center;"> </p>`
|
||||||
|
|
||||||
|
export const DynamicEnvHTML = `<p>实物测试环境1的测试设备包括广域图像处理机、测试计算机(含2711发送板卡和LVDS接收发送板卡)、电源。广域精跟图像处理机接口管理FPGA软件运行于广域图像处理机;广域精跟地面应用软件、上注软件运行于测试计算机结合用于模拟2711相机源,发送广域图像数据;模拟天文处理机,接收处理后的IPD和日志信息;模拟星务发送上注指令,接收遥测信息。软件实物测试环境图如下图所示。</p>
|
||||||
|
<p>在广域精跟地面应用软件模拟2711相机源,发送广域图像,通过2711发送板卡给输入广域图像处理机,广域图像处理机再通过LVDS接收发送板卡接收处理后图像,并发送给广域精跟地面应用软件。在广域精跟地面应用软件向广域图像处理机发送控制指令(节点配置、软复位、串口数据等),并查看下传的遥测数据。通过上注软件进行程序上注,并接收下传测遥测信息。</p>
|
||||||
|
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="" width="798" height="313"></p>
|
||||||
|
<p style="text-align: center;">图5-2图像处理机接口管理FPGA软件测试环境1示意图</p>`
|
||||||
|
|
||||||
|
export const DynamicSoftHTML = `<p>图像处理机接口管理FPGA软件配置项实物测试环境1使用的软件项见<!-- [if supportFields]> REF _Ref175830279 \h \* MERGEFORMAT <![endif]-->表5‑13<!-- [if gte mso 9]><xml>
|
||||||
|
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100370035003800330030003200370039000000</w:data>
|
||||||
|
</xml><![endif]--><!-- [if supportFields]><![endif]-->所示。</p>
|
||||||
|
<p style="text-align: center;">表5-7实物测试环境1软件项</p>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="100%" cellspacing="0" cellpadding="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td width="22%">
|
||||||
|
<p align="center">软件项名称</p>
|
||||||
|
</td>
|
||||||
|
<td width="18%">
|
||||||
|
<p align="center">版本</p>
|
||||||
|
</td>
|
||||||
|
<td width="21%">
|
||||||
|
<p align="center">提供单位</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p align="center">用途</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="6%">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td width="22%">
|
||||||
|
<p align="center">XX系统软件</p>
|
||||||
|
</td>
|
||||||
|
<td width="18%">
|
||||||
|
<p>静态测评结束后版本</p>
|
||||||
|
</td>
|
||||||
|
<td width="21%">
|
||||||
|
<p>XX单位</p>
|
||||||
|
</td>
|
||||||
|
<td width="31%">
|
||||||
|
<p>被测软件</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: center;"> </p>`
|
||||||
|
|
||||||
|
export const DynamicHardHTML = `<p>图像处理机接口管理FPGA软件配置项测试环境1使用的硬件和固件项见下表所示。</p>
|
||||||
|
<p style="text-align: center;">表5-8实物测试环境1硬件和固件项</p>
|
||||||
|
<div align="center">
|
||||||
|
<table style="height: 609.853px; width: 85.5195%;" border="1" cellspacing="0" cellpadding="0">
|
||||||
|
<thead>
|
||||||
|
<tr style="height: 29.5952px;">
|
||||||
|
<td style="width: 8.74796%;" width="39">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.6554%;" width="84">
|
||||||
|
<p align="center">硬件或固件项名称</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 21.3365%;" width="132">
|
||||||
|
<p align="center">配置信息</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 11.9484%;" width="73">
|
||||||
|
<p align="center">设备标识</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 12.4829%;" width="87">
|
||||||
|
<p align="center">检定有效期</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.761%;" width="76">
|
||||||
|
<p align="center">提供单位</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 17.9227%;" width="112">
|
||||||
|
<p align="center">用途</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 115.565px;">
|
||||||
|
<td style="width: 8.74796%;" width="39">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.6554%;" width="84">
|
||||||
|
<p>XX设备(含被测软件)</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 21.3365%;" width="132">
|
||||||
|
<p>设备型号:XX</p>
|
||||||
|
<p>设备配置:XX</p>
|
||||||
|
<p>运行软件:XX、XX</p>
|
||||||
|
<p>(如果有多套应说明套数)</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 11.9484%;" width="73">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 12.4829%;" width="87">
|
||||||
|
<p>2023.08.11~2025.08.10</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.761%;" width="76">
|
||||||
|
<p>XX单位</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 17.9227%;" width="112">
|
||||||
|
<p>XX为被测设备</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 115.565px;">
|
||||||
|
<td style="width: 8.74796%;" width="39">
|
||||||
|
<p align="center">2 </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.6554%;" width="84">
|
||||||
|
<p>YY设备</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 21.3365%;" width="132">
|
||||||
|
<p>设备型号:XX</p>
|
||||||
|
<p>设备配置:XX</p>
|
||||||
|
<p>运行软件:XX、XX</p>
|
||||||
|
<p>(如果有多套应说明套数)</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 11.9484%;" width="73">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 12.4829%;" width="87">
|
||||||
|
<p>检定日期:2023.08.11</p>
|
||||||
|
<p>有效期:3年</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.761%;" width="76">
|
||||||
|
<p>XX单位</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 17.9227%;" width="112">
|
||||||
|
<p>真实陪测设备,用来与被测设备进行XX接口的数据通信</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 138.552px;">
|
||||||
|
<td style="width: 8.74796%;" width="39">
|
||||||
|
<p align="center">3 </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.6554%;" width="84">
|
||||||
|
<p>ZZ综合测试设备</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 21.3365%;" width="132">
|
||||||
|
<p>设备标识:XX</p>
|
||||||
|
<p>设备型号:XX</p>
|
||||||
|
<p>设备配置:XX</p>
|
||||||
|
<p>运行软件:XX、XX</p>
|
||||||
|
<p>(如果有多套应说明套数)</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 11.9484%;" width="73">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 12.4829%;" width="87">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.761%;" width="76">
|
||||||
|
<p>XX单位</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 17.9227%;" width="112">
|
||||||
|
<p>模拟发送 XX接口数据</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 92.5794px;">
|
||||||
|
<td style="width: 8.74796%;" width="39">
|
||||||
|
<p align="center">4 </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.6554%;" width="84">
|
||||||
|
<p>示波器</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 21.3365%;" width="132">
|
||||||
|
<p>设备型号:XX</p>
|
||||||
|
<p>设备配置:XX</p>
|
||||||
|
<p>(如果有多套应说明套数)</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 11.9484%;" width="73">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 12.4829%;" width="87">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.761%;" width="76">
|
||||||
|
<p>XX单位</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 17.9227%;" width="112">
|
||||||
|
<p>测量定时器采样周期</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 117.996px;">
|
||||||
|
<td style="width: 8.74796%;" width="39">
|
||||||
|
<p align="center">5 </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.6554%;" width="84">
|
||||||
|
<p>工控机</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 21.3365%;" width="132">
|
||||||
|
<p>设备型号:XX</p>
|
||||||
|
<p>设备配置:XX</p>
|
||||||
|
<p>运行软件:XX、XX</p>
|
||||||
|
<p>(如果有多套应说明套数)</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 11.9484%;" width="73">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 12.4829%;" width="87">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 13.761%;" width="76">
|
||||||
|
<p>XX单位</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 17.9227%;" width="112">
|
||||||
|
<p>运行 XX软件模拟 XX</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: center;"> </p>`
|
||||||
|
|
||||||
|
export const TestDataHTML = `<p>图像处理机接口管理FPGA软件配置项测试所需的测评数据详见<!-- [if supportFields]> REF _Ref175830319 \h \* MERGEFORMAT <![endif]-->下表<!-- [if gte mso 9]><xml>
|
||||||
|
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100370035003800330030003300310039000000</w:data>
|
||||||
|
</xml><![endif]--><!-- [if supportFields]><![endif]-->所示。</p>
|
||||||
|
<p style="text-align: center;">表5-9测评数据</p>
|
||||||
|
<div align="center">
|
||||||
|
<div align="center">
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="604" cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td valign="top" width="45">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="136">
|
||||||
|
<p align="center">数据描述</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="69">
|
||||||
|
<p align="center">性质</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="115">
|
||||||
|
<p align="center">规格</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="88">
|
||||||
|
<p align="center">数量</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="56">
|
||||||
|
<p align="center">密级</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="96">
|
||||||
|
<p align="center">提供单位</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td width="136">
|
||||||
|
<p align="center">FLASH配置参数</p>
|
||||||
|
</td>
|
||||||
|
<td width="69">
|
||||||
|
<p align="center">真实</p>
|
||||||
|
</td>
|
||||||
|
<td width="115">
|
||||||
|
<p align="center">单位:字节</p>
|
||||||
|
<p align="center">大小:4.2MB</p>
|
||||||
|
</td>
|
||||||
|
<td width="88">
|
||||||
|
<p align="center">1组</p>
|
||||||
|
</td>
|
||||||
|
<td width="56">
|
||||||
|
<p align="center">非密</p>
|
||||||
|
</td>
|
||||||
|
<td width="96">
|
||||||
|
<p align="center">XX单位</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">2 </p>
|
||||||
|
</td>
|
||||||
|
<td width="136">
|
||||||
|
<p align="center">卫星星地反馈数据</p>
|
||||||
|
</td>
|
||||||
|
<td width="69">
|
||||||
|
<p align="center">模拟</p>
|
||||||
|
</td>
|
||||||
|
<td width="115">
|
||||||
|
<p align="center">符合星地传输接口协议的数据</p>
|
||||||
|
</td>
|
||||||
|
<td width="88">
|
||||||
|
<p align="center">连续2小时</p>
|
||||||
|
</td>
|
||||||
|
<td width="56">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="96">
|
||||||
|
<p align="center">XX单位</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">3 </p>
|
||||||
|
</td>
|
||||||
|
<td width="136">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="69">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="115">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="88">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="56">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="96">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">4 </p>
|
||||||
|
</td>
|
||||||
|
<td width="136">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="69">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="115">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="88">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="56">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="96">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p> </p>`
|
||||||
|
|
||||||
|
export const EnvDiffHTML = `<p>测评环境中的软硬件可以有效支持测试输入输出,能够保障测试顺利有效,但XX数据采用仿真数据,XX设备采用仿真软件模拟,与真实环境有差异,具体环境差异及影响分析见下表。</p>
|
||||||
|
<p style="text-align: center;">表5-10测评环境差异影响分析表</p>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="601" cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="43">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td width="124">
|
||||||
|
<p align="center">真实环境</p>
|
||||||
|
</td>
|
||||||
|
<td width="149">
|
||||||
|
<p align="center">测试环境</p>
|
||||||
|
</td>
|
||||||
|
<td width="285">
|
||||||
|
<p align="center">环境差异及对测评结果影响</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="43">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td width="124">
|
||||||
|
<p align="left">XX设备</p>
|
||||||
|
</td>
|
||||||
|
<td width="149">
|
||||||
|
<p align="left">YY设备</p>
|
||||||
|
</td>
|
||||||
|
<td width="285">
|
||||||
|
<p align="left">YY设备为与XX设备配置、功能相同的真实设备,无差异。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="43">
|
||||||
|
<p align="center">2 </p>
|
||||||
|
</td>
|
||||||
|
<td width="124">
|
||||||
|
<p align="left">XX设备</p>
|
||||||
|
</td>
|
||||||
|
<td width="149">
|
||||||
|
<p align="left">XX仿真设备(内含XX仿真软件)</p>
|
||||||
|
</td>
|
||||||
|
<td width="285">
|
||||||
|
<p>XX仿真设备可仿真XX软件全部交联接口,测试数据格式满足XX功能测试要求,但仿真测试数据为非真实飞行数据,无法针对XX性能指标进行测试,该项指标的测试结果需要采信XX试飞结果。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="43">
|
||||||
|
<p align="center">3 </p>
|
||||||
|
</td>
|
||||||
|
<td width="124">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td width="149">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
<td width="285">
|
||||||
|
<p> </p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: center;"> </p>`
|
||||||
|
|
||||||
|
export const TestLevelAndTypeHTML = `<p>根据《军用软件鉴定测试指南》、软件需求规格说明及其他等效文档,本次测评的测试级别为配置项测试。所选取的测试类型有文档审查、静态分析、功能测试、性能测试、接口测试、边界测试、<em>XX</em>等,具体详见下表。</p>
|
||||||
|
<p style="text-align: center;">表6-1测试级别和测试类型一览表</p>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="595" cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="125">
|
||||||
|
<p><strong>按照软件重要程度及软件类型必须保留的测试类型</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="28">
|
||||||
|
<p align="center"><strong>重要及以上需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>921</strong><strong>、海军项目需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>关键软件需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="30">
|
||||||
|
<p align="center"><strong>非嵌入式软件需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="31">
|
||||||
|
<p align="center"><strong>含数据处理功能需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="33">
|
||||||
|
<p align="center"><strong>重要及以上需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="35">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="34">
|
||||||
|
<p align="center"><strong>均需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="33">
|
||||||
|
<p align="center"><strong>非嵌入式软件需要</strong></p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="33">
|
||||||
|
<p align="center"><strong> </strong></p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="125">
|
||||||
|
<p align="center">软件名称</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">文档审查</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">静态分析</p>
|
||||||
|
</td>
|
||||||
|
<td width="28">
|
||||||
|
<p align="center">代码审查</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">逻辑测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">功能测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">性能测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">边界测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">恢复性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="30">
|
||||||
|
<p align="center">安装性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">数据处理测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center">余量测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="35">
|
||||||
|
<p align="center">强度测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="34">
|
||||||
|
<p align="center">接口测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center">人机交互界面测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center">兼容性测试</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="125">
|
||||||
|
<p align="left">XX软件配置项测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">√</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="28">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="30">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="35">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="34">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="125">
|
||||||
|
<p>系统测试要求的测试类型</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="28">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="30">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="31">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="35">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="34">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center"> </p>
|
||||||
|
</td>
|
||||||
|
<td width="33">
|
||||||
|
<p align="center">必须</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: left;">注:表格中的“√”表示需要进行此项测试,“-”表示不进行此项测试。</p>
|
||||||
|
<p style="text-align: center;">表6-2未选取测试类型原因说明</p>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" width="597" cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">序号</p>
|
||||||
|
</td>
|
||||||
|
<td width="140">
|
||||||
|
<p align="center">软件测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="154">
|
||||||
|
<p align="center">测试类型</p>
|
||||||
|
</td>
|
||||||
|
<td width="259">
|
||||||
|
<p align="center">未选取原因</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">1 </p>
|
||||||
|
</td>
|
||||||
|
<td rowspan="4" width="140">
|
||||||
|
<p align="left">XX软件配置项测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="154">
|
||||||
|
<p>安装性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="259">
|
||||||
|
<p>软件为嵌入式软件,且无安装性需求,故不开展相关测试类型测试</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">2 </p>
|
||||||
|
</td>
|
||||||
|
<td width="154">
|
||||||
|
<p>人机交互界面测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="259">
|
||||||
|
<p>软件为嵌入式软件,且无人机交互界面需求,故不开展相关测试类型测试</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">3 </p>
|
||||||
|
</td>
|
||||||
|
<td width="154">
|
||||||
|
<p>数据处理测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="259">
|
||||||
|
<p>软件需求规模说明中无数据处理要求,且无隐含要求,故不开展相关测试类型测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="45">
|
||||||
|
<p align="center">4 </p>
|
||||||
|
</td>
|
||||||
|
<td width="154">
|
||||||
|
<p>兼容性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="259">
|
||||||
|
<p>软件需求规模说明中无兼容性要求,且无隐含要求,故不开展相关测试类型测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: center;"> </p>`
|
||||||
297
cdTMP/src/views/testmanage/projFragment/constantsExtra.ts
Normal file
297
cdTMP/src/views/testmanage/projFragment/constantsExtra.ts
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
export const TestStrategyHTML = `<p>依据《军用软件测试指南》以及相关国军标的要求,测试组分析了系统研制总要求、系统研制任务书、软件需求规格说明等文档,结合XXXX软件特点和研制方提供的测试环境,制定以下第三方测试策略:</p>
|
||||||
|
<p>a)文档审查内容为审查文档的测试齐套性、准确性、一致性和完整性,对于文档差距较大的软件,由测评机构提出申请,测评机构组织开展会议审查。</p>
|
||||||
|
<p>b)XXXX软件为XXXX(例:关键)软件,需对全部程序开展静态分析和代码审查。</p>
|
||||||
|
<p>c)本测试先实施配置项测试,待配置项测试发现问题闭环后再实施系统级测试;</p>
|
||||||
|
<p>d)对于配置项测试,先开展文档审查、代码审查、静态分析等静态测试,待静态测试发现问题闭环后再开展动态测试;</p>
|
||||||
|
<p>e)本次测评对于性能指标(除时间强度指标外)的验证,需采集10次数据进行验证;</p>
|
||||||
|
<p>f)测试过程中存在有争议的问题,应组织研制单位、软件测评机构、软件总体单位、软件测评总体单位(如有)等相关方确认进行确认。</p>
|
||||||
|
<p>g)软件需求中未明确余量指标要求,依据《军用软件测评实验室测评过程和技能能力要求》按照20%的余量指标要求开展余量测试;</p>
|
||||||
|
<p>h)无法采用动态测试手段验证的内容采用代码审查的方式检查逻辑实现的正确性;</p>
|
||||||
|
<p>i)若存在需要观测中间运行状态等采用动态测试手段无法直接验证的功能时,借助插桩测试手段验证。</p>
|
||||||
|
<p>针对XX功能中的XX等功能/算法,首先采用代码审查的方式,人工审查软件代码实现满足软件需求规格说明、软件设计说明等文档的要求,然后开展动态测试。在动态测试过程中,受XXX限制/影响,采取XXXX方式,模拟典型的/边界上的场景,设计相应测试用例的XXX的测试输入数据,并查看软件能够进行XX功能/算法。</p>
|
||||||
|
<p>经分析,本次第三方测试需要开展的测试类型所对应的测试内容及测试方法见下表所示。</p>
|
||||||
|
<p style="text-align: center;">表6-3测试类型及测试方法</p>
|
||||||
|
<div align="center"> </div>
|
||||||
|
<div align="center">
|
||||||
|
<table border="1" cellspacing="0" cellpadding="0">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">测试类型</p>
|
||||||
|
<p align="center">名称</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">测试类型标识</p>
|
||||||
|
</td>
|
||||||
|
<td width="416">
|
||||||
|
<p align="center">测试内容及方法描述</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">文档审查</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">DC</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">通过人工审查的方式,依据《军用软件开发文档通用要求》,对研制方提交的软件需求规格说明、设计文档进行审查。文档审查依据文档检查单。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">静态分析</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">SA</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">利用静态分析工具辅助进行控制流分析、数据流分析、接口特性分析和表达式分析,验证软件质量度量和编码规则是否满足标准要求</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">代码审查</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">CR</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">按照经过评审的代码审查单,使用测试工具Klocwork和人工审查相结合的方式,对软件进行代码和设计的一致性、代码编程规范性检查。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">逻辑测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">LT</p>
|
||||||
|
</td>
|
||||||
|
<td width="416">
|
||||||
|
<p align="left">测试程序代码逻辑结构设计的合理性、实现的正确性,并对代码的分支覆盖率,语句覆盖率,判定/条件覆盖率、状态机覆盖率的进行统计、分析,评估是否满足覆盖率要求,对无法覆盖的内容逐一进行分析和人工确认。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">功能测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">SU</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">功能测试根据被测软件的功能特点,</p>
|
||||||
|
<p align="left">用正常值的等价类输入数据值测试;</p>
|
||||||
|
<p align="left">b)用非正常值的等价类输入数据值测试;</p>
|
||||||
|
<p align="left">c)进行每个功能的合法边界值和非法边界值输入的测试;</p>
|
||||||
|
<p align="left">d)用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;</p>
|
||||||
|
<p align="left">e)对控制流程的正确性、合理性等进行验证;</p>
|
||||||
|
<p align="left">f)对用户接口正常和异常数据输入的测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">接口测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">IO</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">对配置项接口测试主要测试配置项软件的对外接口,对子系统接口进行测试主要测试子系统的对外接口;</p>
|
||||||
|
<p align="left">1、测试输出的数据格式是否满足通信协议的要求;</p>
|
||||||
|
<p align="left">2、对传输发生异常的数据,软件是否有相应的容错机制。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">性能测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">AC</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">检查被测软件是否满足需求规格说明中规定的性能指标。性能测试需要进行多次读取测量值,每次测量值均满足测试要求,则测试通过。</p>
|
||||||
|
<p align="left">抗干扰、移动性等性能使用信号源、信道仪等设备进行辅助测试;</p>
|
||||||
|
<p align="left">传输性能、自组网性能使用windows自带ping工具、iperf工具等软件工具进行辅助测试;</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">强度测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">ST</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">强制软件运行在不正常到发生故障的情况下(设计的极限状态到超出极限),检验软件可以运行到何种程度的测试;</p>
|
||||||
|
<p align="left">强度测试通过长时间运行系统、加大通信力度等方式进行验证系统的抗压能力。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">安全性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">SE</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">进行对异常条件下软件的处理和保护能力的测试(以表明不会因为可能的单个或多个输入错误而导致的不安全状态);</p>
|
||||||
|
<p align="left">安全性针对用户鉴权、用户登录安全、参数合法性检查、异常断电安全等情况进行测试;</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">人机交互界面测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">GUI</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">依据软件人机界面规范,验证软件人机交互界面的完整性,一致性,准确性,友好性,合理性,指导性;</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">余量测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">AT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">余量测试主要是验证程序存储空间、程序运行空间、数据存储空间以及软件控制周期的余量是否达到需求规格说明中的要求,若无明确要求时,一般要求留有不少于20%的余量。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">边界测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">BT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">针对各属性值的边界值,采用边界值左侧临界点、右侧临界点、边界值以及正常值等采样点数值进行验证。测试包括对正常范围内的边界进行测试,还包括对异常边界进行测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">恢复性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">RE</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">对软件在故障或复位后是否能够恢复到正确的状态进行测试。</p>
|
||||||
|
<p align="left">恢复性包括系统配置恢复、单通恢复、告警恢复等异常状态的恢复情况进行验证;</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">数据处理测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">DP</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">a)应对数据文件存取、数据库操作、数据采集、数据融合、数据转换、数据解析等专门数据处理功能进行测试;</p>
|
||||||
|
<p align="left">b)应对剔除坏数据、数据滤波、数据容错等数据特殊处理功能进行测试;</p>
|
||||||
|
<p align="left">c)应针对数据读取/写入过程中的容错、保护、超时等进行测试;</p>
|
||||||
|
<p align="left">d)应对大数据处理算法、模型的实现正确性进行测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">兼容性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">JR</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">测试软件不同版本之间、不同软件产品之间、不同软硬件环境之间兼容程度</p>
|
||||||
|
<p align="left">主要测试内容如下:</p>
|
||||||
|
<p align="left">a) 当新版本软件替代旧版本软件时,对软件进行向下兼容性测试;</p>
|
||||||
|
<p align="left">b) 当多个软件版本可以同时使用时,对软件进行相互兼容性测试;</p>
|
||||||
|
<p align="left">c) 当两个软件产品可在同一硬件环境中替换使用时,对软件进行交错兼容性测试;</p>
|
||||||
|
<p align="left">d) 当软件产品可能在不同的硬件设备中使用时,对软件进行适配兼容性测试;</p>
|
||||||
|
<p align="left">e) 当软件产品可能在不同的软件环境中使用时,对软件进行环境兼容性测试;</p>
|
||||||
|
<p align="left">f) 针对替代国外软件的国产化软件,对软件进行交错兼容性测试。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">安装性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">AZ</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">测试软件安装过程是否满足安装需求、是否符合安装规程。</p>
|
||||||
|
<p align="left">主要测试内容如下:</p>
|
||||||
|
<p align="left">a) 对软件安装到应用系统中的操作过程是否正确进行测试</p>
|
||||||
|
<p align="left">b) 测试安装过程与产品规格说明或用户手册中所说明的安装规程是否文实一致;</p>
|
||||||
|
<p align="left">c) 对软件卸载功能进行测试,并测试卸载后系统中的软件痕迹是否彻底清除干净;</p>
|
||||||
|
<p align="left">d) 对适用于多种操作系统或多种系统配置的软件,应对软件在各种环境下的安装性进行测试;</p>
|
||||||
|
<p align="left">e) 系统级测试中对应用软件的部署与撤收进行测试,包括在线升级、数据迁移、系统配置等相关。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">容量测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">RL</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">测试软件在正常情况下所具备的最高能力。</p>
|
||||||
|
<p align="left">主要测试内容如下:</p>
|
||||||
|
<p align="left">a) 针对具有时间约束要求的功能,测试出正常工作条件下实际执行时间的最值范围;</p>
|
||||||
|
<p align="left">b) 针对具有空间约束要求的功能,测试出正常工作条件下实际占用空间的最值范围;</p>
|
||||||
|
<p align="left">c) 针对通讯接口,测试出正常工作条件下实际传输时间、传输数据量的最值范围;</p>
|
||||||
|
<p align="left">d) 针对软件的处理能力,如处理目标数等,测试出正常工作条件下处理能力的最值范围。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">互操作性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">HZ</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">测试本软件与其他对同一功能或同一数据操作处理的协调性和一致。</p>
|
||||||
|
<p align="left">主要测试内容如下:</p>
|
||||||
|
<p align="left">a) 对同一功能通过配置可在不同软件中实现的相关软件,测试各种配置下功能的正确性;</p>
|
||||||
|
<p align="left">b) 对因软件降级而将部分功能移交给其他软件执行的相关软件,测试功能移交的正确性;</p>
|
||||||
|
<p align="left">c) 对可异步并发操作同一共享数据源的相关软件,测试对数据源操作的相容性和一致性;</p>
|
||||||
|
<p align="left">d) 当同一功能(如指令条件判别、控制指令下达等)被不同软件(装备)同时进行操作时,测试操作处理的协调性和一致性。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">可靠性测试</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">KK</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">从用户视角出发进行情景想定分析,建立软件的使用剖面(任务剖面/业务剖面/运行剖面/操作剖面等),在保证输入覆盖要求的情况下对软件进行定量度量,如,使用剖面的概率分布、使用特征的覆盖率等;监测软件出现的故障, 记录并统计软件的故障数据,依据故障数据对软件可靠性指标进行量化评估。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="100">
|
||||||
|
<p align="center">数据审查</p>
|
||||||
|
</td>
|
||||||
|
<td width="64">
|
||||||
|
<p align="center">DT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top" width="416">
|
||||||
|
<p align="left">a) 针对装订参数、诸元参数、安装参数等软件依赖数据的完整性、有效性、格式规范性等进行审查;</p>
|
||||||
|
<p align="left">b) 针对影响软件初始运行配置的数据,应对软件最大、最小、典型、默认配置下的数据的有效性进行审查;</p>
|
||||||
|
<p align="left">c) 针对用于控制的数据,应根据控制要求对数据的精度、门限/阈值数据的合理性、数据用于控制过程的准确性等进行审查;</p>
|
||||||
|
<p align="left">d) 针对数据的不可更改性等安全保护措施进行审查。</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p style="text-align: center;"> </p>`
|
||||||
@@ -2,17 +2,91 @@ import { useRoute } from "vue-router"
|
|||||||
import { ref } from "vue"
|
import { ref } from "vue"
|
||||||
import { FragApi } from "@/api/system/fragment"
|
import { FragApi } from "@/api/system/fragment"
|
||||||
import { IFragSearchCondition } from "@/api/system/types/fragmentTypes"
|
import { IFragSearchCondition } from "@/api/system/types/fragmentTypes"
|
||||||
|
import {
|
||||||
|
fragmentName,
|
||||||
|
TestObjectHTML,
|
||||||
|
StaticEnvHTML,
|
||||||
|
StaticSoftHTML,
|
||||||
|
StaticHardHTML,
|
||||||
|
DynamicEnvHTML,
|
||||||
|
DynamicSoftHTML,
|
||||||
|
DynamicHardHTML,
|
||||||
|
TestDataHTML,
|
||||||
|
EnvDiffHTML,
|
||||||
|
TestLevelAndTypeHTML
|
||||||
|
} from "@/views/testmanage/projFragment/constants"
|
||||||
|
import { TestStrategyHTML } from "@/views/testmanage/projFragment/constantsExtra"
|
||||||
|
|
||||||
const useCrudOption = () => {
|
const useCrudOption = () => {
|
||||||
// global
|
// global
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const crudRef = ref()
|
const crudRef = ref()
|
||||||
|
// 5.下拉框v-model的值
|
||||||
|
const selectedValue = ref<string>(fragmentName.NotSelect)
|
||||||
// crud-options
|
// crud-options
|
||||||
const crudOptions = ref<object>({
|
const crudOptions = ref<object>({
|
||||||
api: FragApi.getFragList,
|
api: FragApi.getFragList,
|
||||||
add: { show: true, api: FragApi.add },
|
add: { show: true, api: FragApi.add },
|
||||||
edit: { show: true, api: FragApi.update },
|
edit: { show: true, api: FragApi.update },
|
||||||
delete: { show: true, api: FragApi.delete },
|
delete: { show: true, api: FragApi.delete },
|
||||||
|
// 功能:预制文档片段数据
|
||||||
|
beforeOpenAdd: () => {
|
||||||
|
const columnsService = crudRef.value.getColumnService()
|
||||||
|
//
|
||||||
|
switch (selectedValue.value) {
|
||||||
|
case fragmentName.NotSelect:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", "")
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", "")
|
||||||
|
break
|
||||||
|
case fragmentName.TestObject:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestObject)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", TestObjectHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.StaticEnv:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.StaticEnv)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", StaticEnvHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.StaticSoft:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.StaticSoft)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", StaticSoftHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.StaticHard:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.StaticHard)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", StaticHardHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.DynamicEnv:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.DynamicEnv)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", DynamicEnvHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.DynamicSoft:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.DynamicSoft)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", DynamicSoftHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.DynamicHard:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.DynamicHard)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", DynamicHardHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.TestData:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestData)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", TestDataHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.EnvDiff:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.EnvDiff)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", EnvDiffHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.TestLevelAndType:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestLevelAndType)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", TestLevelAndTypeHTML)
|
||||||
|
break
|
||||||
|
case fragmentName.TestStrategy:
|
||||||
|
columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestStrategy)
|
||||||
|
columnsService.get("content").setAttr("addDefaultValue", TestStrategyHTML)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
},
|
||||||
// 新增需要项目id
|
// 新增需要项目id
|
||||||
parameters: {
|
parameters: {
|
||||||
projectId: route.params.projectId as string
|
projectId: route.params.projectId as string
|
||||||
@@ -34,11 +108,12 @@ const useCrudOption = () => {
|
|||||||
isDbClickEdit: false,
|
isDbClickEdit: false,
|
||||||
searchColNumber: 2,
|
searchColNumber: 2,
|
||||||
formOption: {
|
formOption: {
|
||||||
isFull: true,
|
isFull: false,
|
||||||
|
width: "80%",
|
||||||
layout: [
|
layout: [
|
||||||
{
|
{
|
||||||
formType: "grid",
|
formType: "grid",
|
||||||
cols: [{ span: 12, formList: [{ dataIndex: "name" }] }]
|
cols: [{ span: 6, formList: [{ dataIndex: "name" }] }]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -84,7 +159,8 @@ const useCrudOption = () => {
|
|||||||
crudRef,
|
crudRef,
|
||||||
crudOptions,
|
crudOptions,
|
||||||
crudColumns,
|
crudColumns,
|
||||||
route
|
route,
|
||||||
|
selectedValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,42 @@
|
|||||||
<div class="proj-fragment-container">
|
<div class="proj-fragment-container">
|
||||||
<div class="ma-content-block lg:flex justify-between p-4">
|
<div class="ma-content-block lg:flex justify-between p-4">
|
||||||
<div class="lg:w-full w-full lg:ml-4 mt-5 lg:mt-0" v-loading="isDataLoading">
|
<div class="lg:w-full w-full lg:ml-4 mt-5 lg:mt-0" v-loading="isDataLoading">
|
||||||
<page-header :data="headerData"></page-header>
|
<page-header :data="headerData">
|
||||||
|
<a-popover position="right">
|
||||||
|
<icon-exclamation-circle-fill size="26" style="color: #ff9800" />
|
||||||
|
<template #content>
|
||||||
|
<a-typography-title :heading="6">注意:</a-typography-title>
|
||||||
|
<a-typography-paragraph>
|
||||||
|
<p>
|
||||||
|
自定义片段的名称必须是<span class="text-red-500">平台所支持的片段名称</span
|
||||||
|
>,否则无效!
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
测试人员新增文档片段,可录入<span class="text-red-500">文字(含缩进)</span>、<span
|
||||||
|
class="text-red-500"
|
||||||
|
>图片(居中)</span
|
||||||
|
>、<span class="text-red-500">表格</span>等内容
|
||||||
|
</p>
|
||||||
|
</a-typography-paragraph>
|
||||||
|
<a-typography-title :heading="6">目前已支持片段名称:</a-typography-title>
|
||||||
|
<a-typography-paragraph>
|
||||||
|
<ul>
|
||||||
|
<li>测评对象</li>
|
||||||
|
<li>静态测试环境说明</li>
|
||||||
|
<li>静态软件项</li>
|
||||||
|
<li>静态硬件和固件项</li>
|
||||||
|
<li>动态测试环境说明</li>
|
||||||
|
<li>动态软件项</li>
|
||||||
|
<li>动态硬件和固件项</li>
|
||||||
|
<li>测评数据</li>
|
||||||
|
<li>环境差异性分析</li>
|
||||||
|
<li>测试级别和测试类型</li>
|
||||||
|
<li>测试策略</li>
|
||||||
|
</ul>
|
||||||
|
</a-typography-paragraph>
|
||||||
|
</template>
|
||||||
|
</a-popover>
|
||||||
|
</page-header>
|
||||||
<hr />
|
<hr />
|
||||||
<ma-crud class="mt-3" :options="crudOptions" :columns="crudColumns" ref="crudRef">
|
<ma-crud class="mt-3" :options="crudOptions" :columns="crudColumns" ref="crudRef">
|
||||||
<!-- 切换is_main -->
|
<!-- 切换is_main -->
|
||||||
@@ -12,6 +47,17 @@
|
|||||||
:before-change="beforeSwitchChange(record)"
|
:before-change="beforeSwitchChange(record)"
|
||||||
></a-switch>
|
></a-switch>
|
||||||
</template>
|
</template>
|
||||||
|
<!-- 选择预制文档片段模版 -->
|
||||||
|
<template #tableAfterButtons>
|
||||||
|
选择新增时预制数据:
|
||||||
|
<a-select
|
||||||
|
v-model="selectedValue"
|
||||||
|
:style="{ width: '230px' }"
|
||||||
|
placeholder="请选择新增时文档片段模版"
|
||||||
|
>
|
||||||
|
<a-option v-for="(value, key) in fragmentName" :key="key">{{ value }}</a-option>
|
||||||
|
</a-select>
|
||||||
|
</template>
|
||||||
</ma-crud>
|
</ma-crud>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,11 +73,13 @@ import projectApi from "@/api/testmanage/project"
|
|||||||
// types - import
|
// types - import
|
||||||
import type { IPageHeaderProps } from "../components/PageHeader/types"
|
import type { IPageHeaderProps } from "../components/PageHeader/types"
|
||||||
import { Message } from "@arco-design/web-vue"
|
import { Message } from "@arco-design/web-vue"
|
||||||
|
// 导入文档片段的配置
|
||||||
|
import { fragmentName } from "@/views/testmanage/projFragment/constants"
|
||||||
// hooks-import
|
// hooks-import
|
||||||
import useFetchData from "@/hooks/fetchData"
|
import useFetchData from "@/hooks/fetchData"
|
||||||
import useCrudOption from "./hooks/crudOption"
|
import useCrudOption from "./hooks/crudOption"
|
||||||
// 1.hook-crudOptions
|
// 1.hook-crudOptions
|
||||||
const { crudRef, crudOptions, crudColumns, route } = useCrudOption()
|
const { crudRef, crudOptions, crudColumns, route, selectedValue } = useCrudOption()
|
||||||
// 2.hook-获取单个项目信息
|
// 2.hook-获取单个项目信息
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
return projectApi.getProjectById(route.params.projectId)
|
return projectApi.getProjectById(route.params.projectId)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
:on-before-cancel="handleClickConfirmButton"
|
:on-before-cancel="handleClickConfirmButton"
|
||||||
>
|
>
|
||||||
<template #title>正在生成{{ text }}</template>
|
<template #title>正在生成{{ text }}</template>
|
||||||
<div><a-progress :percent="percent" size="large" /></div>
|
<div><a-progress :percent="percent" size="large" :show-text="false" /></div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -17,7 +17,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, watch, onUnmounted } from "vue"
|
import { ref, watch, onUnmounted } from "vue"
|
||||||
import { Notification } from "@arco-design/web-vue"
|
import { Notification } from "@arco-design/web-vue"
|
||||||
import seitaiGenerateApi from "@/api/generate/seitaiGenerate"
|
|
||||||
const emits = defineEmits(["clickConfirm"])
|
const emits = defineEmits(["clickConfirm"])
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
visible: {
|
visible: {
|
||||||
@@ -46,25 +45,32 @@ const handleClickConfirmButton = async () => {
|
|||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 使用requestAnimationFrame优化性能 - 放入下面进度条中
|
||||||
|
let animateFrame = null
|
||||||
|
const updateProgress = () => {
|
||||||
|
if (percent.value <= 0.95) {
|
||||||
|
percent.value += 0.00018
|
||||||
|
animateFrame = requestAnimationFrame(updateProgress)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const cancelAnimateFrame = () => {
|
||||||
|
if (animateFrame) {
|
||||||
|
cancelAnimationFrame(animateFrame)
|
||||||
|
animateFrame = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 打开modal后自动移动
|
// 打开modal后自动移动
|
||||||
let timer = null
|
|
||||||
watch(
|
watch(
|
||||||
() => props.visible,
|
() => props.visible,
|
||||||
(newVal, oldVal) => {
|
(newVal, oldVal) => {
|
||||||
if (newVal) {
|
if (newVal) {
|
||||||
percent.value = 0
|
percent.value = 0
|
||||||
timer = setInterval(() => {
|
animateFrame = requestAnimationFrame(updateProgress)
|
||||||
if (percent.value <= 0.95) {
|
|
||||||
let temp = parseFloat(percent.value.toFixed(2))
|
|
||||||
temp += 0.01
|
|
||||||
percent.value = parseFloat(temp.toFixed(2))
|
|
||||||
}
|
|
||||||
}, 120)
|
|
||||||
} else {
|
} else {
|
||||||
// 进度条清零
|
cancelAnimateFrame()
|
||||||
percent.value = 0
|
percent.value = 0
|
||||||
clearInterval(timer)
|
|
||||||
timer = null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -74,15 +80,13 @@ watch(
|
|||||||
(newVal, oldVal) => {
|
(newVal, oldVal) => {
|
||||||
if (newVal) {
|
if (newVal) {
|
||||||
percent.value = 1
|
percent.value = 1
|
||||||
clearInterval(timer)
|
cancelAnimateFrame()
|
||||||
timer = null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
clearInterval(timer)
|
|
||||||
timer = null
|
|
||||||
// 进度条清零
|
// 进度条清零
|
||||||
|
cancelAnimateFrame()
|
||||||
percent.value = 0
|
percent.value = 0
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -4,14 +4,23 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* 生成最终产品文档的进度条模块
|
* 生成最终产品文档的进度条模块
|
||||||
*/
|
*/
|
||||||
async create_entire_doc(visible, isComplete, api, record_id) {
|
async create_entire_doc(visible, isComplete, api, record_id, docName) {
|
||||||
visible.value = true
|
visible.value = true
|
||||||
isComplete.value = false
|
isComplete.value = false
|
||||||
const st = await api({ id: record_id }).catch((err) => {
|
const st = await api({ id: record_id }).catch((err) => {
|
||||||
isComplete.value = true
|
isComplete.value = true
|
||||||
visible.value = false
|
visible.value = false
|
||||||
})
|
})
|
||||||
|
// 下面是创建后Blob并触发下载
|
||||||
|
const blob = new Blob([st], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" })
|
||||||
|
const url = window.URL.createObjectURL(blob)
|
||||||
|
const a = document.createElement("a")
|
||||||
|
a.href = url
|
||||||
|
a.download = `${docName}.docx` // 设置下载文件名
|
||||||
|
a.click()
|
||||||
|
window.URL.revokeObjectURL(url) // 释放 URL 对象
|
||||||
|
// 上面是触发下载
|
||||||
isComplete.value = true
|
isComplete.value = true
|
||||||
Message.success(st.message)
|
Message.success("文档生成并下载成功!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -373,13 +373,13 @@ const useCrudInit = function () {
|
|||||||
{
|
{
|
||||||
formType: "input",
|
formType: "input",
|
||||||
title: "联系电话",
|
title: "联系电话",
|
||||||
maxLength: 11,
|
maxLength: 25,
|
||||||
dataIndex: "entrust_contact_phone",
|
dataIndex: "entrust_contact_phone",
|
||||||
hide: true,
|
hide: true,
|
||||||
commonRules: [
|
commonRules: [
|
||||||
{ required: true, message: "联系电话必填" },
|
{ required: true, message: "联系电话必填" },
|
||||||
{
|
{
|
||||||
match: /^1[3456789]\d{9}$/,
|
match: /^(1[3-9]\d{9})|(\d{3,4}-\d{7,8}(-\d+)?)$/,
|
||||||
message: "电话号码格式错误"
|
message: "电话号码格式错误"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -408,13 +408,13 @@ const useCrudInit = function () {
|
|||||||
{
|
{
|
||||||
formType: "input",
|
formType: "input",
|
||||||
title: "联系电话",
|
title: "联系电话",
|
||||||
maxLength: 11,
|
maxLength: 25,
|
||||||
dataIndex: "dev_contact_phone",
|
dataIndex: "dev_contact_phone",
|
||||||
hide: true,
|
hide: true,
|
||||||
commonRules: [
|
commonRules: [
|
||||||
{ required: true, message: "联系电话必填" },
|
{ required: true, message: "联系电话必填" },
|
||||||
{
|
{
|
||||||
match: /^1[3456789]\d{9}$/,
|
match: /^(1[3-9]\d{9})|(\d{3,4}-\d{7,8}(-\d+)?)$/,
|
||||||
message: "电话号码格式错误"
|
message: "电话号码格式错误"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -448,11 +448,11 @@ const useCrudInit = function () {
|
|||||||
dataIndex: "test_contact_phone",
|
dataIndex: "test_contact_phone",
|
||||||
addDefaultValue: textInfo.testUnintContactPhoneNumber,
|
addDefaultValue: textInfo.testUnintContactPhoneNumber,
|
||||||
hide: true,
|
hide: true,
|
||||||
maxLength: 11,
|
maxLength: 25,
|
||||||
commonRules: [
|
commonRules: [
|
||||||
{ required: true, message: "联系电话必填" },
|
{ required: true, message: "联系电话必填" },
|
||||||
{
|
{
|
||||||
match: /^1[3456789]\d{9}$/,
|
match: /^(1[3-9]\d{9})|(\d{3,4}-\d{7,8}(-\d+)?)$/,
|
||||||
message: "电话号码格式错误"
|
message: "电话号码格式错误"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const useSeitaiModal = function () {
|
|||||||
// ~~~~~~~~测试说明生成文档~~~~~~~~
|
// ~~~~~~~~测试说明生成文档~~~~~~~~
|
||||||
const createSeitaiShuoming = async (record: any) => {
|
const createSeitaiShuoming = async (record: any) => {
|
||||||
ptext.value = "测试说明"
|
ptext.value = "测试说明"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createShuomingSeiTai, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createShuomingSeiTai, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ~~~~~~~~测试大纲生成文档~~~~~~~~
|
// ~~~~~~~~测试大纲生成文档~~~~~~~~
|
||||||
@@ -23,33 +23,33 @@ const useSeitaiModal = function () {
|
|||||||
// 根据一系列文档生成大纲 - 这里有进度条组件、a-modal组件
|
// 根据一系列文档生成大纲 - 这里有进度条组件、a-modal组件
|
||||||
// 1.打开进度条组件
|
// 1.打开进度条组件
|
||||||
ptext.value = "测评大纲"
|
ptext.value = "测评大纲"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createDagangSeiTai, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createDagangSeiTai, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
// ~~~~~~~~记录生成文档~~~~~~~~
|
// ~~~~~~~~记录生成文档~~~~~~~~
|
||||||
const createSeitaiJilu = async (record: any) => {
|
const createSeitaiJilu = async (record: any) => {
|
||||||
ptext.value = "测试记录"
|
ptext.value = "测试记录"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createJiluSeiTai, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createJiluSeiTai, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ~~~~~~~~报告生成文档~~~~~~~~
|
// ~~~~~~~~报告生成文档~~~~~~~~
|
||||||
const createSeitaiBaogao = async (record: any) => {
|
const createSeitaiBaogao = async (record: any) => {
|
||||||
ptext.value = "测评报告"
|
ptext.value = "测评报告"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
// ~~~~~~~~回归测试说明~~~~~~~~
|
// ~~~~~~~~回归测试说明~~~~~~~~
|
||||||
const createSeitaiHsm = async (record: any) => {
|
const createSeitaiHsm = async (record: any) => {
|
||||||
ptext.value = "回归测试说明"
|
ptext.value = "回归测试说明"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
// ~~~~~~~~回归测试记录~~~~~~~~
|
// ~~~~~~~~回归测试记录~~~~~~~~
|
||||||
const createSeitaiHjl = async (record: any) => {
|
const createSeitaiHjl = async (record: any) => {
|
||||||
ptext.value = "回归测试记录"
|
ptext.value = "回归测试记录"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
// ~~~~~~~~问题单~~~~~~~~
|
// ~~~~~~~~问题单~~~~~~~~
|
||||||
const createSeitaiWtd = async (record: any) => {
|
const createSeitaiWtd = async (record: any) => {
|
||||||
ptext.value = "问题单"
|
ptext.value = "问题单"
|
||||||
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createWtdDocument, record.id)
|
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createWtdDocument, record.id, ptext.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user