3. 自动化测试序列设计基础

在 Dewesoft 的自动化测试体系中,测试序列(Test Sequence)是连接“测试计划”与“仪器实际动作”的核心执行单元。它并不是简单的步骤列表,而是一个带有状态、转移条件和执行动作的状态机模型。理解这一点,是后续用脚本编写可靠测试流程的前提。

一、测试序列的本质:状态机而非步骤清单

一个 Dewesoft 测试序列在运行时始终处于某个确定状态。常见状态包括:Idle(空闲)、Setup(配置)、Acquiring(采集中)、Processing(处理)、Pass(通过)、Fail(失败)、Aborted(中止)。状态之间通过转移条件连接,例如“采集时长达到 10 s”或“通道 1 峰值超过 5 V”。每个状态内部可以绑定进入动作、执行动作和退出动作,这正是脚本可以介入的地方。

与普通流程图不同,状态机允许同一状态被多次进入,也允许从多个状态汇聚到同一个终止状态。这种模型天然适合表达“循环采集直到满足条件”“失败后重试”“多分支判定”等测试逻辑。

Dewesoft 测试序列状态机模型 Idle 空闲 Setup 配置 Acquiring 采集 Processing 处理 Pass 通过 Fail 失败 Aborted 中止 启动 配置完成 采集结束 判定通过 判定失败 超时/异常 循环采集

二、三种基本结构:顺序、分支、循环

顺序结构是最简单的形式:Setup → Acquiring → Processing → 判定。每一步必须等待上一步完成,适合固定流程的产线测试。

分支结构根据条件选择不同路径。例如在 Processing 后判断“峰值是否在 4.8~5.2 V 之间”,若在范围内进入 Pass,否则进入 Fail 并触发重测分支。Dewesoft 中常用 if/else 或 switch 在脚本中实现。

循环结构用于重复采集或重试。典型场景是“连续采集 5 次,每次 2 s,取平均值”。循环必须设置最大迭代次数和退出条件,否则可能陷入死循环。在状态机中,循环表现为从 Acquiring 回到 Setup 或从 Processing 回到 Acquiring 的转移边。

三、用脚本实现一个简单测试流程

Dewesoft 支持在 Test Sequence 中嵌入脚本(常用 Python 或 Dewesoft 内置脚本语言)。下面给出一个“采集 3 次、每次 1 s、判断电压是否在 4.8~5.2 V”的示例逻辑。参数为教学示例,实际使用时需根据硬件量程和传感器灵敏度调整。

# 教学示例:Dewesoft 测试序列脚本片段
max_retry = 3
sample_time = 1.0          # 每次采集 1 秒
v_min, v_max = 4.8, 5.2    # 合格电压范围 (V)

results = []
for i in range(max_retry):
    start_acquisition(duration=sample_time)
    v = read_channel("AI1", statistic="mean")
    results.append(v)
    if v_min <= v <= v_max:
        set_state("Pass")
        break
else:
    set_state("Fail")

log("采集结果:", results)

这段脚本的关键点:start_acquisition 触发采集并阻塞等待;read_channel 读取指定通道的统计值;set_state 驱动状态机转移。若三次都未通过,for...else 的 else 分支执行,进入 Fail 状态。

四、设计时容易忽略的三个细节

  • 状态超时保护:每个状态应设置最大停留时间。例如 Acquiring 超过 5 s 未完成,自动转移到 Aborted,避免测试卡死。
  • 数据落盘时机:Processing 状态中应明确何时保存 .dxd 或 .dat 文件。建议在判定通过后立即保存,失败时保存原始数据用于回溯。
  • 变量作用域:循环中累加的变量应在循环外初始化,否则每次迭代会被重置。Dewesoft 脚本中局部变量与序列全局变量的区分需要特别注意。
设计测试序列时,先画出状态转移图,再写脚本。状态图能暴露“哪些状态没有出口”“哪些条件永远为真”等逻辑漏洞,比直接写代码更高效。

五、从状态机到可执行序列的检查清单

检查项示例要求判断依据
初始状态上电后进入 Idle无自动采集动作
转移条件Setup 完成后才允许 Acquiring配置未完成时采集按钮不可用
循环上限重试不超过 3 次日志中 retry 计数 ≤ 3
异常出口超时或通信失败进入 Aborted状态可被外部复位
结果记录Pass/Fail 均写入报告报告含时间戳、通道值、判定结果

掌握状态机模型和三种基本结构后,就可以把测试需求翻译成 Dewesoft 可执行的序列。下一阶段将在此基础上引入更复杂的并行采集与多设备同步,但核心仍然是“状态 + 转移条件 + 动作”这三要素。