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 失败时,执行引擎会依次经过以下节点:
- Step 自身判定失败,记录
Result为 Failed。 - 触发
TestFail回调,执行自定义失败处理逻辑。 - 根据 Process Model 配置,决定是否继续执行后续 Step。
- 如果配置为“失败即停止”,则跳转到
Cleanup阶段。 - 在
PostUUT回调中汇总结果,生成报告。 - 最终 UUT 判定为 Fail,进入重测或报废流程。
这条路径中,任何一个环节的配置错误都可能导致异常被“吞掉”或“误判”。例如,如果 TestFail 回调中错误地返回了 True,后续 Step 会继续执行,最终报告可能只记录最后一个 Step 的结果,导致真正的失败原因被掩盖。
诊断异常时的关键检查点
当量产测试出现异常时,建议按以下顺序检查执行模型中的关键节点:
- Step 级别:确认失败 Step 的
Run Mode、Preconditions和Loop配置是否正确,测量值是否确实超出上下限。 - Sequence 级别:检查失败 Step 所在的 Sequence 是否被正确调用,是否存在嵌套调用导致的异常传递。
- Process Model 级别:确认当前使用的 Process Model 类型,以及失败后的流程控制配置(继续/停止/重测)。
- 回调级别:检查
TestFail、PostUUT等回调的返回值逻辑,确认是否因回调逻辑错误导致异常被掩盖。 - 报告级别:核对最终报告中的 Step 结果与预期是否一致,确认失败原因是否被正确记录。