2. TestStand执行模型与异常信号

在量产测试环境中,TestStand 并不是简单地“按顺序跑完每个测试项”。它是一套分层执行引擎:Sequence 负责组织测试逻辑,Step 是执行的最小单元,Process Model 提供标准化的量产流程骨架,回调机制则允许在流程的关键节点插入自定义行为。理解这四者的关系,是诊断异常信号传播路径的前提。

Sequence 与 Step:执行的基本单元

Sequence 是 TestStand 中的逻辑容器,通常对应一个测试模块或一个测试阶段。每个 Sequence 包含若干 Step,Step 是实际执行动作的最小单位。Step 的类型决定了它的行为:Numeric Limit Test 执行测量并判断上下限,Pass/Fail Test 只判断通过或失败,Sequence Call 调用另一个 Sequence,Message Popup 用于人工确认,Statement 执行表达式或赋值。

每个 Step 都有明确的执行属性:Run Mode 决定是否跳过(Skip)、正常执行(Normal)或仅强制通过(Force Pass),Preconditions 决定该 Step 是否满足执行条件,Loop 配置决定是否重复执行。这些属性直接影响异常是否会被触发,以及异常发生后是否继续向下传播。

以一个典型的电源测试为例:

Sequence: PowerSupply_Test
  Step 1: Call Setup_DUT          (Sequence Call)
  Step 2: Set_Input_Voltage       (Statement: 12.0 V)
  Step 3: Measure_Vout            (Numeric Limit Test: 11.4 ~ 12.6 V)
  Step 4: Measure_Iout            (Numeric Limit Test: 0.8 ~ 1.2 A)
  Step 5: Call Cleanup_DUT        (Sequence Call)

如果 Step 3 的测量值超出上下限,TestStand 会将该 Step 标记为 Failed,并记录测量值、上下限和判定结果。此时异常信号并不会立刻终止整个测试,而是进入 Process Model 定义的后续处理路径。

Process Model:量产流程的骨架

Process Model 是 TestStand 为量产测试提供的标准执行框架。它定义了从测试开始到结束的完整生命周期,包括 Test UUT、Pre-UUT、Post-UUT、Report 等阶段。常见的 Process Model 有 Sequential Model、Batch Model 和 Parallel Model,分别对应单工位串行、多工位批量和多工位并行场景。

Process Model 的核心价值在于:它把“测试逻辑”和“流程控制”分离。测试工程师只需要关注 Sequence 中的测试步骤,而流程控制、报告生成、异常处理、重测逻辑由 Process Model 统一管理。当某个 Step 失败时,Process Model 会根据配置决定是继续执行后续 Step、跳转到 Cleanup、还是直接进入报告阶段。

回调机制:在关键节点插入自定义行为

TestStand 的回调机制(Callback)允许在 Process Model 的特定执行点插入自定义代码。常见的回调包括:

  • PreUUT:在每个 UUT 测试开始前执行,常用于扫描序列号、初始化仪器。
  • PostUUT:在每个 UUT 测试结束后执行,常用于记录结果、释放资源。
  • TestFail:当某个 Step 失败时触发,可用于记录失败详情或触发重测。
  • ProcessCleanup:在流程结束时执行,用于关闭仪器、保存日志。

回调的执行顺序和返回值会影响异常传播路径。例如,如果 TestFail 回调返回 True,TestStand 可能继续执行后续 Step;如果返回 False,则可能直接跳转到 Cleanup。因此,在诊断异常时,必须同时检查 Step 的失败状态和回调的返回值。

异常传播路径:从 Step 失败到最终结果

异常在 TestStand 中的传播遵循明确的路径。以 Sequential Model 为例,当某个 Step 失败时,执行引擎会依次经过以下节点:

  1. Step 自身判定失败,记录 Result 为 Failed。
  2. 触发 TestFail 回调,执行自定义失败处理逻辑。
  3. 根据 Process Model 配置,决定是否继续执行后续 Step。
  4. 如果配置为“失败即停止”,则跳转到 Cleanup 阶段。
  5. 在 PostUUT 回调中汇总结果,生成报告。
  6. 最终 UUT 判定为 Fail,进入重测或报废流程。

这条路径中,任何一个环节的配置错误都可能导致异常被“吞掉”或“误判”。例如,如果 TestFail 回调中错误地返回了 True,后续 Step 会继续执行,最终报告可能只记录最后一个 Step 的结果,导致真正的失败原因被掩盖。

TestStand 执行模型与异常传播路径 Process Model(Sequential Model) PreUUT 回调 扫描序列号 / 初始化 Test UUT(主 Sequence) Setup → 测试步骤 → Cleanup Step 1 … Step N PostUUT 回调 汇总结果 / 生成报告 Step 执行细节(以 Numeric Limit Test 为例) Step 1: Setup Pass Step 2: Set V Pass Step 3: Measure Vout Failed(超上限) TestFail 回调触发 记录失败详情 / 判断是否继续 回调返回值? True / False 继续执行后续 Step 可能掩盖真实失败 跳转 Cleanup 终止测试 / 进入报告 Cleanup 与报告阶段 ProcessCleanup 回调 关闭仪器 / 释放资源 生成测试报告 记录 Step 结果 / 判定 UUT 判定:Fail → 重测/报废 依据最终汇总结果 正常路径 异常路径 回调/判断节点

诊断异常时的关键检查点

当量产测试出现异常时,建议按以下顺序检查执行模型中的关键节点:

  • Step 级别:确认失败 Step 的 Run Mode、Preconditions 和 Loop 配置是否正确,测量值是否确实超出上下限。
  • Sequence 级别:检查失败 Step 所在的 Sequence 是否被正确调用,是否存在嵌套调用导致的异常传递。
  • Process Model 级别:确认当前使用的 Process Model 类型,以及失败后的流程控制配置(继续/停止/重测)。
  • 回调级别:检查 TestFail、PostUUT 等回调的返回值逻辑,确认是否因回调逻辑错误导致异常被掩盖。
  • 报告级别:核对最终报告中的 Step 结果与预期是否一致,确认失败原因是否被正确记录。