name: android-ui-automation-feasibility
description: >-
Evaluates Android UI test case documents or bug descriptions for automation
feasibility via UI-tree MCP, mobile MCP, and ADB/shell (适合/部分适合/不适合).
Chains with android-mcp-live-step-generation after assessment; supports
callback downgrades from live-debug or AR review. Use when the user asks
whether a test case can be automated, requests UI automation feasibility
assessment, or provides a test steps document, bug description, or URL to
evaluate.
Android UI 自动化可行性评估
基于 UI 树类 MCP + 移动端 MCP + ADB/Shell 的能力边界(默认不含 OCR、视觉 AI、MidScene 等图像理解),评估具体用例是否可自动化、可自动化到什么程度。
本 skill 自包含全部规则与参考案例,不依赖特定项目路径或环境配置;任意 Agent 读取后即可执行评估。
何时启用
- 用户提供用例 本地文件 、粘贴步骤 、Bug 描述 或 链接
- 用户问「能否自动化」「自动化可行性」「能不能脚本化跑这个用例」
- 真机调试或「Auto工具验证点评」暴露评级过高 → 回调修订本 skill 结论
- Excel G 列「评审意见 / Review」 已填写时 → 优先于启发式预筛,须回调修订评级(见「Review 校准规则」)
与真机调试 skill 串联
可行性评估(本 skill)→ 适合/部分适合 → android-mcp-live-step-generation 真机走通写步骤
↑ ↓
└──── 点评/真机阻塞/找不到入口 ── 回调降级 ──┘
| 阶段 | skill | 产出 |
|---|---|---|
| 1 | 本 skill | 适合 / 部分适合 / 不适合;三层结论;推荐断言与通道 |
| 2 | android-mcp-live-step-generation |
调试状态、标准步骤、可选 AI 步骤 |
| 3 | 用户「Auto工具验证点评」或真机失败 | 改步骤 → 必要时回调本 skill 评级 → 再验证 |
分工 :本 skill 只评「能不能、评到哪一级」;步骤怎么写、菜单真机路径、fmt_steps 归 live-step skill。禁止对评为不适合的用例在步骤 skill 里硬写自动步骤。
评估工作流
1. 获取用例内容
| 输入类型 | 做法 |
|---|---|
| 本地路径 | 读取全文 |
| 粘贴文本 | 直接使用 |
| URL | 尝试抓取;需登录/403 则请用户提供正文 |
| Bug 系统链接 | 若无法抓取,请用户粘贴「标题 + 步骤 + 预期结果 + 前置条件」 |
提取字段:前置条件、操作步骤、预期/通过准则、已有 ADB/脚本化说明、依赖外设。
2. 启发式预筛(可选)
对用例全文做关键词匹配,得到倾向评级(非最终结论):
- 按优先级扫描:不适合规则 → 部分适合规则 → 适合规则
- 同一文本命中「部分适合 + 适合」线索 → 保持 部分适合,在理由中注明可断言线索
- 识别文档信号(加分/降置信度):
- 含
ADB(可脚本化)/adb shell→ 工具层有参考路径 - 含自动化等价操作说明 → 已有脚本化映射
- 含
通过/失败/预期结果→ 可提取感知层断言 - 仅 手动 步骤且无 ADB 段 → 置信度降 低
- 含
预筛后必须完成三层分析再出报告。
3. 三层边界分析(必做)
对每一步/每条预期,分别问:
A. 工具层 --- 能否发出操作?
- 导航、点击、滑动、输入、按键、启停 App、Shell 命令
- 参考「自动化能力矩阵」(见下文)
B. 感知层 --- 能否客观判定通过/失败?
| 可自动断言 | 难/不可自动断言 |
|---|---|
Activity/包名、checked/Switch 状态 |
花屏/闪屏/亮度主观 |
| UI 树 text/resource-id 存在性、列表项 存在/不存在 | 相机/扫码「内容对不对」 |
settings get / dumpsys(仅 UI 无法判定时) |
音质、录音效果、音量主观 |
| 动画准确/流畅/过渡/卡顿/慢/顿(无 OCR) | |
| logcat 崩溃/ANR 关键字 | 蓝牙/WiFi 真实连通(非仅开关) |
| 系统弹窗「已停止运行」等 text | 花屏/闪屏/亮度/黑屏/全黑照片 |
| 点击无响应 / 错误页面跳转 | 低概率 alone(不因此降级 Crash 类) |
| DCIM 是否有新文件(非画质) | 相机成像质量/变焦/HDR/分辨率 |
| WebView 内无 accessibility 节点 |
C. 场景层 --- 是否依赖外部世界?
以下任一命中 → 至少降为「部分适合」,常直接「不适合」:
- 硬件仪表(充电功率、温箱、电流仪、光感 lux)
- 生物识别(指纹/面容录入与解锁、触摸 Sensor 按压)
- 真·多指同时触控(三指划屏截图、multitouch 冻屏);核心验收为手势本身时直接不适合
- 卸载预置/系统应用(无可靠无人值守路径)
- 进不了 FTM / 工厂模式 / 隐藏工程菜单
- 文档菜单在真机不存在且不能用已验证等价项替代(禁止用近似功能凑评级)
- XTS/CTS/GTS/VTS 官方套件
- 对端设备(对端手机、辅助机来电、视频通话、SIM 短信)
- 外设:有线/蓝牙耳机、外接实体键盘、POWER-Z 等
- 生物识别验收 :人脸解锁/面容识别需真实人脸(非仅导航到设置页)
- 物理手势:转手腕开相机、twist gesture、特殊轨迹手势
- 时序不确定:「等几秒再操作」且等待时长影响结果
- 长时间压力(24h、数百次插拔、12H 长待机)
- 专用实验室工具 + 高温组合
4. 拆分「操作自动化」与「验收自动化」
「部分适合」必须写清:
- 可无人值守:哪些步骤可用 UI 自动化 / ADB 完成
- 需人工/外设:哪些预期只能人眼、仪器或第二台设备判定
5. 给出实施建议(仅当 ≥ 部分适合)
- 通道选型(见能力矩阵):UI 树循环 → UI 树类 MCP;按包名启停 → 移动端 MCP;息屏/keyevent/图案 → ADB shell
- 断言优先(UI 先于 Shell) :① UI 树 text / Switch
checked/ 节点存在或消失 → ② Activity / ResumedActivity → ③settings get/ dumpsys(仅 文档写明或 UI 实在无法判定时);禁止为 UI 已可判的开关/列表再「自由发挥」加 adb - 找应用 :评估方案里优先 应用抽屉 / 桌面 UI 路径 ;不单靠
pm list packages或包名启停代替找图标 - 风险 :ROM 文案、分辨率、弹窗;Wait/sleep 单位须先确认是秒还是毫秒(见下文「等待与间隔」)
- 坐标:分辨率/方向变化会导致坐标失效,须以最新 UI 树为准,勿照搬历史坐标
评级定义
| 评级 | 含义 | 典型条件 |
|---|---|---|
| 适合 | 操作与验收均可结构化自动判定 | 稳定复现;Crash/ANR/弹窗/点击无响应/错误跳转可 UI 或 logcat 断言 |
| 部分适合 | 操作可自动,验收需人工/外设/主观 | 仅文件大小/开关等可 Shell 兜底且画质仍须人工(收窄使用) |
| 不适合 | 核心验证无法由 UI 自动化完成 | 硬件、XTS、生物识别、多指、花屏/黑屏/卡顿/音频、对端/外设依赖 |
优先级 :不适合 > 部分适合 > 适合。
低概率 / 压测次数(Review 校准)
- 不得 仅因标题含
1/10、1/20、2/104等概率描述,就把 Crash/ANR/「相机已停止运行」/点击无响应 降为不适合。 - 低概率只影响回归置信度 或备注,不改变「适合」评级;长时压测(12H 待机、840 次插拔、Monkey 7×24H)仍不适合。
- 卡顿/慢/顿/冻屏预览 即使低概率,核心验收仍须人眼 → 不适合(勿标部分适合)。
输出模板(必须使用)
markdown
# UI 自动化可行性评估:<用例标题或文件名>
## 总评
- **评级**:适合 | 部分适合 | 不适合
- **置信度**:高 | 中 | 低(信息不足时标低并列出缺失项)
- **启发式预筛**:(若做了关键词预筛)倾向评级 + 命中规则
- **一句话结论**:
## 分层结论
| 层级 | 结论 | 说明 |
|------|------|------|
| 工具层 | ✅ / ⚠️ / ❌ | |
| 感知层 | ✅ / ⚠️ / ❌ | |
| 场景层 | ✅ / ⚠️ / ❌ | |
## 逐步分析
| 步骤/验证点 | 操作可自动 | 验收可自动 | 主要手段 | 备注 |
|-------------|------------|------------|----------|------|
## 阻塞项(若有)
- ...
## 自动化方案(仅部分适合/适合)
### 推荐路径
- UI 树 MCP:...
- 移动端 MCP:...
- ADB/Shell:...
### 建议断言
- ...
### 风险与前提
- 设备、ADB 授权、ROM 设置、...
## 人工验收清单(仅部分适合)
- [ ] ...
自动化能力矩阵
评估时默认按此矩阵判断工具层;不含 OCR / 视觉 AI / MidScene。
| 能力 | UI 树类 MCP | 移动端 MCP | 终端 ADB / Shell |
|---|---|---|---|
| UI 树 + 标注截图 | ✅ | 元素列表 | uiautomator dump |
| 坐标点击/滑动 | ✅ | ✅ | input tap/swipe |
| 按包名启停 App | ❌ | ✅ | am start / force-stop |
| 安装 APK | ❌ | ✅ | pm install |
| Shell 任意命令 | ❌ | ❌ | ✅ |
| 录屏/崩溃日志 | ❌ | ✅ | logcat / tombstone |
| selector 点击 | ❌(仅坐标) | 部分 | uiautomator2 |
| 中文输入 | 专用 IME | type_keys | input text 仅 ASCII |
| 息屏/双击电源 | ⚠️ 按键能力有限 | keyevent 类 | input keyevent |
| 图案锁屏 | ❌ | ❌ | motionevent 序列 |
增强假设(用户明确 Shell + uiautomator2 已接入自动化时)
工具层缺口(启停、Shell、motionevent、settings)视为 ✅;下列仍 ❌:
- 指纹/面容硬件、真多指同时触控、充电仪/温箱/光感 lux
- XTS/GTS/VTS 套件、对端手机/SIM/视频通话
- 花屏/闪屏/亮度/音质等无仪器指标、24h 级长压
感知层新增可断言:settings get/put、dumpsys、logcat、DCIM 文件 mtime、部分 cmd connectivity。
通道选型速查
| 场景 | 优先通道 |
|---|---|
| 逐步读 UI 树、坐标点击、下拉通知栏 | UI 树类 MCP |
| 按包名启动/停止 App、安装 APK | 移动端 MCP |
| keyevent、settings、reboot、dumpsys、motionevent | ADB Shell |
| 边缘时序(息屏、双击电源) | ADB Shell(精确 sleep 间隔) |
等待与间隔
执行或编写自动化步骤时:
- 先确认单位 :对 Wait API 以及 shell 里的
sleep,查清参数是毫秒还是秒(以工具 schema 或文档为准)。禁止未确认单位时凭感觉传大整数。 - 常规 UI 间隔 :界面切换、点击后留绘制时间,用秒级小间隔 (约
0.3~2秒或等效毫秒)。 - 百位数警惕:数值 ≥100 时,先判断是「100+ 毫秒」误传,还是「100+ 秒」的真实需求。
text
❌ 错误:误以为 Wait 是毫秒,传入 800,实际睡眠 800 秒。
✅ 正确:读 schema 后若为秒,UI 间隔用 1 或 2;若为毫秒,用 500~1500。
关键词规则(启发式预筛)
不适合(not_rules,命中即倾向不适合)
| 模式关键词 | 理由 |
|---|---|
| 压力插拔、840次、充电功率、bc1.2、charger | 充放电硬件 |
| 温箱、+55度、电流10ma | 环境箱/仪表 |
| 对面手机、对端、opposite mobile | 外部设备 |
| lux、hbm、10000lux、光感 | 环境光 |
| run cts/gts、xts、vts、CtsTestCases、Gts、Vts* | 谷歌官方 XTS/GTS/CTS 套件(非 App UI MCP) |
| 刷机、retry报告 | 非 UI 专项 |
| 指纹解锁、录入指纹 | 生物识别 |
| 三指截图、multitouch、3指 | 多指手势 |
| 闪屏、花屏、flicker、绿屏、鬼点 | 视觉质量 |
| 冻屏、tp不可用 | 驱动层 |
| 低概率 | 偶现 |
| 卡顿 | lag |
| 耳机 | headset |
| 人脸 | face unlock |
| 黑屏 | all black |
| 辅助机 | 来电 |
| twist gesture | 转动手腕 |
| google lens | QR Code |
| 外接键盘 | keyboard.*wake |
| 指示灯 | LED |
| power cycle.*触摸 | 触摸屏无作用 |
| 12H | 12小时 |
| 等几秒 | 时间间隔不确定 |
| 横屏 | landscape |
| esd、boe屏、lcm | 屏体硬件 |
| sim、短信 | 需 SIM |
| video call、视频通话 | 需对端 |
| 24H、100次循环压力 | 长时压测 |
| 深度休眠、背光不受控 | 电流仪/驱动 |
| auto test tool、flash读写、内存填充 | 专用压力工具 |
| 卸载预置、卸载系统应用、uninstall.*system | 预置应用不可无人值守卸载 |
| ftm、工厂模式、factory mode、工程模式 | 入口常不可达或需密码 |
| 动画准确、动画效果、transition、流畅度 | 主观视觉,无 OCR |
| 智能亮屏(且文档未给可验证等价菜单) | 菜单名须与文档一致,找不到则不适合 |
部分适合(partial_rules,收窄)
| 模式关键词 | 理由 |
|---|---|
| 0KB、photo size | 文件大小可 Shell;画质仍人工 |
| 三指截图开关、截取全屏(仅设置页开关/导航) | 操作可自动;若验收含三指手势 → 不适合 |
禁止 将下列项默认标为部分适合(应直接 不适合 ):卡顿/音频/黑屏/花屏/人脸解锁/外设耳机/辅助机来电。
适合(good_rules,仍需感知层可断言)
| 模式关键词 | 理由 |
|---|---|
| camera stopped、相机已停止、keeps stopping | 系统弹窗/logcat 可断言 |
| crash、anr、闪退、flashback、error message | Crash/ANR 可断言 |
| 点击无响应、not responding、没反应、无反应 | UI 点击/响应可断言 |
| opens the previous、跳到前一张、错误跳转 | 页面/缩略图跳转可断言 |
| 100%重复、必现 | 稳定复现 |
| 点击无响应、不显示、missing、空白 | UI 可见性 |
| 默认开启、toggle、切换后 | 开关状态 |
适合的前置排除(命中任一则不得标适合):人脸解锁、辅助机来电、黑屏观察、卡顿、音频、外设耳机、特殊手势、时序不确定、Lens/二维码取景。
模块默认(Bug 带模块名且无关键词时)
| 模块 | 默认评级 |
|---|---|
| LCD/TP、充放电、XTS、指纹、音视频 | 不适合 |
| 相机 | 不适合(成像/预览须人眼;例外:Crash/弹窗/点击无响应见 good_rules) |
| 其他 | 不适合(经验库缺步骤时保守) |
断言手段速查
优先级:UI 树可读态 → Activity → Shell(仅兜底)。
| 验证目标 | 推荐手段 | 避免 |
|---|---|---|
| 进入某页 | UI 树标题/搜索框;其次 mCurrentFocus / ResumedActivity | 仅看截图 |
| Switch 状态 | UI 树 checked + 文案「开启/关闭」 |
点整行标题;UI 已绿仍写 settings get |
| 列表含/不含某 App | UI 树滚动查找存在或 不存在 | 仅 pm list packages |
| 系统开关实际值 | 先 UI;不行再 `settings get global | system` |
| 应用在前台 | dumpsys activity | |
| 是否崩溃 | UI 树弹窗「已停止运行」;其次 logcat FATAL/AndroidRuntime | 仅低概率作降级理由 |
| 是否拍照 | DCIM 新文件 ls -t | 画质目视 |
| 是否连上 WiFi | dumpsys wifi(SSID 关联) | 仅开关 UI |
| 自动旋转状态 | UI 磁贴文案;或 settings get system accelerometer_rotation |
仅看图标 |
| 动画/过渡效果 | --- | 任何自动断言;标人工验收 |
用例文档结构识别
结构化测试文档常见段落及评估含义:
| 段落 | 含义 |
|---|---|
| 前置条件 | 环境/设备依赖 → 场景层 |
| 手动 | 未必不能自动,看是否有 ADB 等价段 |
| ADB(可脚本化) / ADB(推荐可脚本化) | 工具层已验证路径 |
| 自动化等价操作 | 已有脚本化映射 |
| 通过/失败准则 / 预期结果 | 感知层核心输入 |
若仅有手动步骤且无断言标准 → 置信度 低,评级保守。
内嵌参考用例(文档范例)
以下用例可直接作为「好文档」模板,也可作为评估练习输入。
参考 A:杂志锁屏服务 --- 开关持久性(典型「适合」)
测试目的:打开设置 → 搜索「杂志锁屏服务」→ 关闭「开启服务」→ 返回 → 再次进入 → 断言仍为关闭。
前置条件:设备已解锁;系统设置中存在「杂志锁屏服务」及「开启服务」开关。
关键步骤与脚本化手段:
| 步骤 | 手动 | 自动化手段 | 断言 |
|---|---|---|---|
| 打开设置 | 点桌面「设置」 | UI 树定位 + 点击 | Activity 含 settings |
| 搜索进入 | 搜索框输入「杂志锁屏服务」 | Type + 点击首条结果 | 树含目标页标题 |
| 关闭开关 | 点「开启服务」滑块 | 点击 switch 区域(非标题) | checked=false |
| 返回再进入 | 返回 → 再次进入 | 返回键/点击 + 导航 | checked 仍为 false |
通过标准 :步骤 6 后「开启服务」仍为关闭,与步骤 4 一致。
评估要点 :操作与验收均可 UI 树 + checked 断言 → 适合。
参考 B:快捷设置 --- 自动旋转 --- 重启持久性(典型「部分适合」)
测试目的:下拉快捷设置 → 开启自动旋转(或关闭竖屏锁定)→ 重启 → 开机后状态保持。
前置条件:设备已解锁;USB 调试可用。
关键步骤与脚本化手段:
| 步骤 | 自动化手段 | 断言 |
|---|---|---|
| 展开快捷设置 | 顶部下滑 或 adb shell cmd statusbar expand-settings |
磁贴区域可见 |
| 切换旋转 | UI 树定位「自动旋转」/「竖屏锁定」+ Click | settings get system accelerometer_rotation 为 1 |
| 重启 | adb reboot |
--- |
| 开机后检查 | adb wait-for-device + getprop sys.boot_completed |
再次读 accelerometer_rotation 与界面一致 |
通过标准 :重启后 accelerometer_rotation 与界面状态与重启前一致。
评估要点 :操作可自动;重启后 ADB 重连、厂商布局差异 → 部分适合(置信度:中)。
ADB 片段:
bash
adb shell cmd statusbar expand-settings
adb shell settings get system accelerometer_rotation
adb reboot
adb wait-for-device
adb shell getprop sys.boot_completed
参考 C:息屏后双击电源键启动相机(典型「部分适合 → 可升为适合」)
测试目的:息屏状态下双击电源键启动系统相机。
前置条件:ROM 已开启「电源键双击启动相机」;测试前建议回 Home。
关键步骤与脚本化手段:
| 步骤 | ADB | 断言 |
|---|---|---|
| 回 Home(可选) | input keyevent 224 + am start -a MAIN -c HOME |
--- |
| 息屏 | input keyevent 223(SLEEP) |
等待 0.5~1s |
| 双击电源 | input keyevent 26; sleep 0.15; input keyevent 26 |
--- |
| 检查相机 | 等待 1~2s | dumpsys activity activities 中 ResumedActivity 含 Camera |
通过标准 :ResumedActivity 为相机应用主 Activity。
评估要点 :MCP 按键能力有限 → 工具层 ⚠️;Activity 断言可靠 → 感知层 ✅;ROM 设置依赖 → 场景层 ⚠️。部分适合 ,per-ROM 验证通过后可升为 适合。
时序注意 :双击间隔 0.12~0.2 秒(sleep 单位为秒,勿误传毫秒)。
参考 D:相机录像水印(典型「部分适合」)
测试目的:打开相机 → 录像 → 检查成片是否带水印。
| 层级 | 结论 |
|---|---|
| 工具层 | ✅ 可启相机、录像 |
| 感知层 | ❌ 水印内容与位置(无 OCR) |
| 场景层 | ✅ 无外部硬件 |
可自动 :DCIM 是否有新媒体文件。需人工:目视水印内容/位置。
参考 E:Bug --- 三指滑动冻屏(典型「不适合」)
输入:三指以上滑动时触摸屏冻屏,开启三指截图时 100% 复现。
| 层级 | 结论 |
|---|---|
| 工具层 | ❌ 无法模拟真·多指同时触控 |
| 感知层 | ❌ 「冻屏」非 UI 树可断言 |
| 场景层 | ❌ TP 驱动/系统手势 |
→ 不适合,置信度:高。
参考 F:三指截屏 --- 开关 vs 手势(典型「部分适合 / 不适合」分界)
用例 A(仅验设置开关):设置 → 系统 → 截屏 → 打开「截取全屏」→ 检查开关为开启。
| 层级 | 结论 |
|---|---|
| 工具层 | ✅ 设置导航可自动 |
| 感知层 | ✅ Switch / 文案可断言 |
| 场景层 | ✅ 无多指注入 |
→ 部分适合 (仅设置子项);推荐路径写 UI 树,不写三指手势步骤。
用例 B(验收三指划屏能截图) :同上后再 三指下滑截屏,检查是否生成截图。
| 层级 | 结论 |
|---|---|
| 工具层 | ❌ 无法模拟真·三指同时触控 |
| 感知层 | ⚠️ 可查 DCIM 新文件,但复现步骤不可自动 |
| 场景层 | ❌ 手势层 |
→ 不适合 (核心验收不可脚本化)。不得 因「开关能点」把整条标为 适合。
路径纠偏(真机常见) :三指相关开关常在 设置 → 系统 → 截屏,而非「动作与手势 → 三指截屏」;评级时以真机可达菜单为准,菜单名须与用例文档一致。
Review 校准规则(G 列 / 评审意见)
当用例表 G 列「评审意见」 或「Auto工具验证点评」已填写时,必须优先于启发式预筛,回调修订评级并同步 Excel。
解析口径
| Review 表述 | 含义 |
|---|---|
适合,... / 适合 |
最终评级 → 适合 |
不适合,... / 不合适理由不当,... |
最终评级 → 不适合(修正理由,非维持原级) |
不适用,卡顿/人眼/外设/辅助机/... |
原评级过高 → 不适合 |
不适用,点击无反应 / ANR/Crash/系统弹窗 |
原评级过低 → 适合 |
CommonIssue 经验库 Review 归纳(2026-07)
- 低概率不单独降级 Crash/ANR/「相机已停止运行」/点击无响应 → 可 适合
- 卡顿/慢/顿/售后性能 → 不适合(勿标部分适合)
- 音频/耳机/BT/破音/音量 → 不适合(人耳+外设;理由勿写 SIM/低概率)
- 黑屏/花屏/全黑照片/分辨率/变焦效果 → 不适合
- 人脸解锁/面容识别 → 不适合(需真实人脸)
- 辅助机来电/通话中复现 → 不适合
- XTS/GTS/CTS → 不适合;理由写「官方套件」,勿写「刷机」
- 启发式理由须与验收一致 --- 禁止张冠李戴(例:音频 Bug 勿命中 SIM 规则)
回调后:启发式预筛 列写 Review校准 --- ...;更新汇总统计。
真机验证回调规则(硬规则)
真机调试或表格「Auto工具验证点评」命中下表时,必须回调修订本 skill 评级与分层结论(并同步改步骤 skill,勿硬留自动步骤):
| 场景 | 回调动作 |
|---|---|
| 三指/多指划屏、截图手势为验收点 | → 不适合 ;若仅设置开关子项可保留 部分适合 并注明子范围 |
| 物理键、触摸指纹 Sensor、人脸等硬件接触 | → 不适合 或仅「导航到设置页」为部分适合 |
| 动画/流畅/过渡为通过准则 | 感知层 ❌;整体 部分适合 (仅操作段)或 不适合 |
| 卸载预置/系统应用 | → 不适合 |
| 进不了 FTM / 工厂模式 | → 不适合;置信度可标低并写阻塞 |
| 找不到 文档 App 或 找不到文档菜单名 | → 降级;禁止用近似功能替代(如「智能亮屏」≠「抬手亮屏」) |
| 低概率 alone 导致 Crash/ANR 误标不适合 | → 升为 适合(若弹窗/logcat 可断言) |
| 卡顿/音频/黑屏 误标部分适合 | → 不适合 |
| XTS/GTS 理由写刷机 | → 改为「官方 XTS/GTS/CTS 套件」 |
| 启发式理由与验收不符 | 修正理由;必要时改评级 |
| UI 树已能判开关/列表,方案却依赖 adb | 修订推荐路径,去掉多余 Shell 断言 |
找应用只靠包名/ pm,未走应用抽屉 UI |
方案改为 UI 路径;评级不变则注明实施风险 |
回调后输出须更新:总评、分层结论、推荐路径、阻塞项;若原 Excel 已写入评级列,应同步改表。
完整评估输出范例
范例 1:杂志锁屏服务
markdown
# UI 自动化可行性评估:杂志锁屏服务 --- 开启服务开关
## 总评
- **评级**:适合
- **置信度**:高
- **一句话结论**:全流程可 UI 树驱动,Switch 状态可客观断言。
## 分层结论
| 层级 | 结论 | 说明 |
|------|------|------|
| 工具层 | ✅ | 设置导航、搜索、点击均可 |
| 感知层 | ✅ | Switch checked 可读 |
| 场景层 | ✅ | 无外部硬件 |
## 逐步分析
| 步骤/验证点 | 操作可自动 | 验收可自动 | 主要手段 | 备注 |
|-------------|------------|------------|----------|------|
| 打开设置 | ✅ | ✅ | UI 树 Click | |
| 搜索并进入 | ✅ | ✅ | Type + Click | |
| 关闭开关 | ✅ | ✅ | Click switch | 点滑块非标题 |
| 返回再进入 | ✅ | ✅ | Back + Click | |
| 断言仍关闭 | ✅ | ✅ | checked=false | |
## 自动化方案
### 推荐路径
- UI 树 MCP:Snapshot → Click/Type 循环
### 建议断言
- 每步后 Snapshot 确认页面;最终以 Switch `checked=false`
### 风险与前提
- 不同厂商命名可能为「锁屏杂志」;坐标随分辨率变化须重取
范例 2:三指冻屏 Bug
markdown
# UI 自动化可行性评估:三指滑动冻屏
## 总评
- **评级**:不适合
- **置信度**:高
- **启发式预筛**:不适合 --- 命中 multitouch/冻屏
- **一句话结论**:无法模拟多指触控,冻屏现象无法 UI 树断言。
## 分层结论
| 层级 | 结论 | 说明 |
|------|------|------|
| 工具层 | ❌ | 无真·多指注入 |
| 感知层 | ❌ | 冻屏非 accessibility 态 |
| 场景层 | ❌ | 驱动/手势层 |
## 阻塞项
- 核心复现步骤(三指同时滑动)不可脚本化
- 验收标准(触摸屏无响应)需人工或专用仪器
注意事项
- 默认按标准能力矩阵评估;用户说明已支持 Shell + uiautomator2 时,按「增强假设」放宽
- 信息不足时不要 强行「适合」;列出需用户补充的前置条件;找不到文档菜单/App 时保守降级
- 评估结论不等于已执行通过;仅分析可行性;真机走通后允许回调修订
- 边缘场景(息屏、双击电源、厂商手势)优先参考用例 ADB 段落 与精确时序;菜单路径以真机为准
- 评为 适合/部分适合 后,用
android-mcp-live-step-generation落地步骤;评为 不适合 则不写 AI/自动步骤