_bid_ch5.py 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. # -*- coding: utf-8 -*-
  2. """附件五 技术方案 第 5 章 UAT 测试与质量保障(3 分)。
  3. 对应评分要素:测试策略、业务场景覆盖、诊断模型验证、用例设计、缺陷管理、验收标准。
  4. """
  5. BLOCKS_CH5 = [
  6. ("p", "本章按评分要素依次给出测试策略、业务场景覆盖、诊断模型验证方法、"
  7. "用例设计、缺陷管理与验收标准。"
  8. "本项目的测试工作以采购人主导的 UAT 验收测试为核心,"
  9. "我方承担测试方案编制、用例设计、环境准备、缺陷修复与回归验证,"
  10. "并向采购人提交完整的测试记录作为验收依据。"),
  11. ("h2", "5.1 测试策略"),
  12. ("h3", "5.1.1 测试体系与阶段划分"),
  13. ("p", "测试体系按左右对应的原则组织:需求确认、功能设计、技术设计、"
  14. "配置与开发四个建设环节,"
  15. "分别对应 UAT 验收测试、系统集成测试、接口与数据测试、"
  16. "单元与配置自测四个验证环节。"
  17. "每个建设环节的产出即为对应验证环节的判定基准,"
  18. "不存在无基准的测试。"),
  19. ("fig", ("fig_test_v", "测试体系与阶段交付物")),
  20. ("h3", "5.1.2 各阶段测试职责"),
  21. ("p", "四个阶段的测试主体、依据与准出条件如下表。"
  22. "阶段之间设置准出条件,"
  23. "未达到准出条件不进入下一阶段——"
  24. "这是避免问题层层向后传递、"
  25. "最终在 UAT 阶段集中爆发的关键控制点。"),
  26. ("table", ("测试阶段划分与职责",
  27. ["测试阶段", "主体", "测试依据", "准出条件"],
  28. [["单元与配置自测", "我方开发与实施人员",
  29. "功能设计说明、配置清单",
  30. "配置项自检清单全部通过;自测缺陷全部关闭"],
  31. ["接口与数据测试", "我方技术人员 + 采购人 IT",
  32. "接口文档、数据映射表、指标口径确认书",
  33. "接口联调通过;数据行数与金额与源系统对账一致"],
  34. ["系统集成测试", "我方测试人员",
  35. "业务流程说明、跨模块场景清单",
  36. "全部业务场景执行通过;致命与严重缺陷关闭"],
  37. ["UAT 验收测试", "采购人业务部门主导,我方支持",
  38. "业务需求清单、UAT 用例集、验收标准",
  39. "用例通过率达标;缺陷达到上线门槛;采购人签署验收结论"]],
  40. [2.2, 2.6, 3.2, 4.4], ["l", "l", "l", "l"])),
  41. ("h3", "5.1.3 测试环境与数据"),
  42. ("p", "项目使用开发、测试、验收、生产四套环境。"
  43. "验收环境与生产环境的软件版本、配置参数、集成通道设置保持一致,"
  44. "数据按脱敏规则从生产或源系统同步,"
  45. "使 UAT 阶段发现的问题具有生产代表性。"),
  46. ("p", "测试数据分两类:一类是采购人提供的真实历史业务数据,"
  47. "用于验证数据加工、指标计算与诊断结论是否符合实际;"
  48. "另一类是为覆盖边界条件而构造的用例数据,"
  49. "例如超期订单、零库存物料、检验不合格批次等,"
  50. "用于验证异常路径。"
  51. "两类数据配合使用,兼顾真实性与覆盖度。"),
  52. ("h2", "5.2 业务场景覆盖"),
  53. ("h3", "5.2.1 场景设计原则"),
  54. ("p", "业务场景以端到端可交付的业务价值为单位设计,"
  55. "而不是以单个功能页面为单位。"
  56. "原因是制造业的运营问题大多发生在环节交接处——"
  57. "单个功能各自都能正常操作,"
  58. "但订单信息传到生产环节时口径变了、"
  59. "采购到货信息回流到齐套判断时时点错了。"
  60. "只有按端到端场景测试,才能暴露这类问题。"),
  61. ("h3", "5.2.2 场景清单"),
  62. ("p", "本项目规划的 UAT 业务场景如下表,"
  63. "覆盖采购需求涉及的全部核心业务过程与智能运营能力。"
  64. "场景清单在项目启动后与采购人确认并可按实际业务补充。"),
  65. ("table", ("UAT 业务场景清单",
  66. ["序号", "业务场景", "覆盖模块", "验证要点"],
  67. [["1", "主数据建立与批量导入",
  68. "S0", "编码规则生效、批量导入校验、变更全链路同步"],
  69. ["2", "合同评审到订单评审",
  70. "S0、S1", "评审周期规则、交期测算依据、评审流转与留痕"],
  71. ["3", "订单下达到工单生成",
  72. "S1、S2", "订单与工单关联、优先级传递、批次号写入"],
  73. ["4", "排程到可执行日计划",
  74. "S2", "产能约束生效、工作日历与加班、排产异常记录"],
  75. ["5", "物料需求计划到采购订单",
  76. "S3", "BOM 多层展开、净需求扣减、前置期反推下单时点"],
  77. ["6", "齐套判定与欠料预警",
  78. "S3、S5", "齐套字段计算、欠料定位、异常自动生成"],
  79. ["7", "采购交货到来料检验入库",
  80. "S4、S5", "交期回复、发货单流转、IQC 检验与入库"],
  81. ["8", "生产执行与过程检验",
  82. "S6", "工序流转、IPQC 录入与审核、扩展表写入不改源单"],
  83. ["9", "成品入库到发货交付",
  84. "S7、S1", "FQC 检验、入库、发货实绩回流订单交付状态"],
  85. ["10", "采购退货与质量追溯",
  86. "S4、S5、S6", "退货流转、批次追溯链、责任定位"],
  87. ["11", "订单交付全景追踪",
  88. "S1、S8", "八页签数据一致、节点时效预警、链路全景展示"],
  89. ["12", "异常发现到闭环验证",
  90. "S8", "规则触发、自动派单、超时升级、验证不通过退回"],
  91. ["13", "智能诊断与根因定位",
  92. "S9", "诊断结论可解释、维度下钻、措施与责任推荐"],
  93. ["14", "指标计算与看板下钻",
  94. "S9", "指标口径一致、L1–L4 下钻到明细、口径版本留痕"],
  95. ["15", "ChatBI 自然语言取数",
  96. "S9", "取数结果与看板一致、语义解析准确性"],
  97. ["16", "移动端四类场景",
  98. "移动端", "生产执行、仓储物流、质量管理、协同决策"],
  99. ["17", "供应商门户协同",
  100. "S4", "外部账号隔离、数据权限、交期回复与发货通知"],
  101. ["18", "集成通道与断点续传",
  102. "集成", "六种接入方式、实时时延、网络中断恢复不重不漏"],
  103. ["19", "权限与数据可见范围",
  104. "平台", "角色权限、数据权限、越权访问拦截"],
  105. ["20", "性能与并发",
  106. "平台", "页面与查询响应、并发用户、夜间批量处理时长"]],
  107. [0.9, 3.4, 1.9, 6.2], ["c", "l", "l", "l"])),
  108. ("h2", "5.3 诊断模型验证"),
  109. ("h3", "5.3.1 验证的必要性"),
  110. ("p", "诊断模型与普通功能的测试方式不同。"
  111. "普通功能的正确性可以通过输入输出比对判定,"
  112. "而诊断模型输出的是判断结论,"
  113. "需要验证的是「这个结论是否符合业务实际」,"
  114. "无法仅靠程序逻辑核对。"
  115. "因此本项目为诊断模型单独设计验证方法。"),
  116. ("h3", "5.3.2 三种验证方法"),
  117. ("p", "第一种是历史数据回溯验证。"
  118. "取采购人过去一段时期的真实业务数据导入验收环境,"
  119. "让诊断引擎重新分析,"
  120. "把系统给出的问题清单与根因判断,"
  121. "与采购人当时实际发生的问题及事后查明的原因进行比对。"
  122. "命中一致的说明模型有效,"
  123. "漏报与误报的逐条分析原因并调整规则与阈值。"),
  124. ("p", "第二种是业务专家评审验证。"
  125. "由采购人的计划、采购、生产、质量各环节业务骨干"
  126. "对系统输出的诊断结论逐条评议,"
  127. "判断结论是否成立、根因是否指向正确、建议措施是否可执行。"
  128. "评议意见形成记录,"
  129. "作为规则与措施库调整的依据。"),
  130. ("p", "第三种是构造用例验证。"
  131. "针对每类诊断场景构造明确应当触发与明确不应触发的边界数据,"
  132. "验证规则的触发条件是否准确、"
  133. "阈值边界是否符合预期、"
  134. "多条件组合规则的逻辑是否正确。"
  135. "这一方法覆盖的是模型的技术正确性,"
  136. "与前两种方法验证的业务有效性互为补充。"),
  137. ("h3", "5.3.3 验证指标与通过标准"),
  138. ("p", "诊断模型的验证以量化指标判定,标准如下表。"
  139. "指标的具体目标值在项目启动后结合采购人数据质量情况协商确定,"
  140. "下表为我方建议值。"),
  141. ("table", ("诊断模型验证指标与建议标准",
  142. ["验证指标", "含义", "建议标准", "验证方法"],
  143. [["规则命中准确率", "系统报出的问题中确实成立的比例",
  144. "≥ 90%", "历史回溯 + 专家评审"],
  145. ["问题漏报率", "实际发生但系统未报出的问题比例",
  146. "≤ 10%", "历史回溯比对"],
  147. ["根因指向正确率", "根因判断与事后查明原因一致的比例",
  148. "≥ 80%", "历史回溯 + 专家评审"],
  149. ["措施可执行率", "建议措施经业务确认可直接执行的比例",
  150. "≥ 80%", "业务专家评审"],
  151. ["边界条件正确率", "构造用例的触发判定与预期一致的比例",
  152. "100%", "构造用例验证"],
  153. ["结论可追溯性", "诊断结论可下钻到支撑明细的比例",
  154. "100%", "抽样下钻核对"]],
  155. [2.4, 4.4, 1.8, 3.2], ["l", "l", "c", "l"])),
  156. ("p", "对于统计模型输出的提示类结论,"
  157. "不适用命中准确率的硬性标准,"
  158. "改以「提示是否有业务参考价值」由业务专家定性评价,"
  159. "并通过调整敏感度控制提示数量在业务可承受的范围内。"
  160. "这一区别处理源于统计方法的固有特点,"
  161. "在测试方案中予以明确以避免验收争议。"),
  162. ("h2", "5.4 用例设计"),
  163. ("h3", "5.4.1 用例编号与三联对照"),
  164. ("p", "测试用例编号采用 TC-Sn-nnn 格式,"
  165. "与业务需求编号 REQ-Sn-nnn、功能设计编号 FUNC-Sn-nnn 形成三联对照。"
  166. "验收时按编号逐项核对:"
  167. "每条需求由哪个功能实现、由哪条用例验证、验证结果如何,"
  168. "全部有据可查,"
  169. "不会出现需求与测试对不上号的情况。"),
  170. ("h3", "5.4.2 用例要素与设计方法"),
  171. ("p", "每条用例包含用例编号、所属场景、关联需求与功能编号、"
  172. "前置条件、测试数据、操作步骤、预期结果、实际结果与判定结论九项要素。"
  173. "预期结果必须写成可客观判定的表述,"
  174. "不使用「显示正常」「功能可用」这类无法判定的描述。"),
  175. ("p", "用例设计方法按功能特性选择:"
  176. "数据录入类功能采用等价类划分与边界值分析,"
  177. "覆盖必填校验、格式校验、长度边界与重复校验;"
  178. "流程类功能采用状态迁移分析,"
  179. "覆盖正常流转、驳回、撤回与并发操作;"
  180. "计算类功能采用判定表,"
  181. "覆盖各条件组合下的计算结果;"
  182. "查询类功能覆盖单条件、多条件组合、无结果与大数据量分页。"),
  183. ("h3", "5.4.3 用例规模与覆盖要求"),
  184. ("p", "用例覆盖要求如下表。"
  185. "覆盖率的计算基准是本项目确认的需求清单与功能清单,"
  186. "在项目启动后随需求确认结果最终确定。"),
  187. ("table", ("用例覆盖要求",
  188. ["覆盖对象", "覆盖要求", "说明"],
  189. [["业务需求", "100%",
  190. "每条需求至少对应一条用例,需求与用例双向可追溯"],
  191. ["功能页面", "100%",
  192. "167 项功能逐项设计基本操作与关键校验用例"],
  193. ["业务场景", "100%",
  194. "20 个端到端场景全部设计场景用例"],
  195. ["接口", "100%",
  196. "每个接口覆盖正常、异常、超时、重复调用四类情形"],
  197. ["指标", "100%",
  198. "每个指标核对计算口径与下钻明细一致性"],
  199. ["诊断场景", "100%",
  200. "每类诊断场景设计应触发与不应触发的边界用例"],
  201. ["异常路径", "关键路径 100%",
  202. "权限越界、数据缺失、外部系统不可用等异常分支"]],
  203. [2.0, 2.2, 6.4], ["l", "c", "l"])),
  204. ("h2", "5.5 缺陷管理"),
  205. ("h3", "5.5.1 缺陷流程与分级"),
  206. ("p", "缺陷统一在缺陷管理工具中登记与流转,"
  207. "流程为提出、确认、修复、回归、关闭五步,"
  208. "回归不通过退回修复。"
  209. "缺陷按致命、严重、一般、轻微四级分类,"
  210. "各级的判定标准与响应修复时限如下图。"),
  211. ("fig", ("fig_defect_flow", "缺陷管理流程与分级标准")),
  212. ("h3", "5.5.2 缺陷登记要求"),
  213. ("p", "缺陷登记必须包含所属模块与功能编号、关联用例编号、"
  214. "复现步骤、实际结果与预期结果、发生环境、"
  215. "以及截图或数据证据。"
  216. "登记信息不完整的缺陷不进入修复流程,"
  217. "由确认环节退回补充——"
  218. "这一要求看似增加了提出成本,"
  219. "实际上避免了大量「无法复现」造成的来回沟通。"),
  220. ("h3", "5.5.3 缺陷过程管理"),
  221. ("p", "缺陷情况纳入项目周报,"
  222. "统计新增数、修复数、关闭数、重开数、"
  223. "各级剩余数与平均修复时长,"
  224. "并按模块分布分析。"
  225. "每周质量例会上逐项过一遍未关闭的致命与严重缺陷,"
  226. "确认责任人与解决时点。"),
  227. ("p", "重开率是我方内部重点关注的指标。"
  228. "缺陷反复重开通常说明修复只处理了表象,"
  229. "或者回归验证不充分。"
  230. "对重开两次以上的缺陷,"
  231. "要求技术负责人参与分析根本原因,"
  232. "并检查是否存在同类问题尚未暴露。"),
  233. ("h2", "5.6 验收标准"),
  234. ("h3", "5.6.1 上线门槛"),
  235. ("p", "系统上线须同时满足以下条件:"
  236. "致命与严重缺陷全部关闭;"
  237. "一般缺陷关闭率不低于 95%;"
  238. "剩余轻微缺陷列入遗留清单并明确责任人与解决版本,"
  239. "经采购人书面确认;"
  240. "UAT 用例通过率不低于 98%,"
  241. "未通过用例均属轻微问题且已列入遗留清单;"
  242. "性能测试指标达到采购需求约定值;"
  243. "上线检查单与回滚预案完成确认。"),
  244. ("h3", "5.6.2 验收指标"),
  245. ("p", "项目验收以下表指标判定,"
  246. "各项均可客观核查,"
  247. "避免以主观感受作为验收依据。"),
  248. ("table", ("项目验收指标",
  249. ["验收维度", "验收指标", "标准"],
  250. [["功能完整性", "确认需求清单实现率", "100%"],
  251. ["功能完整性", "UAT 用例通过率", "≥ 98%"],
  252. ["数据准确性", "指标计算结果与人工核算一致率", "100%(抽样核对)"],
  253. ["数据准确性", "同步数据与源系统对账一致率", "100%"],
  254. ["集成完整性", "集成通道联调通过率", "100%"],
  255. ["诊断有效性", "诊断规则命中准确率", "≥ 90%"],
  256. ["诊断有效性", "诊断结论可追溯性", "100%"],
  257. ["性能", "常规页面与查询响应", "≤ 30 秒"],
  258. ["性能", "复杂查询与多图联动", "≤ 60 秒"],
  259. ["性能", "并发能力", "约 1000 人在线、400 人并发"],
  260. ["缺陷", "致命与严重缺陷剩余数", "0"],
  261. ["缺陷", "一般缺陷关闭率", "≥ 95%"],
  262. ["培训", "培训考核通过率", "≥ 95%"],
  263. ["交付物", "交付物清单完整性", "100% 签收"]],
  264. [2.2, 4.4, 3.8], ["l", "l", "l"])),
  265. ("h3", "5.6.3 交付物清单"),
  266. ("p", "项目验收时提交的文档与交付物如下表,"
  267. "均按统一模板编制、版本受控,"
  268. "并随系统变更同步更新。"),
  269. ("table", ("项目交付物清单",
  270. ["类别", "交付物", "用途"],
  271. [["系统与源码", "系统软件安装包与部署脚本", "上线部署与后续重建"],
  272. ["系统与源码", "全部源代码及编译说明", "采购人自主维护与二次开发"],
  273. ["需求与设计", "业务需求说明书(REQ 编号)", "需求确认与验收基准"],
  274. ["需求与设计", "功能设计说明(FUNC 编号)", "功能实现依据"],
  275. ["需求与设计", "业务蓝图设计方案(分模块)", "业务流程与方案说明"],
  276. ["需求与设计", "指标口径确认书", "指标验收与考核基准"],
  277. ["技术文档", "系统架构与部署说明", "运维与后续扩展依据"],
  278. ["技术文档", "数据库设计与数据字典", "数据理解与二次开发"],
  279. ["技术文档", "接口文档与数据映射表", "集成对接与自行开发"],
  280. ["测试文档", "测试方案与用例集(TC 编号)", "测试执行依据"],
  281. ["测试文档", "测试执行记录与测试报告", "验收依据"],
  282. ["测试文档", "缺陷清单与遗留问题清单", "上线判定与后续跟踪"],
  283. ["运维文档", "系统管理员手册", "日常运维操作"],
  284. ["运维文档", "备份恢复与应急处置手册", "故障应对"],
  285. ["培训资料", "业务操作手册(分岗位)", "操作培训与新人自学"],
  286. ["培训资料", "智能诊断与数据分析手册", "专项能力培训"],
  287. ["培训资料", "培训课件与录像", "复训与人员流动后自学"],
  288. ["验收文件", "阶段确认书与验收报告", "阶段准出与项目结项"]],
  289. [1.8, 4.6, 4.0], ["l", "l", "l"])),
  290. ("p", "综上,本项目的测试与质量保障方案在测试策略、场景覆盖、"
  291. "诊断模型验证、用例设计、缺陷管理与验收标准六个方面均有明确安排,"
  292. "各项标准可客观核查。"
  293. "我方承诺按本章方案执行,"
  294. "并在项目启动后一周内向采购人提交正式的测试方案供确认。"),
  295. ]