Project

General

Profile

Actions

QA验收 #28

open
RA

QA验收 #26: CNB Backend #97|销售激励三项改进|测试环境验收与图文手册

销售激励Excel工作表及季度年终差额展示|BE1.20.10b0测试验收

QA验收 #28: 销售激励Excel工作表及季度年终差额展示|BE1.20.10b0测试验收

Added by Redmine Admin 15 days ago. Updated 13 days ago.

Status:
新建
Priority:
普通
Assignee:
-
Start date:
10/27/2026
Due date:
% Done:

0%

Estimated time:

Description

销售激励Excel工作表与季度年终差额展示|2026-10-27独立测试批次。历史背景CNB#97/Redmine#26,不重开原24项结果。

候选:source a0768ef / business e51b0d9,测试BE1.20.10b0,Web不发布。共享索引outputs/sales-incentive-export-20261027/index.md;QA覆盖/准备和机器收据为qa-coverage-review.md、qa-preparation.md、qa-prepare-ready.json。

范围:QAEXP-01真实工作簿顺序;02明确false排除子集与原记录保留;03当前Task年度差额/说明及不进入本季应发;04原汇总/客户/独立年度/导出只读不变;05真实Web年度下载。正负/跨年/分币/空表边界复用已通过的14项与列名单项开发证据,不能冒充实际站全覆盖。

准备已完成:专用test finance19 active;company14/Task147/payment24,25,26合成身份及期间未锁定只读核实。0业务写、0新fixture、0新功能Pass。部署前不执行旧站正式测试。

等待Ops一次runtime-ready及停止环境写;随后QA独占已有合成payment26,合法开关true→false、下载核对、恢复true并读回。不改变金额/份额/核销,不做实发/期间确认/DB写/真实付款/外发/生产。guard失败停止该链;未知写结果先GET,不重放旧脚本。

本记录是准备计划,不是验收通过。正式结果按逻辑批次追加并完整读回。

RA Updated by Redmine Admin 15 days ago Actions #1

销售激励 Excel 测试结果

日期2026-10-27。Redmine #28,parent #26。唯一索引 index.md;正式范围仅本次Excel增量,不复跑旧24项、不混入#102。

候选与环境

BE实际 1.20.10b0,测试release b5714bda11a42f8f4eca91078aee647171744fcf;业务 e51b0d9。QA读取Ops单次runtime-ready,版本/3业务hash/5服务镜像/迁移无变化及environmentWritesStopped均符合。见qa-runtime-gate.json及ops-runtime-receipt.json。Web未发布,登录页观察FE2.16.7-beta.0。

仅test tcrm/tcrm-api,专用finance19。无新增fixture,company14/Task147/payment24,25,26复用合成链。QA仅2次flag-only PUT,目标均 /v1/finances/incentives/payments/26/owner;false后再true。所有步骤HTTP200/code200、独立GET成功、pending=null。详见qa-live-state.json,原金额106、50/50份额、Invoice71核销、日期与币种均恢复/不变。

本轮5项:5 Pass / 0 Fail / 0 Blocked / 0 Skipped

用例/影响 操作及预期 实际结果/证据 状态
QAEXP-01 / IMP-001 从真实API/Web年度Excel检查sheet序列和既有owner-quarter顺序 汇总→既有销售季度表→销售年终差额→回款记录→不纳入激励的回款记录→客户表;既有销售季度顺序保留。qa-baseline/restored/browser-xlsx-results.json Pass
QAEXP-02 / IMP-002 唯一合成payment26关flag,检查明确false表与原表逐列、合计/格式/筛选/冻结/空表 关闭前及恢复后排除表空但有完整表头/E8;关闭期间仅本轮26进入排除表,与原回款逐列相同,金额106、原客户表保留。非空筛选、格式、数字合计符合共享表格契约。qa-disabled.xlsx及qa-disabled-xlsx-results.json Pass
QAEXP-03 / IMP-004 用独立Decimal计算年度差额、owner分币和本季不叠加 payment24/Task147:100×7.2%−4=3.20,30/70→0.96/2.24;说明标2026年度。原本季/应发仍1.20/2.80。无Task的25/26该列空,禁用26金额展示不变但奖金0;所有季度差额合计只加可算值 Pass
QAEXP-04 / IMP-003 对照原汇总、客户、回款和独立年度表;导出前后、恢复后读回 导出前后两专用owner JSON一致;操作闭环后3回款+dashboard与baseline完全相同;汇总/回款/客户/年终表逐值相同(仅忽略导出时间)。专用owner原独立年终差额行与前次有效导出一致。qa-restored-xlsx-results.json、qa-live-state.json Pass
QAEXP-05 / IMP-001 test finance经Web“销售激励”→2026→下载Excel,检查实文件及可读截图 Space17/p1已登录同专用账号;真实点击下载年度.xlsx,6条本RUN销售季度明细与独立oracle一致;3个本RUN记录与baseline一致。入口截屏及真实工作簿金额/年度说明/排除记录预览已目视检查。qa-browser.xlsx及qa-browser-xlsx-results.json Pass

复用与未测边界

REG-001~005开发14项及末次列名单项与当前3文件字节一致,复用其空集/无销售/零奖金但参与/display=false/正负差额/混合2025-2027年度/分币尾差/历史补结边界。复用不另计新Pass,SQLite/mock不冒充真实站测试。本轮不新增这些跨年业务fixture;实际站核心组合为当前年度正差额、noTask、明确false及恢复闭环。权限/PG锁/通知无代码影响,不重开旧24项。

实际工作簿只读解析与Artifact Tool预览通过,不声称Microsoft Excel原生客户端操作已验证。长编号原XLSX保持完整文本;渲染工具科学计数法限制见qa-runner-corrections.md,最终引用金额/说明图避开该列。

本次源码/业务修复0,生产/真实付款/期间确认/DB写/外部通知0。账户保持active,合成数据保留;仅本轮26开关已恢复。无未决写入,不清理旧数据。截图与手册增量素材为发布后跟进,不是新一轮手册三方审核通过声明。

真实素材

  • qa-download-entry.png:测试页年度下载入口,仅页头,无无关明细。
  • qa-annual-difference.png:销售16Q4 G7:I10。行8=payment24(Task147),行9=25,行10=26;差额0.96、本季/应发1.20。
  • qa-annual-year-note.png:同一真实导出K7:K10,行8说明2026年度0.96元。
  • qa-excluded-record.png:关闭26时真实排除表A7:D8,唯一公司14合成行、106元和专用owner名称。

原始年度文件本机受控保留;不上传或传播其中无关业务行。Redmine按本逻辑批次追加并读回,收据见qa-writeback-receipt.json。

RA Updated by Redmine Admin 15 days ago Actions #2

销售激励Excel本轮收尾:5项结果已在journal297完整读回;payment26恢复原true、金额/份额/核销不变、pending=null。

Space17已finish({keep:[]})一次并成功,未保留页面。应用退出点击遇原生confirm;处理后未出现登录表单,因此应用登出/浏览器登录态失效未确认,不声称已登出。保留为会话清理限制,不重新建空间或扩展登录产品排查,不影响已完成5项Excel断言。专用账号保持active、合成数据保留,CLI token未落盘,0生产/源码/DB操作。

结果和截图:outputs/sales-incentive-export-20261027/qa-results.md、qa-*-xlsx-results.json;手册增量素材qa-manual-delta.md仅发布后待合并,不冒称新三方审核完成。Backend当前preview/b5714bda、工作区干净,QA未提交/推送/部署。

RA Updated by Redmine Admin 15 days ago Actions #3

销售激励Excel:生产发布收据独立审阅

2026-10-27,Redmine #28。本次是发布收据审阅,不是新的业务验收轮次。用户已明确本次立即上线例外。候选、正式CI和Ops一次实际运行收据核对通过,无新增发布阻断。

正式身份与差异

  • 版本/tag:1.20.10 / v1.20.10。
  • 正式release:030f88e4675812268f300215abb673c60d2ddb92。
  • 源候选:a0768efca1731bb10e8c38a9707f35c6727d0281,业务 e51b0d9,基线 3e40446。
  • 本地不可变Git对象逐字节核对:正式相对基线精确9路径,含3个已验收业务/测试文件、3个源AOCI文件及api/init.py、.cz.toml、CHANGELOG.md。6个源文件逐字节相同;版本两文件仅1.20.9→1.20.10,CHANGELOG旧正文完全保留,CI文件未变。没有模型、迁移、依赖、权限及其他业务夹带。详见qa-production-candidate-review.json。
  • AOCI仅证明保持已授权源字节;不把source此前aligned回执提升为正式版本metadata已重新治理认证。

CI与实际运行收据

项目 核对结果 引用原证据
正式CI身份/路由 cnb-q13-1k5to6gqp,release/tag匹配,整体success;staging标签和部署跳过;production标签/部署成功 ops-production-backend-cnb.json、qa-production-ci-review.json
实际版本/镜像 实际public HTTP200/code200/version1.20.10;五服务镜像一致,无混版,所有期望运行文件hash匹配,三个业务hash等于已验收候选 ops-production-public-version.json、ops-production-runtime-receipt.json
schema/迁移 无本次迁移文件;正常migrator退出0且noop,已有finance0020保留,账本133项及摘要未变,pending新增迁移0;非手工迁移 同一Ops runtime收据
停止与边界 runtime-ready时间2026-10-27 12:01:19 Asia/Shanghai;Ops environmentWritesStopped=true,业务行读取/业务写均false,schema查询transactionReadOnly=true ops-production-runtime-ready.json、ops-production-execution.json

QA只消费原收据,没有重复访问生产或测试站、登录、浏览器、凭据、DB、基础设施验证或业务用例。QA环境请求0,新生产业务Pass0;技术审阅汇总见qa-production-runtime-review.json。

审阅脚本初次把execution.phase硬等同信号phase,碰到Ops将execution推进为production-live-verified时停止;核对同一release、completedAt和stopped状态后接受该已完成阶段。原runtime-ready信号未变。这是本地收据结构适配,不是产品/发布失败,也没有重发任何环境请求。

证据复用与保留边界

  • 沿用测试环境BE1.20.10b0本轮QAEXP01–05共5Pass(journal297),以及开发14项和末次列名单项;正式三业务文件字节无变化,故不重跑,不新增5个生产Pass。
  • 跨年正负、混合年度、尾差等复杂组合保持原本地证据层级;没有新建生产/测试fixture。原生Microsoft Excel客户端仍未验证。
  • 原journal298的应用登出未确认限制不改判、不删除;Space17已finish成功,原合成payment26恢复状态及专用账号保持不变,本阶段不再操作它们。
  • 正式手册增量合并单列发布后跟进,复用qa-manual-delta.md和真实截图;本轮没有正式手册合并或新增三方审阅声明,不阻塞本次生产技术闭环。

QA只写本工作包qa-production-*和本次Redmine生产批次,不改index、原报告、产品代码、配置、版本或Git。当前checkout仍preview/b5714bda且干净,源分支及本地历史由Ops保留。提交、推送、生产部署由Ops执行,不记为QA操作。

CI源链接:https://cnb.cool/mindsetech/NDB/backend/-/build/logs/cnb-q13-1k5to6gqp 。Redmine本批次需全文读回后方可完成QA收尾,收据另存qa-production-redmine-readback.json。

RA Updated by Redmine Admin 13 days ago Actions #4

销售季度应发与上年差额:2026-10-29独立QA增量(本候选,不覆盖旧journal)
任务01a181b2-ce26-79c0-8d3c-015b2d8a3f73,NDB #28(parent26)。branch fix/sales-incentive-q1-year-end,base/HEAD2945c87a0248ad045345e0b40bd87337a1d24cc0,3源hash启动前/结束均匹配交接值,候选未提交。旧10/27本年/未来预估规则被用户本次“上年差额只入Q1”替换,旧Pass保留历史、不充作本次Pass。
实际环境:crm_backend真实Django WSGI、独立127.0.0.1随机端口HTTP,专属临时SQLite/LocMem,普通合成finance/pm正常登录/JWT,真实HTTP下载并openpyxl重载;未mock角色、视图、返回或金额算法。无浏览器/原生Excel/PG锁或迁移验证声明。
本轮7组Pass,0产品Fail:
QA-HTTP-01(IMP01/02/04):finance真实HTTP XLSX200、现有MIME/attachment/PK/往返正确。
QA-AMOUNT-02(IMP01/03):6销售正负零及多人分币,Q1年终行单列一次且无伪造客户/回款/比例;A本季1.20+差额36=37.20,B2.80+84=86.80;负-80、零0、无Q1回款分币1.06/2.14合计3.20仍保留。
QA-LAYOUT-03(IMP02):6销售Q2-Q4共18表无差额列/预估说明,应发第8列、回款编号第9列文本、冻结E8,金额合计正确。
QA-RECON-04(IMP01/03/04):年度独立表同笔差额明确已计入Q1;Q2历史补结288+672=960不重复进上年差额120;原Q1实发4.56/上年实际7.89保留。
QA-REGRESSION-05(IMP04):同一隔离ORM数据用原base导出及本候选导出往返,对汇总/回款/客户/不纳入激励表逐单元格比值相同(仅导出时间规范化)。
QA-PERM-06(IMP04):正常PM登录真实下载403,匿名401。
QA-NOWRITE-07(IMP04):全部finance/projects/companies模型行前后相同;普通登录/访问账号审计不冒称零写。
语义边界:当前只验导出“应发总数”;已登记“实发”未改,不把应发Pass称成实发登记已调整/通过新义。未调用实际登记PUT。
单列复用developer-tests.log19成功方法,覆盖当前/未来Task混合无预估、负历史补结、预付扣除/尾差、空/禁用/无效等;不叠加成独立QA数量。旧实发登记SQLite pg_advisory_xact_lock Error历史保留,未改锁、不声称PG通过、不纳入纯导出门槛。外部固定列号消费者未验证。
证据:outputs/sales-incentive-q1-20261029/qa-results.md、qa-results.json、qa-http-network.json、qa-fixture-manifest.json、qa-annual-2026.xlsx、qa-http-r5.log。r1字段名/r2合成Task唯一关系/r3MIME预期/r4年终表无合计行的off-by-one均QA runner错误,原日志保留;r5完整7组通过,不计产品Fail/额外Pass。
本轮HTTP服务已停/线程退出,tempfile SQLite目录清除,合成密码与JWT只内存,未修改长期账号;无共享业务库/生产/外发/真实付款。业务3文件+2AOCI dirty保留,QA无业务源码/配置/版本/Git/部署改动。手册增量发布后跟进。

RA Updated by Redmine Admin 13 days ago Actions #5

2026-10-29 销售Q1导出测试+生产发布证据审阅(本轮0新增业务测试Pass)
用户已明确授权提交及双环境部署,并批准本次测试核验后立即上线时间例外。QA只读消费Ops源回执,不操作Git/浏览器/数据库/运行接口。
测试1.20.13b0:commit2f99688a8ba40521cfd0f5bfe363c03752929930,CI cnb-h6e-1k62m25iv success,生产alias/trigger stages skip。实际runtime passed,5服务同镜像c50cbbc2…31e28b。
生产1.20.13:commitf70430fb1913a7921f11d00afc5fad25fbf62a71,CI cnb-3ph-1k62m8gju success,测试alias/trigger stages skip。实际runtime passed,5服务同镜像33c2847f…f5251a。
两环境各5个部署源码/版本文件hash匹配,三业务/测试文件hash与journal317已验候选完全一致;业务提交f6f8b76,AOCI cbf4806,其他为版本/CHANGELOG/认知元数据。版本GET200,migrate服务exit0且无新迁移;受保护导出匿名GET401,仅证明路由/认证烟测,未读取业务报告,不冒称生产金额/状态验收。Ops git-final记录main干净、源/preview/main及tag远端匹配、历史祖先保留、一个worktree。
原journal317独立真实本地HTTP7组与19开发成功方法按差异复用,不因新SHA/发布重跑;旧10/27预估规则历史保留。本次仍只改Excel应发总数,原实发登记4.56/7.89保持,不能称实际发放登记已改。原生Excel/PG锁及生产业务状态验收未执行,外部固定列号消费者边界保持。
QA原临时HTTP服务/SQLite/身份已清理,本轮未创建新fixture/读取凭据/外发/付款;QA未新增备份或改既有备份服务。Ops按既有无额外发布备份范围执行。手册增量由QA发布后跟进,可复用qa-annual-2026.xlsx及既有真实截图,不作为技术发布门槛。
审阅依据:outputs/sales-incentive-q1-20261029/release/preview-runtime.json、production-runtime.json、两份*-runtime-params.json、-pipeline-status.json、-stage-receipt.json、git-final.json、state.json。统一Ops最终回执仍在收尾时,本结论依据已通过原始runtime/CI及最终Git证据,不等待逐步骤再确认,也不把旧handoff阶段值当最终状态。
结果:发布证据审阅,精确源hash/镜像及收据文件hash见qa-source-review.json。

Actions

Also available in: PDF Atom