Project

General

Profile

QA验收 #35 » actual-results.json

Redmine Admin, 10/31/2026 04:47 PM

 
{
"task": 106,
"redmineIssue": 35,
"round": "home-roles-staging-20261101-R1",
"counts": {
"Pass": 13,
"Fail": 1,
"Blocked": 1,
"Skipped": 6
},
"cases": [
{
"id": "QA106-HOME-AUTH-ADMIN",
"name": "admin真实密码UI登录并核身份",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实UI认证+profile API",
"expected": "admin真实密码UI登录并核身份与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "正常BW登录/profile200/code200、active、id20/roleadmin;非admin冒充,未改账号。",
"evidence": "admin-login.json;对应首页PNG/DOM",
"defect": null
},
{
"id": "QA106-HOME-AUTH-FINANCE",
"name": "finance真实密码UI登录并核身份",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实UI认证+profile API",
"expected": "finance真实密码UI登录并核身份与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "正常BW登录/profile200/code200、active、id19/rolefinance;非admin冒充,未改账号。",
"evidence": "finance-login.json;对应首页PNG/DOM",
"defect": null
},
{
"id": "QA106-HOME-AUTH-PM",
"name": "pm真实密码UI登录并核身份",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实UI认证+profile API",
"expected": "pm真实密码UI登录并核身份与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "正常BW登录/profile200/code200、active、id16/rolepm;非admin冒充,未改账号。",
"evidence": "pm-login.json;对应首页PNG/DOM",
"defect": null
},
{
"id": "QA106-HOME-ADMIN-HOME",
"name": "管理员首页统计和7/30天专家排名",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "管理员首页统计和7/30天专家排名与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "本月新增专家0与dashboard一致;11月Call排名API空且UI有明确空态;7/30天切换请求200,合成专家574245访谈2次。未把11月空图说成非空验收。",
"evidence": "admin-home-baseline.json;admin-home-30day.json;admin-home.png",
"defect": null
},
{
"id": "QA106-HOME-PM-HOME",
"name": "PM首页参与/管理范围与专家排名",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "PM首页参与/管理范围与专家排名与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "PM16首页提醒4条含本Task149实际1000/0,虽排除仍保留;项目involve→take和任务user_id16+take请求200;7→30天真实切换,页面/响应排名一致。PM非TL不显示客户Call榜。",
"evidence": "pm-home-loaded.json;pm-home-switches.json;pm-reminders.png;pm-rank-30day.png",
"defect": null
},
{
"id": "QA106-HOME-FINANCE-HOME",
"name": "finance财务提示与出账项目空态",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "finance财务提示与出账项目空态与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "finance19页面显示逾期0、出账0,两个实际API total_counts0;本月新增专家0。项目/任务工作台、提醒/专家榜和客户Call榜不显示。仅验证实际空态,未验证非空出账。",
"evidence": "finance-home-loaded.json;finance-home-loaded.png",
"defect": null
},
{
"id": "QA106-HOME-ACCESS",
"name": "PM/finance管理首页tab可见边界",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "PM/finance管理首页tab可见边界与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "两种真实身份直达/admin均显示暂无可访问的数据中台内容;管理员可见7tab。此证据只证明UI权限边界,未执行越权写或全接口拒绝测试。",
"evidence": "finance-admin-direct.json;pm-admin-direct.json;pm-admin-denied.png",
"defect": null
},
{
"id": "QA106-HOME-FINANCE-CHART",
"name": "财务年度/月度表图70↔40及全排除",
"status": "Pass",
"impact": "IMP106-03",
"layer": "真实staging UI/API+离线算式",
"expected": "财务年度/月度表图70↔40及全排除与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "公司15年度实际2000/600,月度图10月2000/600/2小时、其余月0;B计入70%,排除40%,A/B全排除基数0/0页面不适用。7条ECharts运行series与真实响应逐项相等;原实际金额不变。",
"evidence": "admin-finance-{70,restored40,all-excluded}.json及-runtime/charts;finance三图",
"defect": null
},
{
"id": "QA106-HOME-PM-METRIC",
"name": "PM真实收入/成本与独立毛利基数",
"status": "Pass",
"impact": "IMP106-04",
"layer": "真实staging UI/API+离线算式",
"expected": "PM真实收入/成本与独立毛利基数与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "相同2026-05-01至11-01查询,PM16原收入2106/成本600保持,基数2106→1106,利润率独立算得71.51%→45.75%;其中106来自其他现有Task,不套项目70/40。另10月筛选也返回2106/600/45.75,截图标明该期间。",
"evidence": "admin-pm-70.json;admin-pm-final-exact-october.json;admin-pm-70.png;admin-pm-exact-october-40.png",
"defect": null
},
{
"id": "QA106-HOME-SALES-CHART",
"name": "管理员销售overview/company/monthly图表金额与毛利",
"status": "Pass",
"impact": "IMP106-05",
"layer": "真实staging UI/API+离线算式",
"expected": "管理员销售overview/company/monthly图表金额与毛利与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "三个实际接口与ECharts收入/成本/毛利全部series数值对齐;公司15实际2000/600、70→40,10月聚合实际4106/600保持、85.39→80.68,分别按响应basis4106/600和3106/600算。管理员查看不替代sales身份权限;排除条数错误单列Fail。回款状态只观察表,未将其全量正确性计入此Pass。",
"evidence": "admin-sales-{70,restored40}.json及-runtime.json;admin-sales-70.png;independent-review.json",
"defect": null
},
{
"id": "QA106-HOME-SALES-COUNT",
"name": "全部销售聚合排除Task数应唯一计数",
"status": "Fail",
"impact": "IMP106-05",
"layer": "真实staging UI/API+离线算式",
"expected": "全部销售聚合排除Task数应唯一计数与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "公司15双销售归属、仅Task149=true,销售company basis excluded_task_count=2,财务=1。金额/40%正确但排除数错误;源码每销售行赋1再累加。primary确认Backend唯一修复owner,尚未放行修复/部署。",
"evidence": "defect-sales-count.json;Redmine38;admin-sales-restored40.json",
"defect": 38
},
{
"id": "QA106-HOME-RECRUIT",
"name": "专家招募表真实月份数量",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "专家招募表真实月份数量与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "补齐原响应与截图:10月新增39/首次访谈4,11月0/0;表逐行与7月度响应核对。仅验证已显示统计,不点击专家明细或造专家数据。",
"evidence": "admin-recruitment-complete.json;admin-recruitment-complete.png",
"defect": null
},
{
"id": "QA106-HOME-CUSTOMER",
"name": "客户Call图10月数据与客户筛选",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "客户Call图10月数据与客户筛选与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "11月空→10月实际总6小时,响应计数2+2+1+1+0=6,与图series逐点一致;本公司15为2小时。客户名称筛选请求含QA106,返回仅company15一行,10月client/billable均2,原A/B各1小时独立对照。未点导出。",
"evidence": "admin-customer-complete.json及-runtime;admin-customer-complete.png",
"defect": null
},
{
"id": "QA106-HOME-FLAG-INVARIANTS",
"name": "仅原A/B标记往返及现场恢复",
"status": "Pass",
"impact": "IMP106-03/04/05/08",
"layer": "真实staging UI/API+离线算式",
"expected": "仅原A/B标记往返及现场恢复与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "四次单字段TaskPUT200/code200、无成本写;同admin权限上下文完整其他Task字段与成本DTO相同,结束148false/149true并由PM只读确认。PM allowed_payment_transitions=[]与admin不同属角色能力,不是成本落库变化。未改金额/日期/归属/状态。",
"evidence": "phase*-intent/response/after.json;fixture-baseline.json;final-fixture-readback.json;independent-review.json",
"defect": null
},
{
"id": "QA106-HOME-ROLE-PA",
"name": "PA真实身份首页可见统计范围",
"status": "Skipped",
"impact": "IMP106-03/04/05/08",
"layer": "未执行:用户决定移出本轮三身份范围",
"expected": "PA真实身份首页可见统计范围与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。",
"evidence": "三现有身份清单;账号/团队前置提案",
"defect": null
},
{
"id": "QA106-HOME-ROLE-SALES",
"name": "SALES真实身份首页可见统计范围",
"status": "Skipped",
"impact": "IMP106-03/04/05/08",
"layer": "未执行:用户决定移出本轮三身份范围",
"expected": "SALES真实身份首页可见统计范围与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。",
"evidence": "三现有身份清单;账号/团队前置提案",
"defect": null
},
{
"id": "QA106-HOME-ROLE-SU",
"name": "SU真实身份首页可见统计范围",
"status": "Skipped",
"impact": "IMP106-03/04/05/08",
"layer": "未执行:用户决定移出本轮三身份范围",
"expected": "SU真实身份首页可见统计范围与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。",
"evidence": "三现有身份清单;账号/团队前置提案",
"defect": null
},
{
"id": "QA106-HOME-ROLE-GUEST",
"name": "GUEST真实身份首页可见统计范围",
"status": "Skipped",
"impact": "IMP106-03/04/05/08",
"layer": "未执行:用户决定移出本轮三身份范围",
"expected": "GUEST真实身份首页可见统计范围与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。",
"evidence": "三现有身份清单;账号/团队前置提案",
"defect": null
},
{
"id": "QA106-HOME-ROLE-TL",
"name": "TL真实身份首页可见统计范围",
"status": "Skipped",
"impact": "IMP106-03/04/05/08",
"layer": "未执行:用户决定移出本轮三身份范围",
"expected": "TL真实身份首页可见统计范围与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。",
"evidence": "三现有身份清单;账号/团队前置提案",
"defect": null
},
{
"id": "QA106-HOME-TEAM-LOW-LOSS",
"name": "非空TL团队低毛利/亏损分类",
"status": "Skipped",
"impact": "IMP106-04",
"layer": "未执行:用户决定移出本轮三身份范围",
"expected": "非空TL团队低毛利/亏损分类与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。",
"evidence": "只读源码api/libs/views.py:474–526;前置提案",
"defect": null
},
{
"id": "QA106-HOME-UTIL-NONEMPTY",
"name": "平均资费/Seat/专家新增完整数据图",
"status": "Blocked",
"impact": "IMP106-04",
"layer": "部分观察;完整用例Blocked",
"expected": "平均资费/Seat/专家新增完整数据图与本角色权限、真实响应一致;有数据与空态分开判断",
"actual": "管理员已实际观察11月平均资费[]、Seat[]和相应空态,专家新增图本月0/上月PM16为2,运行series已保存;未闭合完整非空资费/Seat样本及逐图截图,不能以空图通过整个用例。PA数据表仅观察,不冒称真实PA身份已测。",
"evidence": "admin-utilities-november.json;admin-utilities-nov-runtime.json;原页面观察记录",
"defect": null
}
],
"candidate": "FE2.16.9-beta.3/4a303c3d + BE1.20.15b2/473cc345",
"spaceId": 5,
"oldTenCasesNotRecounted": true,
"newIdentityAuthorization": "not requested further; user decided no creation",
"fixtureRestored": true,
"spaceState": "logged out; final finish authorized",
"sourceChanges": false,
"actualReview": "raw API/DTO and ECharts runtime reconciliation; not mock/local developer tests",
"executionCounts": {
"Pass": 13,
"Fail": 1,
"Blocked": 0,
"Skipped": 0
},
"scope": "User selected existing admin/finance/PM only; other five identities and TL dependent cases not tested by decision"
}
(13-13/34)