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 蓝图固定验证九种产品状态

页面看起来像真的,关键在于数据密度和异常态同样真实;ready 只是九态之一,success 必须生成可追踪 receipt。

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

09

success

receipt, resulting revision, next action and safe undo/rollback are explicit

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部分

main/origin/EC2 VERSION@cb37d2c · 157 Go / 63 Go tests · 15 shells 200 / 15 protected reads 401 · 88 sources · public/storage denominator splitE04 authenticated 45-slot capture + command receipts + off-domain restore drill + App.vue split

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

main/production@deea700 exact · 225 Go / 78 tests / 56 SQL / 405 HandleFunc · public health 200 · four product containers running · latest commits strengthen durable upload reference testspublish safe build metadata + rerun lease/fencing integrations with Redis + iOS replay/ACK consumer evidence + multi-node failure domain

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

main@257e604 · 1,711 Swift · 466 View sources · 530 tests · Xcode 26.3 simulator build PASS · 215 warnings / 54 Swift 6R18 14-screen / 56-slot Native baseline + OTP/realtime + plugin route + wallet strong auth + MiniApp signature/origin

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

main/origin@d9e5cf4 · 12 Swift · 4 XCTest · local hash/chunk/video/sidecar QA onlystandalone CI + host byte-preservation matrix + upload/business-send consumer evidence

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

candidate@069ebcb (2 ahead main) · 3/3 hash · 4/4 golden · 3/3 look-ahead · 4/4 deterministic · EC2 absentmerge main + CI + immutable input/template/engine/result hash compatibility gate

matrixantai-sim已形成已形成部分部分部分0缺失

candidate@18aee8d (9 ahead main) · 18 files · 9/9 tests · package validation/build with reviewed synthetic fixture · EC2 absentmerge main + R19 4-context visual/a11y + signed clean-room promotion

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部分

main/EC2@cc24662 · source 111 / home 51 / discovery 220 · 218 seed demos · 654 covers · Auth meta environment driftE03 27-slot capture + public booking idempotency/capacity race + Auth production correction + console split

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

formal main/origin@55b1ad8 · candidate@43742e5 +3 unmerged · Go tests/Vue build green · local seed 2/7/3/7/7 · EC2 service/vhost/listener/process/release 0/0/0/0/0E05 authenticated 30-slot capture + SecretRef/CSRF/CORS hardening + persistent RunAttempt + candidate merge decision + production deploy/smoke

miniapp-open-platform已形成已形成部分部分缺失1部分

E06 formal main@fa9283d · production@fb1a1b4 (-1) ACTIVE SPLIT · UX@bc62595 (+1) and runtime@5e51842 (+18) unmerged · main/UX/runtime tests+build green · 4 route probes · /api/apps 401 · writes 0E06 12-slot capture + localStorage bearer removal + synthetic OTP + authorized inventory/ownership negatives + idempotent create + six-stage release/iOS/rollback/restore receipts

reits-auth已形成已形成已形成不适用/目标不适用/目标1部分

production@157b859 · 18 top-level / 37 race results · K21 safe smoke + active/previous/no-kid matrix · K20 17/17 witness · MySQL registryoperator-approved Phase B + production OTP synthetic + remaining consumers + product UI evidence

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

host SDK and booking integrationmulti-host compatibility matrix

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

main/origin@db8c55a · 13 Go · 4 tests · 1 migration · 1 workflow · 7 routes · go test/vet green · R14 3 Media pages / 27 states · EC2 0/0/0/0subject/resource auth + malicious ZIP/policy scanner + concurrent claim + Open Platform media E2E + 3-screen visual/a11y + restore drill

matrix-quant-im-ios已形成已形成部分部分部分1缺失

candidate@604987a (22 ahead main@631176e) · 202 Swift · 37 test files · 24 AppRoutes · MatrixIMCore 110 tests PASS · strict format 26 blocked · EC2 Quant absentstrict format + merge decision + E08 14-screen/56-slot evidence + App Store exact + production adapter journey

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

candidate@8a6ed05 (20 ahead README-only main) · 61 Go · 17 tests · 3 migrations · go test/vet/build PASS · EC2 0/0/0/0merge main + deployable artifact/config/migration + auth/market/strategy/signal production smoke and rollback

TRACEABILITY

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

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