在TESSY进行单元测试时,测试对象除了函数参数和返回值,还可能依赖全局变量、静态全局变量或静态局部变量。此类变量如果初始状态不确定,很容易导致同一测试用例在不同执行顺序下得到不同结果。因此,进行“TESSY怎么设置全局变量初始值,TESSY全局变量初始值没有生效如何检查”时,既要确认测试数据已经正确传入,也要区分测试开始前的初始化与源代码运行后的再次赋值。
一、TESSY怎么设置全局变量初始值
TESSY分析测试对象后,会把与当前函数相关的全局变量加入测试接口。设置初始值前,应先确认目标变量已经被识别,并具有正确的数据方向。
1、确认全局变量已经加入测试接口
如果变量没有出现在测试接口中,后续就无法直接通过测试数据设置它的初始状态。
①打开目标模块,重新执行【分析模块】,让TESSY根据当前源代码更新测试接口。
②选中需要测试的函数,进入【接口分配器】,查看【全局变量】区域。
③找到目标变量,确认它没有被设置成【无关】。
④如果被测函数在执行过程中需要读取该变量,应确认它包含【输入】方向;既读取又修改时,则需要保留相应的输入和输出属性。
如果刚修改过变量类型、声明位置或函数调用关系,建议重新分析模块后再继续编辑测试数据,避免旧接口信息与当前代码不一致。
2、在测试数据中设置初始值
确认接口正确后,可以在具体测试步骤中填写全局变量输入值。
①打开对应测试用例,进入【测试数据编辑器】。
②展开当前测试步骤中的【全局变量】。
③找到需要初始化的变量,在【输入】位置填写测试开始前需要的值。
④多个测试步骤需要不同状态时,应分别填写,不要只设置第一步。
例如被测函数依赖一个模式变量,不同测试场景可以分别设置为:
这样每个测试步骤都会带着对应的初始状态进入测试对象,更适合验证不同分支。
3、一次初始化多个变量
全局变量较多时,可以使用批量初始化,减少逐项填写。
①在【测试数据编辑器】中选中需要处理的变量或节点。
②打开右键菜单,选择【初始化测试数据】。
③在初始化窗口中设置需要填入的默认值或规则。
④确认后返回测试步骤,检查各变量是否已经写入。
对于需要大量重复测试的数据,建议先批量建立基础值,再针对少数关键变量单独修改,这样更容易保持测试用例之间的一致性。
二、TESSY全局变量初始值没有生效如何检查
已经在测试数据中设置了数值,但进入被测函数后仍然出现其他结果时,应先确定初始值到底有没有在调用前写入,再检查源代码是否随后覆盖了它。
1、检查变量方向是否设置正确
如果全局变量只被当作输出结果处理,TESSY可能不会按照预期在测试开始前写入输入值。
①重新进入【接口分配器】。
②找到异常变量,检查当前数据方向。
③被测函数需要读取它时,将其调整为包含【输入】的类型。
④保存接口设置后,重新生成并执行测试。
如果变量只是测试完成后需要检查结果,则可以只保留输出方向;如果测试前就需要指定状态,则必须保证输入方向有效。
2、确认设置的是当前测试步骤
同一个测试用例中存在多个测试步骤时,每一步都可能拥有独立的数据状态。
①打开【测试数据编辑器】,确认当前选中的测试用例和测试步骤。
②查看目标全局变量的值是否填写在真正执行被测函数的步骤中。
③如果每次调用前都需要恢复固定值,应在对应步骤重新填写【输入】数据。
④单独执行异常测试步骤,排除前后步骤之间的状态影响。
这类问题经常出现在多步骤测试中:第一步正确初始化,第二步继续调用函数时却沿用了前一步修改后的状态。
3、检查源代码是否再次赋值
TESSY已经成功写入初始值,但函数进入后又执行初始化代码,也会看起来像“设置没有生效”。
例如:
即使测试前把【g_mode】设置为【1】,进入targetFunction后调用initSystem,变量仍会被改成【2】。
①在被测函数入口处观察变量值,确认TESSY是否已经正确写入。
②继续单步执行,找到变量第一次发生变化的位置。
③如果初始化函数不属于当前测试重点,可以根据测试目标将其设置为【桩函数】。
④如果重新赋值属于被测逻辑的一部分,则不能通过修改TESSY输入强行覆盖,应调整测试预期。
4、检查静态变量是否保留了上一次状态
静态全局变量和静态局部变量在连续测试中可能保留状态,特别容易造成单独执行正常、批量执行异常。
①单独运行发生问题的测试用例。
②再执行完整测试序列,比较两次结果。
③如果只有连续执行时异常,检查上一测试是否修改了该变量。
④需要测试相互独立时,在每个测试步骤开始前重新设置对应初始值。
如果多个测试用例共用同一运行环境,还应注意初始化函数、测试驱动和桩函数是否同时修改了相同变量。
三、TESSY全局变量初始值设置后怎么验证
设置完成后,最好通过简单、明显的测试值确认写入时机,再进行正式测试。
1、使用明显数值定位问题
①暂时将目标变量设置为【123】或其他容易识别的测试值。
②只执行一条测试用例。
③在被测函数入口处检查实际变量值。
④入口值正确但后续变化,说明问题发生在源代码执行阶段;入口值就不正确,则继续检查接口和测试数据。
2、修改接口后重新生成测试环境
①源代码或接口方向发生变化后重新执行【分析模块】。
②检查原有测试数据是否仍与新接口匹配。
③重新生成测试驱动并执行测试。
④对比输入值、实际值和期望值,确认初始化与结果检查已经分开。
总结
TESSY中的全局变量初始值问题,核心在于区分“测试开始前需要提供的状态”和“被测代码执行过程中产生的状态变化”。只要测试接口定义、测试步骤和代码初始化逻辑保持一致,就能较稳定地控制测试前置条件,也更容易保证多条用例之间相互独立。对于静态状态、初始化函数和多步骤测试,还应特别关注前后执行关系,避免把状态残留误判为工具设置失效。如需进一步了解TESSY全局变量初始值设置及初始值未生效问题的排查方法,欢迎联系咨询。