Files
artemis-case-prep/references/workbook-contract.md
T

11 KiB

七列任务表与判定边界

本参考记录用户所附模板与原始用例的非显然结构,供处理这类工作簿时使用。新输入须重新核对表头和适用性,不要把示例页当作通用列号映射。

模板

assets/artemis-tasks.xlsx 在原有六列后增加 任务配置(JSON),并更新了“填写说明”页。任务!A1:G1 是本次约定的输出结构,依次为:

列 内容
用例编号 只填原表显示的编号,不附工作表名、行号等来源后缀;重复编号保持原样。处理时用来源工作表和行号区分记录。
检测项目 对应原文项目,保留其语义。
测试子项 对应原文子项;没有独立子项时不杜撰。
测试用例 保留原用例目的与关键动作,必要时压缩冗余但不改变判据。
前置约束提取 用户确认的模拟器名称或真机环境、测试 App 名称和版本、被测设备名称,以及原文要求的账号/网络/状态等前置;一致性用例还需比较字段及独立预期值/来源。
Artemis提示词 以 【原表显示的用例编号】 + 原“测试用例”文本开头,再接完整、自包含的执行请求,见下方。
任务配置(JSON) 可留空;逐项覆盖时填写合法 JSON 对象,只使用当前导入器支持的字段,不放密钥。

当前查看的 ARTEMIS task_import.py 使用同一七列表头。只有 Artemis提示词 列作为发送给 AI 的任务正文;前置约束提取 与其他描述列是元数据,不自动拼接。任务配置(JSON) 可留空,空字段继承批次或全局配置;确需覆盖时,当前允许 profile、model、reasoning_effort、device_serial、verification_level、explorer_mode、locked_app_package、record_video、analyze_video、request_timeout_seconds、max_retries、retry_interval_seconds、timeout_seconds。具体取值及限制以执行时导入器为准;未知字段、密钥和非对象 JSON 会被拒绝。模拟器名称或被测设备名称不是 Android device_serial,没有已确认的序列号就留空该字段。

不要把新增一列当作导入成功证明。执行前用当时的 mobile_task_file(action="preview") 检查文件和逐行错误;本 skill 只准备文档,不启动批次。

原始用例

所附“家庭安防多形态终端软件测试用例(移动看家2.0)”有 33 个可见页,不是一个统一表:典型页用 A:G 记录编号、项目、子项、用例、预置条件、步骤、预期;8告警事件 表头在第 2 行;13安全 的 D:H 才是名称、摘要、前置、步骤、结果;16 云化AI专项测试-基础包 用 E:I 记录子项到结果并有重复编号列。页标题还限定白盒、无卡槽、带屏等范围。右侧“新设备/固件变更”之类提测情形不是设备支持声明。1设备绑定 的“是否适用”用例行尚为空;设备功能集也未完成真实设备支持信息。因此当前原始文件不满足正式全量转换前置条件。

识别时从标题、表头和有实际步骤/期望的行建立用例记录;保留原始 sheet + row + 编号 键。合并单元格或续行可承接同一用例,但不要把每个格式行计成独立用例。对无法对应到一条用例的条目报告歧义,不悄悄丢弃。将适用性缺失的行集中列出,先请用户完成原始文档,再生成正式输出。

提示词与决策

编写任何提示词之前,先取得用户提供或明确确认的模拟器名称(使用真机时由用户明确说明)、测试 App 名称与版本、被测设备名称。逐条核对原始用例的前置、步骤和预期;缺少关键事实时列出来源页、行号和具体待补项,请用户补齐后再写该条提示词。缺少独立比较参照的一致性用例同样先补齐,不用占位符或猜测代替。

同一轮测试开始前,在目标设备上核验一次实际安装的 App 版本并记录结果。各条用例沿用该结果,提示词不写逐条查询版本的动作;若安装版本变化,再重新核验。

对每条“是”,首字符起按 【原表显示的用例编号】 + 原“测试用例”文本(仅去首尾多余空白)拼接。保留原文已有的 【】,不要再给整段用例标题套一层方括号;编号列和提示词前缀均不附来源工作表/行号,也不要写字面 +。例如来源为 1设备绑定!3 的用例,编号列填 1.1,提示词前缀是 【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程。这只是格式示例,该行还需人工复位,不能因此标成自动化“是”。若 Excel 数值编号的显示格式与底层数值不同(如 1.10),采用原表显示的编号。

前缀之后另起完整说明,至少明确:用户确认的模拟器名称或真机环境、测试 App 名称与版本、被测设备名称;沿用测试开始前统一核验过的安装版本,不要求当前用例再次核对;在目标 Android 环境与应用的实际当前状态开始;需要建立的前置条件;依据原文进行的操作;等待可观察的界面状态而不是依赖模型思考时间;原文的预期结果和可观察的判定依据。必要的 SN、秘钥、型号可直接写入对应任务,但不能给无关用例灌入这些值。不要把缺失的原文判据补成看似确定的断言。关键操作前后截图、录屏保留、证据路径及“测试佐证”目录归档、阻塞/未验证结论属于 Codex 的执行与报告要求,不写入“Artemis提示词”。

每条用例完成操作与结果观察后,提示 ARTEMIS 返回目标 App 内的设备首页,重新观察并确认首页已显示;即使用例失败或未验证,也尝试完成这一收尾。此处不是 Android 系统桌面,不预设未经核实的导航入口。若用例使设备首页不可达或返回失败,说明当前页面和原因;Codex 在运行下一条用例前确认设备首页已经恢复,未恢复则先处理该状态。

直播画面中的分辨率切换、全屏、声音开启/关闭等控件可能在点击画面后才显示,也可能藏在随之出现的二级菜单。仅当用例操作确实位于直播页且初次观察未找到目标元素时,提示 ARTEMIS 先截取/查看当前页面,轻点不覆盖明显按钮的直播画面区域一次,再观察新的控件或菜单并尝试定位目标。菜单若短暂显示,应在其可见时完成后续操作;若仍不存在,记录观察和截图,报告未找到,不反复盲点或编造菜单位置。声音开关可核对界面呈现的开/关状态、图标或可观察反馈;若预期要求确认实际声音质量或是否听得到,不能以图标变化冒充听音验证。此提示不是对当前 App 实际界面的预先验证,不能套用于设置页等其他场景。

移动爱家 App 点击“设置”后,设置页可能先显示空白、占位或尚未刷新的内容。提示词应要求等待并重新观察,以真实设置内容出现、目标区域可辨认为继续操作的条件;在此之前不点击疑似目标控件,也不把未出现的功能判为缺失。若刷新后仍不能确认页面内容,记录页面状态与证据并报告未能定位,不以固定秒数的等待代替确认。

App 设置页往往较长,目标功能可能在首屏下方。整理设置页用例时,先确认页面已刷新出实际内容;如已加载的首屏未见目标,提示 ARTEMIS 在设置列表中向上滑动较长距离(让下方内容出现),每次滑动后重新查看页面并查找目标;若仍未见,可根据页面变化继续滑动,直到可确认已到列表底部,再记录未找到。不要在未查看新页面时连续盲滑,也不要把用户的“多滑一点”写成未验证的固定像素、次数或坐标。

卡回看和云回看的日期/时间轴上,有颜色的区域通常表示有数据,空白区域通常表示无数据。整理有录像片段的回放用例提示词时,先识别当前选中的回看类型及其有颜色区域,再在已经过去的时间中选取该区域并尝试回放,以实际播放/页面结果验证;不要假设卡与云的有数据区相同,也不要仅凭颜色判定回放成功。若用例本身要检验无数据区域,则按原文选择空白的过去时间并核对无数据反馈,不能拿它作为有录像回放失败的证据。选取回放片段前核对当前设备/App 时间和所选时间的时区及先后,不要求拖到未来时间;不能把未来片段不存在判成回放失败。若原用例专门检验时间轴上界,则观察是否无法选取或播放未来时间,记录界面证据,不假定具体控件反馈。颜色含义是用户提供的一般操作线索,具体 App 界面仍须在执行时观察确认。

仅移动爱家 App:卡回放目标入口未见时,可先点击“云回看”,重新观察是否出现云回看/卡回放切换,再选择卡回放。其他 App 不沿用这条入口提示;切换未出现时记录当前页面并报告未找到,不编造固定按钮位置。此路径是用户提供的操作线索,真正编写可执行测试代码前仍须用 ARTEMIS 在目标 App 验证。

凡要求信息一致、匹配或同步,编写提示词前核对具体比较字段、独立的预期值或可信来源,以及对应设备、账号、App 版本等范围。比如原用例要求“设备型号和厂商提供的一致”,须先取得厂商提供的目标型号,再将 App 中读到的型号与它比较;不能把 App 显示值同时当成预期和实际。缺少参照信息时列明待补项,等待用户补齐后再编写该条提示词。

例:原文若要求“进入系统设置,修改一个可见开关并确认状态”,提示词应说明识别目标开关、记录初始状态、执行切换、等界面显示目标状态并记录证据;若原文还要求回退,则依原文回退。示例只说明写法,不证明附件中的某条用例具有这些步骤。

排除边界:PC 管理端、外接 console、实物遮挡/断电、需要人工听音/看画质、无法自主建立的网络或硬件状态,不标“是”。长时或重复的 Android 操作不是单凭次数就排除,但需有可测的时间/次数、可恢复前置状态和明确结果;缺任一关键条件则标“否”。ARTEMIS Pro 可观察 ADB/日志,不代表能代替外部硬件、PC 或人的感官。

当前查看的 task_import.py 要求 任务 页首行严格为上述七列,并禁止公式、宏和外部链接;填写说明 页不作为任务导入。实际部署的 ARTEMIS 版本可能不同,后续执行前核实服务的真实导入契约与逐行预览结果。