Files
matrix-screen-controller/移动端相关内容/安卓app/测试结果归档/2026-09-29_按影响选测改造

2026-09-29 Android 按影响选测改造

本轮范围和选择理由

改变测试基础设施、场景调度、假数据 UI 环境及协作规则。产品源码、设备部署、协议与版本不变;未导出或发布 APK。测试构建使用既有 debug 签名;源摘要及测试 APK 摘要见 manifest.json,APK 仅为临时验证产物。

本轮新增模拟器框架,因此首次验证所有六个基础场景,并仅对 layout 扩展三组配置。真机只选 connection(验证真实适配器/握手调度)和 navigation(验证 root 输入及权限恢复)。不把框架首次覆盖扩展为以后每轮全量要求。

结果

验证 实际结果
sharedCore:jvmTest 15 个测试,0 failures / errors
Android 产品、真机 instrumentation、独立 uiTest 构建 通过;隔离工程使用原有 Gradle 9.5.0 / AGP 9.3.1 / Kotlin 2.4.20 / Compose 1.12.1
宿主调度、预览、失败传播、权限/布局恢复 9 个 unittest 通过
原登记门禁回归 8 个 unittest 通过
模拟器 API 35 baseline connection、status、content、settings、navigation、layout 均通过
模拟器 layout 配置 narrow(约340dp)、large-font(1.3)、landscape 均通过
模拟器恢复 所有运行的字体、方向、密度恢复回读通过;本轮启动实例已退出
真机 android-test-a / connection 加密握手、断开、重新扫描重连通过,instrumentation 16.476 秒;未执行数据读取/切网/轮询/后台专项
真机 android-test-a / navigation 初次 8.19 秒通过;清理范围调整后 8.898 秒通过;独立导航不连接板端,权限恢复和辅助脚本清理通过
产品 APK 隔离检查 dex 不含 FixtureActivity / FixturePlatform / IsolatedUiTest
Git diff 空白检查、Python AST 通过

模拟器逐项结果见三个 JSON。首轮 connection/status 已通过,不因后续内容夹具修复重复运行;后续四项单独重测及补测通过。JSON 中 not_selected 仅描述单次运行,不能误读为整轮没测。

最终 Kotlin 调整仅减少 connection-entry 的无关菜单操作、减少 controller-background 的内容加载,并整理缩进;已重新编译。真实验证证明 connection/navigation 的执行路径;其它新拆分专项只有编译/调度证据,未声称均已真机通过。

本轮失败与修复

  • 初次 uiTest 配置出现 com.android.test 重复插件版本,以及不存在的 compose.uiTestJUnit4 accessor:复用 AGP classpath 并使用锁定的显式 Compose 测试依赖后构建通过。
  • 系统 Python 缺少 Paramiko:未进入远端测试;改用项目已有本机测试 venv 后真实连接通过,没有为设备端添加依赖。
  • 新 AVD 独立镜像缺包登记且 SDK 根解析不一致:补齐官方包元数据/许可证并正确指定工具对应 SDK 根、复用原 Emulator 后成功;未覆盖现有软件。
  • 模拟器首轮 content 因假条目漏 revision 而失败;补齐真实契约字段后该场景通过。首次失败保留于 ui-baseline-1.json。
  • 最后安装返回值检查修改出现 Python 缩进错误,AST/宿主测试发现;修正后 AST 和全部 9 项宿主测试通过,未在错误状态下运行设备。

可复用经验更新在 常见问题与排障 第13节,规则和命令更新在 按影响选测。

按影响跳过与验证边界

本轮未执行实际切网、蓝牙开关、昵称/记忆写入、后台长等待、长轮询、双手机、性能和 systemd 停启;未部署核桃派、切换屏幕内容、启动摄像头或截图。驱动/实屏视觉不适用。

上述真机拆分专项保留为必要时的执行入口,当前实际设备结果仍为未验证,不能用宿主调度通过替代。独立模拟 UI 不证明真实射频、密码错误网络激活、Android 8–11 定位权限、MIUI 后台策略或视觉动画质量;相关修改须补对应证据。

没有发现本轮新增的未解决产品问题;现有构建提示 sharedUi commonTest 未接入 compilation 仍属于既有边界,本轮 UI 实测在独立 uiTest 内完成。

仓库卫生检查通过(624 个 Git 候选文件)。自动审批拒绝临时隔离构建目录删除,目录保留于仓库外受保护临时目录,未尝试其他删除途径。后续构建不依赖它;可复用 SDK、系统镜像和 AVD 保留供按需测试。