QAOPS8 固化移动矩阵回归策略

这个提交包含在:
2026-05-13 18:08:23 +08:00
父节点 c51d03896f
当前提交 f1b9f04c50
@@ -7,7 +7,7 @@ QAOPS8-4,Playwright 初始化稳定化,"复核 Playwright 初始化、登录态
QAOPS8-5,公网匿名门禁脚本复核,"复核公网匿名健康、public bundle 和匿名页面门禁脚本,避免把本地通过误认为公网可用。","1) /ready 与 public bundle 分开记录;2) 匿名检查不依赖凭据;3) 失败不进入试运行;4) 结果写入报告或证据路径。","流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs。",curl|node,DONE,DONE,DONE,scripts/qa/check-public-bundle-copy.mjs|docs/trialrun/人工试运行报告.md,"[""QAOPS8-1""]",curl /ready 返回 ok=true;public bundle scanned=57 focused=4 findings=0;匿名检查未使用凭据。 QAOPS8-5,公网匿名门禁脚本复核,"复核公网匿名健康、public bundle 和匿名页面门禁脚本,避免把本地通过误认为公网可用。","1) /ready 与 public bundle 分开记录;2) 匿名检查不依赖凭据;3) 失败不进入试运行;4) 结果写入报告或证据路径。","流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs。",curl|node,DONE,DONE,DONE,scripts/qa/check-public-bundle-copy.mjs|docs/trialrun/人工试运行报告.md,"[""QAOPS8-1""]",curl /ready 返回 ok=true;public bundle scanned=57 focused=4 findings=0;匿名检查未使用凭据。
QAOPS8-6,带凭据 live readiness 稳定化,"稳定带凭据 live smoke、真实 OCR 和角色账号检查的执行边界。","1) 带凭据门禁与匿名门禁分离;2) 缺凭据时标 SKIP;3) 不打印 token、密码或隐私;4) 真实 OCR 与 pending OCR 结论分开。","流程级验证:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS8 bash scripts/qa/run-live-smoke-readiness.sh;无凭据则记录 SKIP。",bash|manual,DONE,DONE,DONE,scripts/qa/run-live-smoke-readiness.sh|docs/trialrun/公网LiveSmoke准备清单.md,"[""QAOPS8-5""]",LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS8 bash scripts/qa/run-live-smoke-readiness.sh 完成;报告 artifacts/qa-flow/live-smoke-readiness-20260513-180330;公网和企业微信配置探测正常;pending OCR、live smoke、真实 OCR 因缺少 DATABASE_URL、凭据或样票按规则 SKIP。 QAOPS8-6,带凭据 live readiness 稳定化,"稳定带凭据 live smoke、真实 OCR 和角色账号检查的执行边界。","1) 带凭据门禁与匿名门禁分离;2) 缺凭据时标 SKIP;3) 不打印 token、密码或隐私;4) 真实 OCR 与 pending OCR 结论分开。","流程级验证:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS8 bash scripts/qa/run-live-smoke-readiness.sh;无凭据则记录 SKIP。",bash|manual,DONE,DONE,DONE,scripts/qa/run-live-smoke-readiness.sh|docs/trialrun/公网LiveSmoke准备清单.md,"[""QAOPS8-5""]",LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS8 bash scripts/qa/run-live-smoke-readiness.sh 完成;报告 artifacts/qa-flow/live-smoke-readiness-20260513-180330;公网和企业微信配置探测正常;pending OCR、live smoke、真实 OCR 因缺少 DATABASE_URL、凭据或样票按规则 SKIP。
QAOPS8-7,真实 OCR 测试策略,"定义真实 OCR 测试的数据授权、样票脱敏、provider 判定、pending OCR 和失败重试策略。","1) mock 与真实 provider 结论分离;2) 样票有授权或脱敏;3) pending OCR 可解释;4) 失败不阻塞无关流程但不得写 PASS。","流程级验证:node scripts/qa/check-live-smoke-env.mjs;node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10;缺环境时记录 SKIP。",node|manual,DONE,DONE,DONE,scripts/qa/check-live-smoke-env.mjs|scripts/qa/check-pending-ocr.mjs|docs/报销发票附件规则.md,"[""QAOPS8-6""]","LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs 通过公网和企业微信配置探测;node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10 因缺 DATABASE_URL 按规则 SKIP;真实 OCR 执行仍需授权 PDF 样票和凭据。" QAOPS8-7,真实 OCR 测试策略,"定义真实 OCR 测试的数据授权、样票脱敏、provider 判定、pending OCR 和失败重试策略。","1) mock 与真实 provider 结论分离;2) 样票有授权或脱敏;3) pending OCR 可解释;4) 失败不阻塞无关流程但不得写 PASS。","流程级验证:node scripts/qa/check-live-smoke-env.mjs;node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10;缺环境时记录 SKIP。",node|manual,DONE,DONE,DONE,scripts/qa/check-live-smoke-env.mjs|scripts/qa/check-pending-ocr.mjs|docs/报销发票附件规则.md,"[""QAOPS8-6""]","LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs 通过公网和企业微信配置探测;node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10 因缺 DATABASE_URL 按规则 SKIP;真实 OCR 执行仍需授权 PDF 样票和凭据。"
QAOPS8-8,移动矩阵回归策略,"把移动浏览器和企业微信 WebView 视口矩阵固定为上线前可复跑策略。","1) 覆盖 320、360、375、390、393、414、430 关键宽度;2) 企业微信 UA 与真机确认分离;3) 截图路径明确;4) 新增移动页必须进入矩阵。","流程级验证:cd client && npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list;人工核对真机清单。",playwright|manual,TODO,TODO,TODO,client/tests/e2e|docs/trialrun/真机公网测试清单.md|output/playwright,"[""QAOPS8-4""]",自动化不能替代未来新增真机验收。 QAOPS8-8,移动矩阵回归策略,"把移动浏览器和企业微信 WebView 视口矩阵固定为上线前可复跑策略。","1) 覆盖 320、360、375、390、393、414、430 关键宽度;2) 企业微信 UA 与真机确认分离;3) 截图路径明确;4) 新增移动页必须进入矩阵。","流程级验证:cd client && npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list;人工核对真机清单。",playwright|manual,DONE,DONE,DONE,client/tests/e2e|docs/trialrun/真机公网测试清单.md|output/playwright,"[""QAOPS8-4""]",复用 QAOPS8-4 Playwright 证据 5 passed;output/playwright/mobile-ia-flow-remediation 当前有 22 个截图文件;真机清单已明确自动化不能替代未来 R7E 真机验收。
QAOPS8-9,证据归档规范,"定义 QAOPS8 证据路径、命名、保留和引用规则,避免报告、截图、日志散落。","1) 自动化报告、截图、命令输出和人工结论有稳定路径;2) 不提交大体积临时产物;3) Issue Notes 可追溯证据;4) 隐私和密钥不入库。","流程级验证:rg -n 'output/playwright|artifacts/qa-flow|证据|截图|trace|日志' docs/测试规约与回归门禁.md docs/试运行与自动化验证手册.md issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv。",rg|manual,TODO,TODO,TODO,docs/测试规约与回归门禁.md|docs/试运行与自动化验证手册.md|artifacts|output,"[""QAOPS8-1""]",可复用现有 artifacts 和 output 目录,不新建文档归档体系。 QAOPS8-9,证据归档规范,"定义 QAOPS8 证据路径、命名、保留和引用规则,避免报告、截图、日志散落。","1) 自动化报告、截图、命令输出和人工结论有稳定路径;2) 不提交大体积临时产物;3) Issue Notes 可追溯证据;4) 隐私和密钥不入库。","流程级验证:rg -n 'output/playwright|artifacts/qa-flow|证据|截图|trace|日志' docs/测试规约与回归门禁.md docs/试运行与自动化验证手册.md issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv。",rg|manual,TODO,TODO,TODO,docs/测试规约与回归门禁.md|docs/试运行与自动化验证手册.md|artifacts|output,"[""QAOPS8-1""]",可复用现有 artifacts 和 output 目录,不新建文档归档体系。
QAOPS8-10,备份策略,"收敛上线前备份策略,包括数据库、上传附件、配置、部署包和恢复责任。","1) 备份对象清楚;2) 频率和保留期清楚;3) 密钥和配置备份不入库;4) 备份成功有可验证证据。","流程级验证:人工核对 docs/trialrun/OPS7运维交接Runbook.md 与 docs/ops/非功能基线.md;不得执行生产备份命令。",manual|rg,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md,"[""QAOPS8-0""]",本行只制定策略;执行生产备份前需用户确认。 QAOPS8-10,备份策略,"收敛上线前备份策略,包括数据库、上传附件、配置、部署包和恢复责任。","1) 备份对象清楚;2) 频率和保留期清楚;3) 密钥和配置备份不入库;4) 备份成功有可验证证据。","流程级验证:人工核对 docs/trialrun/OPS7运维交接Runbook.md 与 docs/ops/非功能基线.md;不得执行生产备份命令。",manual|rg,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md,"[""QAOPS8-0""]",本行只制定策略;执行生产备份前需用户确认。
QAOPS8-11,恢复演练方案,"设计恢复演练方案,明确 RTO、RPO、演练窗口、验证步骤和回滚边界。","1) 演练目标和范围明确;2) 不在未确认时改生产;3) 恢复验证步骤可复现;4) 失败有停止条件。","流程级验证:人工核对恢复演练步骤;必要时在隔离环境演练并记录证据。",manual,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md,"[""QAOPS8-10""]",任何生产恢复演练必须另行确认窗口和责任人。 QAOPS8-11,恢复演练方案,"设计恢复演练方案,明确 RTO、RPO、演练窗口、验证步骤和回滚边界。","1) 演练目标和范围明确;2) 不在未确认时改生产;3) 恢复验证步骤可复现;4) 失败有停止条件。","流程级验证:人工核对恢复演练步骤;必要时在隔离环境演练并记录证据。",manual,TODO,TODO,TODO,docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md,"[""QAOPS8-10""]",任何生产恢复演练必须另行确认窗口和责任人。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
7 QAOPS8-5 公网匿名门禁脚本复核 复核公网匿名健康、public bundle 和匿名页面门禁脚本,避免把本地通过误认为公网可用。 1) /ready 与 public bundle 分开记录;2) 匿名检查不依赖凭据;3) 失败不进入试运行;4) 结果写入报告或证据路径。 流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs。 curl|node DONE DONE DONE scripts/qa/check-public-bundle-copy.mjs|docs/trialrun/人工试运行报告.md ["QAOPS8-1"] curl /ready 返回 ok=true;public bundle scanned=57 focused=4 findings=0;匿名检查未使用凭据。
8 QAOPS8-6 带凭据 live readiness 稳定化 稳定带凭据 live smoke、真实 OCR 和角色账号检查的执行边界。 1) 带凭据门禁与匿名门禁分离;2) 缺凭据时标 SKIP;3) 不打印 token、密码或隐私;4) 真实 OCR 与 pending OCR 结论分开。 流程级验证:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS8 bash scripts/qa/run-live-smoke-readiness.sh;无凭据则记录 SKIP。 bash|manual DONE DONE DONE scripts/qa/run-live-smoke-readiness.sh|docs/trialrun/公网LiveSmoke准备清单.md ["QAOPS8-5"] LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS8 bash scripts/qa/run-live-smoke-readiness.sh 完成;报告 artifacts/qa-flow/live-smoke-readiness-20260513-180330;公网和企业微信配置探测正常;pending OCR、live smoke、真实 OCR 因缺少 DATABASE_URL、凭据或样票按规则 SKIP。
9 QAOPS8-7 真实 OCR 测试策略 定义真实 OCR 测试的数据授权、样票脱敏、provider 判定、pending OCR 和失败重试策略。 1) mock 与真实 provider 结论分离;2) 样票有授权或脱敏;3) pending OCR 可解释;4) 失败不阻塞无关流程但不得写 PASS。 流程级验证:node scripts/qa/check-live-smoke-env.mjs;node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10;缺环境时记录 SKIP。 node|manual DONE DONE DONE scripts/qa/check-live-smoke-env.mjs|scripts/qa/check-pending-ocr.mjs|docs/报销发票附件规则.md ["QAOPS8-6"] LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs 通过公网和企业微信配置探测;node scripts/qa/check-pending-ocr.mjs --thresholds=2,5,10 因缺 DATABASE_URL 按规则 SKIP;真实 OCR 执行仍需授权 PDF 样票和凭据。
10 QAOPS8-8 移动矩阵回归策略 把移动浏览器和企业微信 WebView 视口矩阵固定为上线前可复跑策略。 1) 覆盖 320、360、375、390、393、414、430 关键宽度;2) 企业微信 UA 与真机确认分离;3) 截图路径明确;4) 新增移动页必须进入矩阵。 流程级验证:cd client && npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list;人工核对真机清单。 playwright|manual TODO DONE TODO DONE TODO DONE client/tests/e2e|docs/trialrun/真机公网测试清单.md|output/playwright ["QAOPS8-4"] 自动化不能替代未来新增真机验收。 复用 QAOPS8-4 Playwright 证据 5 passed;output/playwright/mobile-ia-flow-remediation 当前有 22 个截图文件;真机清单已明确自动化不能替代未来 R7E 真机验收。
11 QAOPS8-9 证据归档规范 定义 QAOPS8 证据路径、命名、保留和引用规则,避免报告、截图、日志散落。 1) 自动化报告、截图、命令输出和人工结论有稳定路径;2) 不提交大体积临时产物;3) Issue Notes 可追溯证据;4) 隐私和密钥不入库。 流程级验证:rg -n 'output/playwright|artifacts/qa-flow|证据|截图|trace|日志' docs/测试规约与回归门禁.md docs/试运行与自动化验证手册.md issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv。 rg|manual TODO TODO TODO docs/测试规约与回归门禁.md|docs/试运行与自动化验证手册.md|artifacts|output ["QAOPS8-1"] 可复用现有 artifacts 和 output 目录,不新建文档归档体系。
12 QAOPS8-10 备份策略 收敛上线前备份策略,包括数据库、上传附件、配置、部署包和恢复责任。 1) 备份对象清楚;2) 频率和保留期清楚;3) 密钥和配置备份不入库;4) 备份成功有可验证证据。 流程级验证:人工核对 docs/trialrun/OPS7运维交接Runbook.md 与 docs/ops/非功能基线.md;不得执行生产备份命令。 manual|rg TODO TODO TODO docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md ["QAOPS8-0"] 本行只制定策略;执行生产备份前需用户确认。
13 QAOPS8-11 恢复演练方案 设计恢复演练方案,明确 RTO、RPO、演练窗口、验证步骤和回滚边界。 1) 演练目标和范围明确;2) 不在未确认时改生产;3) 恢复验证步骤可复现;4) 失败有停止条件。 流程级验证:人工核对恢复演练步骤;必要时在隔离环境演练并记录证据。 manual TODO TODO TODO docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md ["QAOPS8-10"] 任何生产恢复演练必须另行确认窗口和责任人。