Unity 开发高级/资深 11:测试、监控、线上排障与安全

Unity 开发高级/资深 测试 安全

返回总览

Unity 开发高级/资深工具链地图

测试与质量保障

  • 单元测试:公式、配置解析、状态机、协议解析、条件系统、红点逻辑。
  • EditMode Test:不依赖场景的编辑器逻辑和纯 C# 逻辑。
  • PlayMode Test:启动、场景加载、UI 打开、基础交互、战斗流程。
  • 冒烟测试:启动、热更、登录、进主城、打开核心 UI、进入战斗。
  • 资源巡检:缺失脚本、Missing Reference、重复资源、贴图格式、Shader 缺失。
  • 配置巡检:ID 冲突、引用不存在、奖励非法、任务链断裂、活动时间错误。
  • 长稳测试:挂机、反复切场景、反复打开 UI、战斗循环、弱网重连。
  • QA 工具:GM、Debug 菜单、日志面板、性能面板、一键复制环境信息。

需要掌握的工具

  • Unity Test Framework:EditMode、PlayMode、纯逻辑和运行时测试。
  • NUnit:组织断言、参数化测试和测试夹具。
  • AltTester、Airtest、Poco:做 UI 自动化、冒烟和长稳测试。
  • 资源巡检脚本:检查缺失引用、命名、贴图格式、Shader、Prefab。
  • 设备农场或云真机:覆盖不同机型、系统版本和性能档位。
  • CI 测试任务:在提交、合并或构建前自动跑配置、资源和核心逻辑检查。

可继续细分方向

  • 单元测试和 PlayMode 测试。
  • UI 自动化和冒烟测试。
  • 资源、配置和构建巡检。
  • 长稳测试、弱网测试和设备兼容测试。

日志、监控与线上排障

  • 日志系统:等级、模块、时间、玩家 ID、设备、版本、服务器、上下文。
  • 崩溃监控:C# 异常、Native Crash、ANR、OOM、GPU Driver Crash。
  • 符号解析:dSYM、mapping、so、IL2CPP 符号、构建号匹配。
  • 性能上报:FPS、卡顿、内存峰值、加载耗时、包体、下载失败。
  • 关键链路:启动、热更、登录、进场景、战斗、支付、断线重连。
  • 线上开关:关闭活动、禁用入口、降级特效、切换资源、屏蔽问题 SDK。
  • 排障流程:收集日志、确定版本、复现路径、影响范围、临时止血、根因修复。
  • 事故复盘:时间线、影响、原因、修复、预防、责任不甩锅。

需要掌握的工具

  • Firebase Crashlytics、Bugly、Sentry:崩溃、异常和用户影响分析。
  • ELK、Grafana、Prometheus、Loki:日志、指标、看板和告警。
  • Logcat、Xcode Device Logs、Console.app:本地和真机日志排查。
  • 符号解析工具:dSYM、mapping、so、IL2CPP 符号还原堆栈。
  • 埋点平台:启动、热更、登录、加载、战斗、支付和活动数据。
  • 线上开关后台:活动关闭、资源回滚、特效降级、入口禁用。
  • 事故复盘模板:统一记录时间线、影响、根因、修复和预防。

可继续细分方向

  • 崩溃、ANR、OOM 和符号解析。
  • 客户端日志、埋点和性能上报。
  • 线上开关、降级和回滚。
  • 事故响应和复盘。

安全与反作弊

  • 客户端不可信:关键经济、战斗结果、支付结果必须服务端校验。
  • 协议保护:签名、时间戳、随机数、重放保护、简单加密、压缩混淆。
  • 行为检测:速度、坐标、伤害、冷却、资源产出、异常请求频率。
  • 支付安全:订单号、平台回调、服务器验签、补单、重复发货保护。
  • 资源保护:清单签名、关键配置校验、防止直接替换。
  • 风控日志:异常行为、设备、账号、IP、版本、场景、协议上下文。
  • 客户端检测:越狱、Root、调试器、注入、改包,只作为辅助证据。

需要掌握的工具

  • HTTPS/TLS、证书和签名工具:保障基础通信安全。
  • 协议签名和重放测试工具:验证时间戳、随机数、序列号和校验逻辑。
  • 代码混淆、资源加密工具:降低直接篡改和静态分析成本。
  • Charles、Wireshark:从攻击者视角验证抓包、重放和篡改风险。
  • 支付验签工具和订单后台:排查补单、重复发货和异常订单。
  • 风控后台:查看异常速度、坐标、伤害、请求频率和设备行为。
  • Root/越狱/调试检测库:只作为辅助信号,不能替代服务端校验。

可继续细分方向

  • 协议安全和重放保护。
  • 支付安全和订单校验。
  • 客户端资源保护和混淆。
  • 风控日志、作弊检测和服务端校验。

开发高级/资深关注点

  • 质量保障不是只靠 QA 手工点。
  • 线上问题必须能定位到版本、用户、设备、链路和失败原因。
  • 每个高风险功能上线前要有开关和回滚策略。
  • 反作弊不能只依赖客户端检测。
  • 事故之后要沉淀工具、日志或流程,避免同类问题重复发生。

评论