技术领域
[0001] 本
发明属于机载软件测试技术领域,具体涉及一种控制律软件的打桩方法。
背景技术
[0002] 电传
飞行控制系统以飞行控制计算机作为控制核心,通过对系统
传感器感受的飞行员操纵、飞机运动量等各种信息进行控制解算,通过飞机平尾、副翼、方向
舵等操纵面,实现对飞机三轴控制。而作为核心软件,飞行控制律软件实现了飞机的性能和飞行品质等要求,故其设计复杂度高。
[0003] 在进行软件单元测试时,以局部变量传递的桩函数入口参数在模
块运行结束后释放消失,对局部变量计算的正确性无法验证,然而,飞行控制律软件的输出数据是具有连续性的,软件中的“小错误”在有限时间内的连续输出数据中可能并不会被激励,“小错误”可能会成为导致危及飞行生命安全的导火线,且后期还需要大量的人
力、物力和财力进行错误
定位和维护。
发明内容
[0004] 本发明的目的:为了解决上述问题,本发明提出了一种控制律软件的打桩方法,结合
黑盒测试和
白盒测试方法,不需要借助复杂的系统测试环境,在装有测试工具的PC机上,发现桩模块入口传递参数计算错误的测试方法。
[0005] 本发明的技术方案:一种控制律软件的打桩方法,所述打桩方法适用于软件单元测试中,采用的是黑盒和白盒相结合测试方法,具体包括以下步骤:
[0006] 步骤一、分析被测控制律模块的结构并确定需要打桩的桩模块;
[0007] 根据被测控制律模块中运算过程中,确定所需的低层模块,并对所述低层模块进行打桩;
[0008] 步骤二、定义全局变量;
[0009] 所述全局变量为每个桩模块的入口传递参数;
[0010] 步骤三、编写每个桩模块对应的桩程序;
[0011] 确定桩模块和需动态
跟踪的形参变量后,在桩模块中编写桩程序,所述桩程序能够将桩模块的形参赋值给全局变量,所述全局变量在被测试检测过程中分别对桩模块的形参数据进行动态跟踪;
[0012] 步骤四、结合软件测试工具生成驱动模块,调用被测控制律模块,输出测试结果;
[0013] 步骤五、分析测试输出结果是否与预期输出结果是否一致;
[0014] 若两者结果一致,则表明源代码与软件设计一致;
[0015] 若两者结果不一致,则需分析结果的差异性,确定问题所在,进行
软件回归测试,直至问题归零为止。
[0016] 优选地,所述被测控制律模块设置有多个辅助测试模块,所述多个辅助模块分别为:驱动模块和桩模块。
[0017] 优选地,对所述低层模块采用黑盒测试方法对其进行打桩,并设置返回值或者写桩程序。
[0018] 本发明技术方案的有益技术效果:本发明能够能够及时发现桩函数入口参数的计算错误,不需要关注桩模块中内部结构和复杂度,只关注桩模块的返回值对被测模块的影响;不需借助复杂的系统测试环境,在装有测试工具的PC机上即可实现,提高了测试效率和模块的正确性。
附图说明
[0019] 图1为本发明一种控制律软件的打桩方法的一优选
实施例的测试流程示意图;
[0020] 图2为本发明一种控制律软件的打桩方法的一优选实施例的各模块之间的连接示意图;
[0021] 图3为本发明一种控制律软件的打桩方法的一优选实施例的各测试模块之间的连接示意图;
[0022] 图4为本发明一种控制律软件的打桩方法的一优选实施例的被测控制律
框图;
[0023] 图5为本发明一种控制律软件的打桩方法的一优选实施例的动态测试结构分析过程图。
具体实施方式
[0024] 为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
[0025] 图1为本发明一种控制律软件的打桩方法的一优选实施例的测试流程示意图,所示的控制律软件的打桩方法,适用于软件单元测试中,采用的是黑盒和白盒相结合测试方法,具体包括以下步骤:
[0026] 步骤一、分析被测控制律模块的结构并确定需要打桩的桩模块;
[0027] 根据被测控制律模块中运算过程中,确定所需的低层模块,并对所述低层模块进行打桩;
[0028] 本实施例中,每个被测模块在整个软件中并不是孤立的,在对每个模块进行单元测试时,不能完全忽视它们和周围模块的相互联系。为了模拟这一联系,在进行测试之前,需要设置若干辅助测试模块,其包括:驱动模块和桩模块两种,模块之间的连接关系如图2所示。
[0029] 在进行非底层模块测试时,由于被测模块会调用其它模块,而测试分析人员不会关注被调用模块的内在结构及功能,只会考虑该被调用模块的返回值对被测模块的影响,因此采用黑盒测试方法,对被调用模块进行打桩,设置返回值或写桩程序,多个被测模块之间的连接关系如图3所示。
[0030] 步骤二、定义全局变量;
[0031] 全局变量为每个桩模块的入口传递参数,全局变量在被测试检测过程中分别对桩模块的形参数据进行动态跟踪。
[0032] 步骤三、编写每个桩模块对应的桩程序;
[0033] 确定桩模块和需动态跟踪的形参变量后,在桩模块中编写桩程序,所述桩程序能够将桩模块的形参赋值给全局变量。
[0034] 步骤四、设计被测试模块的测试
用例,结合软件测试工具生成驱动模块,调用被测控制律模块,输出测试结果;
[0035] 步骤五、分析测试输出结果是否与预期输出结果是否一致;
[0036] 分析测试输出变量值(包含步骤2中定义的全局变量),与预期输出结果是否一致。如一致,则表明源代码与软件设计一致;如不一致,则需分析结果的差异性,确定问题所在,进行
软件回归测试,直至问题归零为止。动态测试结果分析过程如图5所示。
[0037] 具体实施方式如下:
[0038] 本实施中,分析控制律
软件模块中的结构如图4所示:
[0039] 首先确定需要打桩的桩模块;分析得出该被测模块有4个桩模块,模块输出RC=KRO×(桩模块2×KPFR1+桩模块4×KPFR2),该测试输出仅反映了桩模块2和桩模块4的返回值对被测模块输出的影响,不能反映内部局部变量的计算对形参的影响。例如输出RC未能验证
开关量SWTRX的正确性等等。
[0040] 其次,在被测模块测试过程中需定义3个全局变量XI NT I N、RGDC、DRC2分别对桩模块1、桩模块2和桩模块3的形参数据进行动态跟踪。
[0041] 再者,确定桩模块和需动态跟踪的形参变量后,在桩模块中编写桩程序,所述桩程序能够将桩模块的形参赋值给全局变量。
[0042] 最后,结合软件测试工具生成驱动模块,调用被测控制律模块,输出测试结果,判断分析测试输出结果是否与预期输出结果是否一致;
[0043] 分析测试输出结果中的变量值,其包含定义的全局变量,判断输出的全局变量与预期输出结果是否一致。如一致,则表明源代码与软件设计一致;如不一致,则需分析结果的差异性,确定问题所在,进行软件回归测试,直至问题归零为止。
[0044] 本发明一种控制律软件的打桩法有如下特点:
[0045] 1)打桩技术不需要关注桩模块中内部结构和复杂度,只关注桩模块的返回值对被测模块的影响;
[0046] 2)打桩技术能发现桩模块入口的传递参数的计算错误;
[0047] 3)打桩技术在装有测试工具的PC机上即可实现,不需借助复杂的系统测试环境;
[0048] 4)打桩技术提高了测试效率和模块的正确性;
[0049] 5)在早期的测试中使用该技术能尽早的发现软件中的错误,减少了后期维护中的人力、物力和财力。
[0050] 最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行
修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。