项目空间

项目笔记N-203

总览

更新
内容块
173
阅读
约 5 分钟
路径
项目笔记 / CS / 2026.7.7 / 测试模组

Build.bat(构建测试)

作用:构建 Debug 版 build\DesertStrike.exe。

对应标准游戏测试流程里的:

  • •Build Verification
  • •编译门禁
  • •CI 第一关

它会检查:

  1. 1.CMake 是否存在
  1. 2.Ninja 是否存在
  1. 3.MinGW g++ 是否存在
  1. 4.build\CMakeCache.txt 是否包含旧路径,如 F:\Codex\CS2_B_NavGraph
  1. 5.如果发现旧路径,会删除 build 后重新配置

run_test.bat(基础冒烟测试)

它先编译游戏,然后运行 --self-test,快速看看游戏核心系统有没有明显坏掉

代码块Plain Text
build.bat
build\DesertStrike.exe --self-test

对应标准游戏测试流程里的:

  • •Smoke Test
  • •Basic Regression
  • •每次改代码后先跑的快速自测
  1. 1.配置文件加载
  1. 2.AI profile / weapon profile (配置)是否有效
  1. 3.地图加载、节点标签、语义节点
  1. 4.基础相机、鼠标反转、旁观者模式、暂停菜单
  1. 5.玩家跳跃、移动、复活
  1. 6.Bot 角色分配、CT 出生点、T RushB、EcoPick、Sniper
  1. 7.武器后坐力、散布恢复、移动/空中散布、狙击开镜、半自动
  1. 8.可见敌人伤害、隔墙不能命中
  1. 9.卡住恢复、补枪距离
  1. 10.炸弹携带、下包、守包、拆包意图
  1. 11.简单多回合模拟

run_industrial_qa.bat(长测)

对应标准游戏测试流程里的:

  • •Soak Test
  • •Stability Test
  • •Long Regression
  • •Pre-release QA Gate

执行内容:

  1. 1.连续两次 run_full_acceptance.bat(跑的是下面main中的测试)
  1. 2.再单独跑各模块 audit
  1. 3.--qa-matrix
  1. 4.--qa-soak %QA_SOAK_MINUTES%,默认 30 分钟
  1. 5.输出日志到 logs\industrial_qa_<timestamp>.txt

main中内置检测

对应标准游戏测试流程里的:

  • •Full Acceptance Test
  • •Feature Regression Suite
  • •Release Candidate 自动验收

--map-audit(地图和导航有没有坏)

标准流程对应:

  • •Level QA
  • •Navigation QA
  • •Collision QA
  • •Spawn/Timing QA
  1. 1.node-standable:所有有效导航点是否可站立
  1. 2.nav-edges:导航边是否可通、是否有坏边
  1. 3.jump-link-map:JumpLink 是否存在并被路径使用,地图里的跳跃连接是否真的存在并可用
  1. 4.nav-components:T、CT、A、B 是否在主连通分量(T 家、CT 家、A 点、B 点是否在同一个可走网络里)
  1. 5.T-to-A、T-to-B、CT-to-A、CT-to-B CT-to-Mid T-to-Long T-to-Tunnel路线时间(是否可以到达,时间是否合理)
  1. 6.route-variety:T/CT 到 A/B 是否至少有多条路线(避免 AI 永远走同一路)
  1. 7.mid-first-contact:中路首次接触时间是否合理
  1. 8.site-standable:A/B 包点是否可站立
  1. 9.outer-wall-closed:外墙是否闭合

--ai-audit(测试 AI 基础行为和关键机制)

标准流程对应:

  • •AI Functional Test
  • •Bot Navigation Test
  • •Objective Logic Test
  • •Combat Behavior Test
  • •Difficulty Balance Smoke
  1. 1.combat-micro:跑打、急停、跳拉
  1. 2.spray-transfer:扫射转移
  1. 3.jump-link-execution:JumpLink 执行(跳跃导航边)
  1. 4.strafe-preaim:横移预瞄(Bot 横移时是否还看着目标,不乱转头)
  1. 5.dropped-bomb-recovery:T 掉包后回收,CT 不捡包
  1. 6.bomb-invariant:炸弹状态一致性(不能同时 planted 又有人带包)
  1. 7.objective-arbitration:Plant/Defuse/Recover 等优先级(多目标冲突)
  1. 8.objective-progress-stuck:目标进度卡住检测
  1. 9.map-semantics、semantic-route-selection地图是否有 T 家、CT 家、A 点、B 点、中路等语义
  1. 10.tactical-planner团队计划是否会根据战术、炸弹、敌情变化
  1. 11.defuse-coverCT 拆包时是否有人拆、有人掩护
  1. 12.movement/pathingBot 是否正常移动、不进墙、不长期卡住
  1. 13.t-spawn-egressT 是否能离开出生点
  1. 14.engage/reactionBot 看到敌人后是否进入对枪并造成伤害
  1. 15.tactic/rushBRushB 是否形成冲点行为或交火/闪光
  1. 16.ct/retake-defuseCT 是否能回防并尝试拆包
  1. 17.weapon/styles手枪、SMG、步枪、狙击是否按距离选打法
  1. 18.ct-rotate-B-to-A / ct-rotate-A-to-BCT 是否能根据炸弹位置转点
  1. 19.difficulty/scalingExpert 是否比 Casual 更强或反应更好

--behavior-audit(测试更高层的行为正确性,AI 战术行为是否更像真实对局)

标准流程对应:

  • •AI Behavior QA
  • •Tactical Behavior Validation
  • •Gameplay Bot Review
  1. 1.non-midpoint-engagementAI 不应该只去中点对枪
  1. 2.multi-target-priority多个目标同时出现时,优先级要合理
  1. 3.bomb-economy-priority围绕炸弹的目标要优先,比如捡包、下包、拆包
  1. 4.state-driven-decisionsAI 决策要受情报、声音、人数、炸弹状态影响
  1. 5.tactic-preconditions战术出现前要满足前置条件,不要乱放战术
  1. 6.tactic-detection能否检测出双拉、fake、包围、回防、保枪等战术倾向
  1. 7.priority-oscillation高优先级目标不能来回抖动切换
  1. 8.movement-humanization移动不能太机械,要有斜走、横移变化
  1. 9.micro-combat-system微观战斗是否有跑打、急停、跳拉、扫射转移
  1. 10.team-role-stabilityEntry、Support、Lurker 等角色是否稳定

--ai-playtest(多回合 AI-only 战术模拟,让 AI 自己打几轮,看会不会卡死或没目标)

  1. 1.多个 seed
  1. 2.Auto、RushA、RushB、FakeRotate、EcoPick 等战术
  1. 3.输出 kills、plants、flashes、carrierMinSite、carrierSiteTicks、maxStuck、routeTicks

--qa-matrix(是无窗口模拟,不检查 UI、手感、真实输入)(矩阵测试)

seeds:0,1,2,3,17,42,99,1234

难度:Normal,Hard,Expert

战术:Auto,Default,RushA,RushB,FakeRotate,EcoPick

每组 10 回合

总计 144 case

--qa-soak <minutes>(长时间稳定性测试)(不完全等价真实玩家连续游玩体验)

多 seed

多回合等价模拟

目标事件存在

stuck 不超阈值

无崩溃、死循环、访问冲突

--qa-anomaly [cases](异常探索测试)

作用:批量跑 case,输出到 logs\qa_anomaly_latest.txt,用于找异常模式

--weapon-audit(测试武器配置和手感核心机制,武器后坐力、散布、狙击等是否正常)

config-loaded

sniper-scoped-static

sniper-spread-penalty

rifle-recoil-pattern

--vfx-audit(测试视觉效果和投掷物效果)(不等于全局美术质量)(不替代人工看爆炸、烟雾、闪光是否“舒服”)

枪口火光、曳光弹、墙面弹痕

HE 弹跳、碰撞、滚动、伤害约束

Flash 白屏曲线、真实投掷、OpenGL pixel readback

Smoke 球形遮挡、快速扩散、实战可见度

粒子系统

投掷轨迹预测与真实飞行匹配

--utility-audit(测试 Bot 使用投掷物和战术道具)

Bot 被闪后降低索敌/射击

Support Rush/Execute 丢真实 Flash

Support/Objective 丢 Smoke

HE 打敌人聚集点

多战术下 Flash/Smoke/HE 是否出现

T 出生点墙体探针和离家

Smoke 遮挡、HE 惩罚

Plant/Defuse/Recover 不被道具打断

utility memory 保存/重载

diversity guard 防止固定单一投掷点

--ui-audit(测试 UI、HUD、菜单、雷达和调试信息)

Tab 计分板显示/隐藏

暂停菜单优先级

计分板调试数据

分辨率菜单

鼠标点击暂停菜单

FPS HUD 行

帧率上限选项

固定模拟 tick

小地图玩家朝上、固定缩放、xray

角色可读性

内嵌配置

inventory wheel

--frame-audit( OpenGL 运行表现,帧率上限、VSync、帧时间是否正常)

创建 Win32/OpenGL 窗口

采样 60/120/144 FPS 档

平均 FPS、p95、p99、长帧比例

输出 VSync 状态

(

只采样几个档位,不覆盖 240/300/360 的全部人工体验。

不能完全控制显卡驱动强制 VSync。

不代表复杂实战场景下的长期性能。

)

发布测试验证

在output中单独跑了:(验证发布包在没有外部 config 的情况下,能依赖 embedded fallback 运行)

代码块Plain Text
DesertStrike.exe --self-test
DesertStrike.exe --ui-audit
DesertStrike.exe --map-audit
DesertStrike.exe --ai-audit