Skip to content

金融风控系统测试验证 ​

合成数据准备 ​

2026-10-13用户授权后,研发已在10张已发布表准备22条可追踪的合成记录,批次QA_20261013_A。逐条回读、完整重复执行和后台计数验证通过;测试人员可从运行页开展非空筛选、关联展示和看板对账。场景、真实ID台账、日期差异、人工状态与清理边界见测试数据最佳实践。数据准备不是业务验收;本轮没有新增浏览器验证或审批、交易执行结果。

测试基线与状态 ​

本手册供金融风控系统 Codex + Informat 案例中的独立测试角色使用。需求依据为 projects/financial-risk/implementation.md 与用户提供的《金融风控管理系统-功能清单.xlsx》,已用 openpyxl 只读核对四个工作表,未修改 Excel。

尚未执行业务测试

下文 T01—T28 是完整业务入口用例,仍为“未执行”,实际结果与证据待填写。草稿已建设,另有12个合成快照计算场景在平台设计器直调通过,详见创建实录。该计算验证未创建真实记录、未发起审批、不替代全业务测试或发布后验收。

本手册按 informat-designer 的生命周期交付和 informat 的平台契约组织;当前交付为测试计划,不构成功能验收或上线批准。

角色与阶段门禁 ​

角色责任与交付
研发角色交付可测试版本、真实应用/表/字段/流程 ID、配置回读、入口、角色矩阵、计算口径、变更及回退说明;类与函数注释完整,service 不写 SQL,关键日志可追踪;SQL 初始化可重复执行
测试角色独立准备样本与预期,以实际非管理员身份执行允许及拒绝路径,记录结果、对账和缺陷;不以研发自测替代验收
业务负责人确认阈值、账户、汇率、成本与审批语义,决定 OA 批次和验收范围;任何不兼容改动由用户手工确认

执行前须取得授权的隔离测试环境、可测试版本和测试身份。先验证模型与关联,再做功能联调、权限、对账和回归;UAT、上线及移交各自记录版本与证据,不合并为一个“完成”状态。 调用平台前只检查凭证是否设置且不输出内容;按方法读取实际 schema,使用真实 ID,区分设计器草稿与已发布运行态。结构写入须串行并回读;执行状态以创建实录和每轮测试报告为准。 评级权重与分段、止损公式、账户粒度、总资产分母、汇率来源/时点、成本及收益算法、审批人员映射尚待确认。依赖这些口径的用例保持未执行,执行时若仍缺失则记为阻塞。

浏览器测试执行方式 ​

用户指定测试工程师使用 ego-browser,从 https://uat2.informat.cn/app/sokxosrao8s5v 进入真实应用。先确认当前登录身份、应用运行版本和可见模块,再执行实际表单、关联选择、列表筛选、看板与操作入口。

首轮浏览器测试早于研发发布,流程不正确。用户纠正后,研发已发布 UAT 测试基线(版本 1.0、构建号 2),测试工程师只在运行页测试,不需要设计器权限,也不负责发布。结果见浏览器测试实录;完整业务用例是否通过以实际证据为准。

每个测试目标使用一个 TaskSpace,并跨命令复用同一空间与页面。普通页面优先按 snapshot 中的语义和 ref 操作,截图保存可见结果;不伪造角色身份,不读取或保存浏览器认证令牌。

js
// 后续命令复用首次创建的空间和页面,不通过新建空间绕过异常。
const task = await taskSpace(69);
const page = task.page('p1');
console.log(await page.snapshot());

浏览器测试与设计器脚本直调分别记录。运行态没有模块时,先核对发布状态;设计器能看到草稿不等于用户运行态可用。当前身份只有管理员时,普通成员越权场景保持未验证。新增合成数据使用明确 QA 前缀,不执行真实金融交易、真实审批或通知,也不删除已有数据。

需求与用例映射 ​

需求 IDExcel 来源用例
FR-01功能清单 6;入池单T01—T02
FR-02功能清单 7—8T03—T04、T09
FR-03功能清单 9T05
FR-04功能清单 10—12T10—T14
FR-05功能清单 13—17T06—T08、T15—T16
FR-06下单风控审核表T06—T09、T17
FR-07功能清单 18—20;看板页面T18—T20
FR-08功能清单 21—22T21—T22
OA-01 / OA-02功能清单 23 / 24—27T23 / T24—T25;OA 批次待确认
SEC-01功能清单 28T26—T28,贯穿各业务入口

边界样本与预期结果 ​

以下金额默认 USD、精度 0.01;这是测试数据约定,须先与实现精度核对。额度比较使用“下单后存量”作为待确认测试口径,不能只比较本次下单金额。每行多组输入分别执行并单独取证;所有行均未执行。

ID输入、动作及前提预期结果
T01产品代码 000001;名称为空;币种为空;内部等级分别为 R1、R5、R0、R6代码保留前导零;关键动作拒绝缺失业务数据和非法等级,合法端点可提交;接口/导入不能绕过校验
T02固收填写收益率;股票填写成交量/市值;切换品种;新建与已保存详情分别查看按品种展示指标,关键校验采用当前品种;新建不出现未产生的审批结果,历史详情保留审批依据
T03同一产品连续及并发提交两次入池;同代码不同市场/币种另建样本已在池或待审申请被识别,不重复入池/发起审批;跨市场/币种按已确认唯一范围处理,不能默认代码全局唯一
T04国债 R1、短期债券基金 R1 自动入池;普通债券基金走审批;已有产品资料更新后驳回自动入池仅在确认规则下生效;需审批产品批准前不入池;驳回更新不覆盖原有效资料和审批快照
T05评级缺失;有效期截止为 10:00,分别在 09:59:59、10:00:00、10:00:01 下单;权重缺失运行评级缺失/失效不得自动放行;等于截止时刻按确认的包含边界判定;无权重不生成臆造评级,旧记录保留
T06单标的上限分别为 5,000,000、3,000,000、500,000;下单后存量为上限−0.01、上限、上限+0.01对原文 <=,前两组不因超额命中,后一组命中例外路径;分别覆盖公司债/证券化/指定票据、债券基金、高分散高收益基金、股票/ETF、指定虚拟货币
T07总资产 10,000,000,同银行两笔存款合计 499,999.99、500,000、500,000.01;另一银行单独建样本;分母为 0/缺失同银行聚合后比较 5%,等于不超、超过触发;不混算另一银行;无有效分母不得按 0% 自动放行
T08指定衍生品保证金 499,999.99、500,000、500,000.01;其他非期权卖方为 99,999.99、100,000、100,000.01;名义金额另设 2,000,000分别按 50 万/10 万保证金上限判定,不将名义金额当保证金;期权卖方不套用排除它的规则
T09标注“0 万美元,单独请示”的产品申请 0.01;金额 0/负数;例外批准后再次超过批准额度或超过有效期正金额进入单独请示,不把 0 当不限额;0/负数订单拒绝;批准额度与期限缺失时不可据一次批准永久放行
T10A 账户买入 100×10,费用 0,再卖出 40×12;B 账户同产品买入 20×10A 数量 60、B 数量 20,不串户;若确认采用移动平均成本,A 剩余成本 600、已实现收益 80;审批通过本身不产生交易
T11同来源交易编号导入两次;并发重放;同编号金额由 1,000 改为 1,100;同编号不同账户/来源重放只入账一次;同键异内容报告冲突且不静默覆盖;跨账户/来源按确认去重键判断,留批次及行级结果
T12T10 买入数量由 100 更正为 120,再撤销该买入;更正请求重试一次更正后 A 数量 80,只生效一次,原始版本可追溯;撤销导致已有卖出失去持仓依据时拒绝或进入确认的修复流程,不静默产生负持仓
T13A 可卖 60,分别卖 59、60、61;两个并发卖单各 40;B 可卖 20合法卖出后数量 1/0;61 拒绝;并发不能合计卖 80;不可借 B 持仓放行,失败不扣现金或持仓
T14日买入上限 100,000,累计 99,999.99、100,000、100,000.01;日卖出同组;23:59:59 与次日 00:00:00<= 等于不超、超过命中;按确认时区和交易有效状态统计,跨日正确重置;撤销/更正按同一口径重算
T15规则未启用、未来生效、已过期;阈值缺失;有效规则重复扫描同一命中三次失效规则不发起新事件,已有事件保留;缺失阈值报配置错误;同一未处理命中不重复事件/审批/提醒;重开条件待确认
T16风控事件提交方案,无结果/附件;复核驳回后补齐;关闭请求重放;通知发送失败按确认阶段要求校验,复核通过才关闭;方案、结果及责任人可追溯;重放不重复关闭,通知失败可重试且不丢审批状态
T17阈值命中后总经理审批、家族办公室终审;拒绝/退回;越级直达终审;审批期间修改金额/规则按确认路径流转,拒绝/退回不视为批准;禁止跳过节点;保留提交快照,修改需重新校验/审批,不能沿用旧批准放行新金额
T18CNY 账户持有 700,000 CNY,测试汇率 1 USD=7 CNY;再下单 400,000 USD 与 400,000.01 USD,上限 500,000 USD折算后分别等于和超过上限;汇率与时点取证。汇率缺失/过期不能按 1:1 或零估值,多币种未确认前分币展示
T19A 初始现金 2,000,执行 T10,再按市价 12 估值;B 独立统计;增加行情缺失样本无费用样本 A 现金 1,480、市值 720、总资产 2,200;移动平均口径下未实现收益 120;无行情标为不可估值,不归零
T20按产品/负责人/类型汇总 T10、T19;风险待处理/关闭各一件;改变看板筛选及数据时点明细与总数、类型占比、现金、盈亏、额度占用可逐项对账;分母/负责人归属待确认;不同数据时点明确标注
T21外部同步超时、返回 401、缺少币种、三行中一行非法;入账后响应丢失再重试;两个同步任务重叠记录批次/行级错误,401 不无限重试;按确认的整批或逐行事务策略恢复,重试不重复入账,游标不跳过失败数据
T22测试止损线设 −10%,输入 −9.99%、−10%、−10.01%;缺失价格;处置中断后重试仅在业务确认公式、比较符及样本后执行;等于是否触发依比较符,不能自行认定;缺价不伪造预警值,恢复不重复事件
T23成员转部门、停用、撤销角色;旧登录会话再次访问待办与账户按实际组织及权限生效契约验证,停用/撤权后不可继续越权;历史经办人仍可追溯,管理员结果不能替代成员结果
T24请假结束早于开始、跨日;招聘重复投档/面试状态跳转;入职合同缺失、人事外身份访问材料非法日期/状态拒绝,重复按确认业务键识别;统计可对账;入职阶段资料按约定校验,敏感材料仅授权身份可读
T25报销 0、−0.01、100.01;同单重复提交;财务驳回再提交;普通员工读取他人报销非正金额拒绝,合法单只产生一次流程;仅批准有效单计入对应统计;驳回/重提保留历史,越权读取拒绝
T26交易员读写 A、访问 B;研究员修改计算持仓;风控维护规则;审批人处理非本人节点每个身份分别验证授权成功与越权拒绝;持仓计算字段不由普通用户改写;规则维护与审批职责按确认矩阵分离
T27以同一受限身份从菜单、直接 URL、API、导入、脚本/自动化入口读取或修改 B 账户及 OA 敏感附件各入口均执行真实记录/字段/操作权限,隐藏菜单或表单不可视不作为权限证据;响应及导出不泄露受限字段
T28隐藏必填字段后提交;保存子列表后取消主表;审批自动化在客户端交互前写入、恢复后失败服务端关键校验仍拒绝不完整数据;核对实际暂存边界;交互前已提交数据不假定整体回滚,按确认补偿策略恢复并对账

对账与证据 ​

测试取数必须固定账户、产品、币种、业务日期、有效交易版本、行情/汇率时点、规则版本及过滤条件。用独立明细复算数量、成本、现金、市值、盈亏、额度,再与持仓、看板、审批快照对照;金额使用十进制定点口径,舍入层级与容差先确认,不能用浮点近似判定资金对账通过。 保留原币合计及折算合计;没有汇率不得跨币直接求和。缺价、重复、撤销、更正、失败行分别标记,不把缺失数据按零处理。差异需记录来源行和原因,不能仅留看板截图。

证据字段记录要求
追踪与版本用例 ID、需求 ID、执行人/时间、环境、appId、发布版本或草稿状态、脚本版本、规则版本、真实表/字段 ID
输入与预期脱敏样本、前置状态、账户/产品、交易去重键、汇率/行情时点、审批快照、独立预期计算及口径确认来源
运行与结果实际结果、前后记录、批次/行号、事件/流程/任务 ID、关联 requestId 或执行 ID、关键日志、页面/API 证据位置
判定与差异未执行/阻塞/通过/失败、不适用理由、金额/数量差异、缺陷 ID、复测版本与证据;不记录 Token、Cookie 或完整敏感材料

缺陷回归与验收 ​

缺陷记录关联需求与用例,写清前提、复现步骤、预期/实际、影响账户/资金/权限、版本、证据、负责人和状态。资金错账、越权、超限放行、重复入账及审批绕过列为上线阻塞;具体严重程度由项目确认。 修复后先重跑原失败输入,再回归阈值以下/等于/超过、重复/并发、更正/撤销、受影响账户与角色、恢复重试及看板对账。涉及结构/流程不兼容变更须先取得用户手工确认,再验证历史记录和回退边界。 验收前要求范围内用例有真实证据、阻塞缺陷关闭、关键对账一致;未执行与阻塞项列明责任人及后续入口。OA 未确认同批时保留用例为未执行,不擅自记为不适用。应用自检无问题只说明配置检查结果,不替代业务、权限和发布后冒烟。 当前结论:需求与测试手册已编制,模型及服务接受独立静态审查,Node 12项回归和平台12个计算场景通过;T01—T28完整业务入口用例尚未执行,无整体通过率、项目验收通过或上线结论。