Files

15 KiB
Raw Permalink Blame History

全工具路由与判定边界

读取场景:选择执行器、确认一个用例需要哪些证据,或排查“有工具却仍不能判定”的情况。机器可读的逐行映射在 case-routing.json,本机可执行文件配置与探测在 团队部署,手机任务交接在 Artemis 工作流。

范围与状态

来源是 家庭安防多形态终端软件测试用例(移动看家2.0)20260623_自动化分类.xlsx,结合 review_all.json、kept_records.json 和 工具分析报告.md。原有分类记录 861 行中排除“无法实现”504 行,保留 357 行:工具辅助163、人工介入125、可适用69。以工作表与 Excel 行号作为唯一来源,不按原编号去重。357 是保留记录行数,不是已自动化或已通过的场景数。

全工具入口负责发现、路由、调用现成能力、关联证据。平台和内部工具保留原产品、业务通道及权限;三方/通用工具可在能力等价且不改变被测条件时替换。仅标注“PC端”不能推出具体软件或API,提供入口路由不表示已有端到端脚本。人工场景、校准、硬件、后台权限等缺口保留在每条映射中。

路由结果与测试判定分开:工具正常退出或 Artemis completed 不等于通过。passed 要求所有适用断言有证据;failed 表示观察到明确违背预期;inconclusive 表示已执行但证据不足或冲突;blocked 表示必要依赖、权限、身份或前置条件未满足。映射文件中的 not_run 只是未执行状态,不是第五种业务判定。

平台与内部工具:保留业务入口

路由 实际调用形式 可完成的环节 调用前要确认的缺口
移动视联PC 原Windows客户端;用户人工登录后,由宿主原生GUI能力或已验证的UIA/Win32控件驱动操作 直播/回放、分屏、云台、OSD、告警、端侧AI参数与上报 客户端实际版本、人工登录完成后的业务页与权限、控件可访问性及多客户端/多设备资源;安装程序不能当作已运行客户端;视频画布需另取码流或外部证据
mainThread/杭研网络信息查询候选 已取得真实“端侧数据采集工具.exe”,静态确认Python3.8/PyQt5原生GUI;通过当前窗口进入查询页,无已验证CLI 周期基础数据、拓扑、已有设备日志地址查询;可作为1设备绑定!18(1.46)的候选取证入口 原用例仅称“杭研软件”,与该程序的用例对应关系、查询权限和目标数据仍须核实;包下载、程序启动或控件静态识别不等于业务通过
移动看家客诉处理系统 真实网站的浏览器页面;用户人工登录后继续自动操作,经核实的正式API才可选用 在离线、编码延时、modelid、发声打点、日志、重启、网络检测记录 由本地profile提供URL;确认业务页和目标查询权限。账号、密码、短信/图形验证码及协议确认均由用户完成;不读取或复制账号统计表
连楹平台(材料也写“联楹”) 原智慧家庭门户/终端管理网站;用户人工登录后通过browser自动操作 modelid、版本/注册信息、首次及后续24小时上报 确认平台实际产品、环境及当前查询权限,不用老DM替代;记录查询条件、服务器时区、事件时间与设备别名
老DM/终端管理平台 原管理平台browser;正式API有文档和权限时可用 首次注册、心跳及48小时持续记录 地址和身份待确认;20 DM测试!6的24/48小时矛盾须在执行前解决
内部配置工具 原EapilCameraConfigurer PC GUI;device_adapter.py 按 --protocol 驱动 V1/V2 搜索、身份与版本查询、显式固件下发;原GUI实际支持的配置 先查 capabilities 与 协议范围。V1 接口 使用 TCP4941/2170/MD5+ROM;默认只预检,显式执行最多一次传包。软件V2.x不代表设备协议V2。视频设置继续原GUI或原表要求的APP
firmware_encrypt 对应SDK随包工具,CLI参数以该版本帮助/说明为准 9系统设置!20(9.15-3)的规定OTA包生成 工具和SDK缺失时blocked;不猜加密算法/参数,不用通用压缩或加密替代。保留包摘要、SDK版本、命令脱敏记录和双分区证据
软探针、参数/日志后台 原网站browser或已核实的正式接口 开关、参数、指标、事件、日志上传与时间对应关系 原资料未给出全部入口;不可编造API路径,不将客诉网站自动视为所有后台
算法OTA平台 原管理网站browser或已核实的下发/回滚接口 云化AI算法应用下发、启用、回滚、版本检查 平台身份、算法包、授权、适用白盒设备和回滚证据;APP提示成功不能证明算法真正生效
其他既有管理/编码/升级/1400入口 保持原平台或原协议取证通道,先识别产品再选browser/PC GUI/正式API 原生参数、编码控制、协议事件、升级与日志取证 “既有PC平台”“厂商平台”仅是依赖描述;身份未确认时保留blocked,不映射成虚构统一服务

网页路由先观察现有页面,再用可访问元素定位。PC GUI路由先确认宿主确实允许原生桌面控制;仅有浏览器自动化不能操作Windows程序。无支持的GUI能力时保留人工操作与截图交接,不声称已驱动客户端。登录态是运行时条件,旧文档中的授权或历史登录不自动授权本次外部写入。

客诉、联楹与移动视联的登录交接:先观察当前可访问的标签页或客户端窗口,已有有效会话则直接复用。确实显示登录页时,将准确页面/窗口交给用户,等待用户自行完成账号、密码、验证码、短信和协议步骤,不自动代填、发送短信、点击登录或读取账号表。用户完成后重新观察业务导航与目标查询权限,按当前授权的设备范围继续自动查询和取证;“用户说已登录”与“观察到可用业务页面”分别记录。仅当登录失效或权限不足时再次交接,不为已授权的后续步骤反复询问。浏览器未连接或窗口不可访问属于会话可观察性问题,不能推断为未登录。报告分别记录“等待人工登录”“登录状态未确认”“已登录但目标权限不足”和实际工具故障;人工登录是既定前置步骤,不是工具缺失或用例失败。

mainThread 原生查询页的静态定位线索:主菜单“进入查询端侧数据采集功能”对应 enterReportButton,输入框为 snEdit、macEdit、deviceIdEdit,输出框为 getReportResult。只读查询按钮为 getAnddgsReport(周期基础数据)、getDevTopoReport / getDevTopoReportV4(拓扑)及 getLogURL(已有日志地址)。这些对象名来自已取得程序的静态结构,实际自动化必须重新观察当前窗口,不能假设它们已暴露给 UIA。

查询使用当前确认的设备标识和程序正常鉴权,保留查询时间、条件与响应,不提取内置鉴权信息或绕过 GUI 猜测后台调用。“进入本地调试功能”会进入不同的 CoAP 工作模式,缺少监听端口不能用于判定查询页故障。openSelfCheck、openLog、openLogAll 分别会触发自检或日志上报,不属于只读报告查询;手册示例值也不是当前测试凭据或授权。平台及路由器的登录态、权限与业务能力以本次实际观察为准,历史登录页证据不代表当前状态。

三方与通用工具:可替换的执行与取证

工具/能力 真实调用形式及封装入口 证据与限制
Codex 宿主编排;browser、原生GUI、CLI和MCP分别路由 Codex不代替码流传感器、物理场景或原业务平台;原图“76”分配不能复核,不能作为自动化覆盖率
Artemis MCP mobile_workspace、mobile_run_task、mobile_batch 等 手机APP界面执行、观察、原生报告;不是PC GUI/浏览器执行器。Appium等既有移动框架可按团队实际保留,不能据映射声明两者已互通
Wireshark / dumpcap / TShark Wireshark PC GUI;CLI dumpcap抓包、tshark -r分析;封装 capture、analyze-pcap 保存原始pcap及采集点/过滤条件/时钟。TLS密文不能证明业务权限、双向认证或设备日志脱敏;13.15需授权矩阵及端点证据
Nmap CLI;封装 scan --host <单个IP> --ports <逗号端口> 封装只做最多128个明确TCP端口的连接扫描,不做服务版本探测、UDP或NSE;端口名称不是经探测确认的服务身份。完整验收另补服务识别、全部约定TCP/UDP、IPv4/IPv6及工作状态,不能把默认列表扫描当全端口证明
Binwalk 正式 firmware-scan --input <镜像>;配置 runtimes.binwalk_python 时固定 python -I -m binwalk,否则使用原生入口;独立临时用户配置 已用隔离Python3.11及Binwalk2.3.2验证合成签名正例及一次真实固件扫描;后者无已知签名。当前封装只扫描、不解包或执行提取物;解包与熵分析另行验证,签名或高熵不能证明设备flash加密
ffmg原名 / FFmpeg / ffprobe 原“ffmg”名称待核实;FFmpeg/ffprobe CLI,封装 probe --input <原始媒体> 或 --rtsp-env <环境变量名> 实际编码、分辨率、帧率/时间戳、音视频轨道;帧级GOP分析需取得帧类型与时间戳,普通probe摘要不足。屏幕录制重编码不能证明设备原始GOP
MediaInfo 正式 media-info --input <本地媒体>,通过 libraries.mediainfo 配置本机DLL;在有时限子进程读取固定字段;原GUI另走桌面能力 已验证MediaInfoLib21.09本地样本解析,GUI交互未由此验证;9.54/9.132可用ffprobe替换可比参数读取。Duration为毫秒;需原始流/导出文件,名义帧率不等于每段实测帧率
SecureCRT / 串口 原PC GUI;可选pySerial;已封装 serial --port COMx --baud <值> --duration <秒> --output <日志>实际调用PowerShell串口脚本 真实串口与正确电气连接/参数;封装仅被动读取,不发送登录命令。SSH仅在设备本来支持且不改变被测条件时使用;关闭串口验收不得为了日志而打开
路由器配置 原管理网站browser,或已核实的厂商CLI/API;适用OpenWrt可使用SSH上的UCI/ubus 网络模式、DHCP/DNS/MTU、双栈等需配置回读及真实连接验证;先保存恢复配置。OpenWrt不冒充指定路由器/光猫/移动闪联能力
OpenCV / OCR / Python统计 CLI脚本或库API,读取固定样本/标注真值 OSD、画面特征、事件时间匹配与成功率;必须定义阈值、时窗、重复告警处理和真值,不能让另一模型判定充当唯一真值
外部音视频采集、光照/声音/距离测量与实体工装 真实采集装置和已标定工具;其输出由CLI脚本解析或人工复核 带屏设备真实显示、声音/对讲、距离/角度/照度、准确率与物理云台必须保留实测。模拟器或屏幕播放不自动等价于规定的实物场景

配置工具9行的独立断言

来源与原编号 必需判定 不能代替它的证据
9系统设置!22 / 9.15-5 已知不兼容包升级失败,并按原预期证实回滚到原版本,或正常包恢复成功且上线 单纯版本未变化、命令报错或事后能查询设备
9系统设置!95 / 9.131 覆盖所支持编码、分辨率、码率类型、帧率、I帧、智能编码、AOV;配置成功且实际流符合 只点击保存或只验证一个参数
9系统设置!96 / 9.132 适用设备默认H265,H264/H265双向切换后实际流codec正确 界面显示编码或一次probe成功
9系统设置!98 / 9.134 默认VBR、CBR和能力上下界;区分VBR峰值与CBR口径,并关联9.101—9.106 仅比较文件平均码率
9系统设置!99 / 9.135 支持档位下的实际帧率、H264/H265直播/云/卡回放和对讲质量 名义fps、APP设置值或单片段无卡顿
12性能!8 / 12.18 1000次升级失败率严格小于1/1000,完整记录每次尝试、耗时、失败及上线状态 少量冒烟或一次最终版本一致;不能因脚本异常丢弃失败尝试
12性能!9 / 12.19 全部规定功能开启形成较高内存负载,1000次升级无变砖,负载与设备状态持续留证 无负载循环、12.18结果、最终一次在线
13安全!11 / 13.10 受控篡改包被设备校验拒绝;记录篡改类型、摘要、拒绝原因及合法包对照 网络失败、工具缺依赖、超时或版本未变化;单个失败不能推导全部签名/大小/版本校验都满足
13安全!12 / 13.11 规定的厂商通用固件因未授权被拒绝,结合匹配型号授权固件对照 不兼容型号包失败、网络中断或仅版本保持原值

正向升级的 verify-version 只验证任务指定的固件字段,不能给以上9行整体判通过;V1 原生字段与 inner/outer 不自动映射。负向升级应按拒绝原因和恢复断言独立判定。17稳定性!11另有设备数、时序与循环矩阵,不能与12.18/12.19合并结果。

9.15-3单独按现网OVD-SDK版本选择包:1.42.0及以上使用SDK规定的 firmware_encrypt 包;1.41.0及以下不使用该工具生成包;首次对接1.42.0及以上也需规定陪测包。执行前核实具体SDK说明与双分区条件。

必须保留的安全与测量语义

  • 13安全!10(13.9)的预期是无本地web开放。确认存在本地Web即不符合;有认证不改变此判定。只扫80/443、某地址不可达或过滤状态不足以证明无Web。
  • 13安全!5(13.3)要求固件在设备中加密保存。需要真实flash/分区存储证据与厂商实现材料;OTA包扫描只属辅助。缺专用证据记inconclusive,缺采集权限或镜像记blocked。
  • 13.18需设备日志/配置内容证据;13.15、13.17需受控授权/认证行为证据,不能由pcap单独判通过。
  • 9.136需原始编码流中I帧类型和相邻时间戳;VFR/AOV不能只用帧数除名义帧率;关键帧不直接等同全部I帧。
  • 11管理版!13执行端(PC还是APP)、!34主/子码流预期矛盾,以及20 DM测试!6的24/48小时冲突未澄清前不固化矛盾断言。
  • 保留重复编号与合并续行;9系统设置!83的 9.10500000000001 按源值保留,不自行改写源文件。

映射文件约定

case_id 使用稳定工作表序号与Excel行号;source.sheet、source.row、source.original_id保留来源。required_tools_original是前次分析中的依赖名称,route_ids是本参考文档的路由,不保证当前全部可执行。suggested_method与remaining_dependencies保持分析依据;assertion_profile标记不能套通用通过规则的条目。执行前仍需读取原行完整步骤、预期、设备适用性和量测阈值。

所有工具输出按来源独立归档;外部CLI/GUI/browser证据关联到同一个case_id,但不得伪造为Artemis原生截图、日志或报告内容。