QUALITY / 04

QA 架构与发布门禁

不是统计测试数量,而是把需求、Screen ID、契约、fixture、构建制品、部署和生产遥测连成可复核的质量证据链。

QUALITY OPERATING MODEL

六层测试架构,各层有唯一 owner 和证据格式

单测无法替代 consumer contract,E2E 也不能替代生产 synthetic。每层只证明自己负责的风险。

L0

Static & schema

lint/type/schema/secret report

OWNER
repository
CADENCE
every commit
L1

Unit & golden

test log + deterministic fixture

OWNER
domain package
CADENCE
every commit
L2

Contract

versioned schema + consumer results

OWNER
producer + consumers
CADENCE
every contract diff
L3

Component & screen

state fixture + a11y + screenshot

OWNER
UI surface
CADENCE
every UI diff
L4

Journey & environment

browser/device trace + test data

OWNER
product
CADENCE
merge / nightly
L5

Production assurance

synthetic + telemetry + incident link

OWNER
service + platform ops
CADENCE
deploy / continuous

RELEASE GATES

从任务包到生产 smoke 的八道阻断门

关键门失败必须阻断;不能用重跑、人工口头确认或“稍后补测试”绕过。

G1BLOCKING

Scope

task packet · owner · affected repos · rollback

BLOCK WHEN范围、owner 或回滚缺失
G2BLOCKING

Static

format · lint · typecheck · secret scan

BLOCK WHEN任何静态或密钥错误
G3BLOCKING

Unit

domain logic · deterministic fixtures · mutation-sensitive paths

BLOCK WHEN关键域单测或 golden 不通过
G4BLOCKING

Contract

route/event/schema diff · producer/consumer fixtures

BLOCK WHEN破坏兼容且无迁移窗口
G5BLOCKING

Experience

screen states · a11y · visual · responsive · locale

BLOCK WHEN关键旅程、可访问性或截图回归
G6BLOCKING

Security

authz · abuse · privacy · dependency · artifact integrity

BLOCK WHENfail-open、越权或不可验证制品
G7BLOCKING

Release

build digest · migration · SBOM · config · rollback drill

BLOCK WHEN制品与部署证据不完整
G8BLOCKING

Production

synthetic smoke · telemetry · error budget · owner ack

BLOCK WHEN健康、主链或错误预算失败

UI STATE CONTRACT

每张 UI 蓝图至少验证八种产品状态

页面看起来像真的,关键在于数据密度和异常态同样真实;成功首屏只是八种状态之一。

01

loading

skeleton/progress has accessible label and no layout jump

02

empty

explains why empty and offers a valid next action

03

ready

fixture covers real density, long text and localization

04

partial

available content remains usable; missing dependency is named

05

error

retryability, error ID and safe fallback are explicit

06

offline

cached truth and stale timestamp are visible

07

forbidden

no sensitive data leaks; request/access path is clear

08

destructive

impact, subject, confirmation and audit receipt are visible

PROJECT COVERAGE

20 个项目的当前 QA 姿态

Strong 表示已有可复核资产,Partial 表示覆盖不完整,Missing 是当前缺口;Target 表示该层不适用或仓库仍是目标态。

RepositoryUnitContractJourneyVisualA11yCIProductionEvidence / next blocking gate
reits-info-portal部分部分缺失缺失缺失0部分

1 test file · 88 routes · production pages公共主链 smoke + operations 权限矩阵

reits-bbs部分部分部分缺失缺失0部分

55 test/validation assets · live NodeBBtopic/composer/moderation consumer contract

data-sources已形成部分部分缺失缺失0部分

64 test assets · backup/ops UIPostgreSQL/SQLite matrix + 15-screen visual smoke

im-core已形成部分部分不适用/目标不适用/目标1部分

161 test assets · HTTP/WS routesroute manifest + iOS consumer fixtures + replay smoke

matrix-x-chat-ios已形成部分已形成部分部分47部分

XCTest/XCUITest · 4 repository screenshotsfive-tab snapshot baseline + critical workflow tiering

im-media-send-kit已形成部分不适用/目标不适用/目标不适用/目标0不适用/目标

4 XCTest files · hash/chunk QA modelstandalone CI + host byte-preservation matrix

matrixantai-backtest已形成部分已形成不适用/目标不适用/目标0不适用/目标

9 golden/lookahead/determinism assetsCI + immutable version/hash compatibility gate

matrixantai-sim部分部分部分缺失缺失0不适用/目标

single HTML/Canvas miniappfour failure-state fixtures + container-size visual tests

reits-knowledge不适用/目标部分不适用/目标不适用/目标不适用/目标0不适用/目标

448 documents · ADR/runbook sourcelink/schema lint + owner/freshness policy

apps-ecosystem不适用/目标部分不适用/目标不适用/目标不适用/目标0不适用/目标

ecosystem manifest and planningmachine manifest validation

apps-info-portal不适用/目标部分不适用/目标不适用/目标不适用/目标0不适用/目标

app manifest / compatibility scopehost compatibility consumer fixture

apps-bbs不适用/目标部分不适用/目标不适用/目标不适用/目标0不适用/目标

app manifest / compatibility scopehost capability contract

public-booking-platform部分部分已形成部分部分0部分

61 validation scripts · Playwright · live pagesAuth-enabled E2E + capacity race + visual/a11y gate

trading-data-source部分部分缺失缺失缺失0不适用/目标

3 test files · 10 admin modulestask idempotency + storage fault + module visual smoke

miniapp-open-platform部分部分部分部分缺失1部分

4 implemented routes · live loginupload/checksum/publish journey + Auth negative cases

reits-auth部分部分缺失不适用/目标不适用/目标0缺失

running service · preview bypass riskfail-closed OTP/JWT suite + synthetic production login

opensdk部分部分部分不适用/目标不适用/目标0部分

host SDK and booking integrationmulti-host compatibility matrix

reits-media部分部分缺失不适用/目标不适用/目标1缺失

code contracts · not deployedquarantine/scan/promote/ticket E2E before production

matrix-quant-im-ios已形成已形成部分部分部分1不适用/目标

route tests · contract fixtures · SwiftUI states24-route snapshot/state matrix + unavailable mode

quant-platform不适用/目标部分不适用/目标不适用/目标不适用/目标0缺失

target repository / domain contractscontract-first vertical slice before live UI

TRACEABILITY

任何上线结论都能反向追到风险与责任人

T1Risk / requirement
T2Repository + owner
T3Screen ID / route
T4Contract + fixture
T5Automated result
T6Artifact digest
T7Deployment
T8Synthetic + telemetry