新的网络技术和通讯设备的快速发展,使得Internet正在全球范围内迅速扩展协议是整个网络的灵魂,协议实现的正确及效率直接关系着网络的稳定和效率协议测试就是用来测试协议实现是否符合协议文本规范的,因此对网络产品进行协议测试,对发现协议实现中的错误,保证网络及Internet的正常运行有着非常重要的作用。1
现在协议测试的研究主要集中在主动测试领域,主动测试以测试例为中心,由测试程序完全控制整个测试过程,测试程序负责生成测试序列,并将其发给待测协议实现( Implementation Under Test, IUT)作为对IU T的激励,然后测试程序继续监测IUT,看其能否做出正确的响应主动测试是一种非常有效的测试手段,但由于测试程序要与IUT直接通信,因此做主动测试时IUT一般要与网络分离,而且目前协议越来越复杂,用主动测试的话,在测试程序编写和测试序列构造等方面面临着很大的困难被动测试采用了另一种思想,它不向IUT发送任何报文,而只是’被动’地监听IU T和其他网络设备通信时的输入输出行为,通过分析监听到的数据,来推断协议实现中是否存在错误被动测试比较简单,不需要构造测试集,支持在线测试,且可以长时间进行测试而无需人工干预}‘}尽管被动测试具有上述优点,但由于它不控制测试过程,所以不能保证测试的完备性。
主动测试和被动测试被用来测试协议时各有利弊,如果能将二者结合起来,使其优势互补,应该可以取得更好的测试效果。
主动测试介绍主动测试是通过EOL诊断工具等方式对电控系统进行主动控制,并对在特定工作条件下的运行结果进行分析,得出最终的测试结论,从而完成相应的诊断功能。下面以结合实际发动机电控系统的设计开发为例,从以下的主动测试功能进行介绍和分析。2
排气制动功能的主动测试排气制动功能是商用车的标准配置。一般情况下,排气制动功能的使用条件包括必须在挂档(非空挡)状态、发动机转速在标定转速之上、油门踏板必须完全松开等所有条件都满足的情况下,该功能才会有效,从而ECU输出控制排气制动继电器动作,使排气制动蝶阀关闭。在实际的维修过程中,一般在测试排气制动阀输出线路或蝶阀状态时,由于该功能上述使用条件的限制,无法在原地进行检测,增加了维修成本和难度。故开发该排气制动输出继电器控制的主动测试功能,以便在原地静止情况下进行维修检查。排气制动功能主动测试流程简图见图1。
通过原地停机测试相应电气线路是否正常正常开闭等问题可以确认排气制动输出的并可确认排气蝶阀是否能。
起动功能的主动测试发动机不能正常起动是日常遇到比较突出的问题之一,同时也是不易判断处理的车辆故障之一。引起发动机不能起动的原因较多,比如电气方面的故障,包括起动控制线路损坏、起动继电器故障、曲轴和凸轮轴转速信号故障、蓄电池电压过低;燃油系统方面的故障,包括低压油路供油不畅等。由于存在有多种起动失败的原因,这就要求技术人员和售后维修人员有一定的工作经验。才能进行综合的正确判断,避免造成误判。
为能够通过软件实现起动故障的判别,需要开发发动机ECU和EOL工具对于起动故障的诊断功能。该诊断原理是ECU通过起动过程中的各传感器信号状态,包括水温、轨压、提前角、曲轴和凸轮轴转速信号、起动输入开关、起动继电器输出、蓄电池电压等信号,在起动失败后综合判断并返回系统故障原因的状态字。起动功能主动测试流程简图见图2。
通过这种主动测试功能,使一般技术人员和售后维修人员面对起动这种问题的综合处理能力得到提高,可以通过该主动测试反馈的起动失败原因对症下药,快速判别和处理起动故障。
压缩功能的主动测试由于气缸机械方面的故障,如活塞环磨损、气缸漏气等,会造成发动机怠速抖动或动力不足等故障,而这类故障使用常规诊断方法是不易实现的。压缩测试功能正是通过比较各缸相对压缩性能(非绝对压缩压力)并用来评估发动机各缸气密性问题的有效方法。
具体的主动测试方法是:在确保发动机曲轴信号正常的前提下,禁止各缸喷油,然后由起动机带动发动机转动,ECU软件自动测量每缸在上止点之前和之后某一角度区间运行所需时间,通过比较各缸相同角度区间的转速偏差来间接评估各缸的机械特性。压缩功能主动测试流程简图见图3。
压缩功能的原理是在禁止喷油而只用起动机拖动发动机的情况下,相当于起动机拖动和压缩排气共同推动活塞运动;如果漏气,相应的活塞运动速度会有差异。即比较各缸活塞在上止点之前和之后的运行速度,如存在漏气,上止点之前活塞运动速度较快;上止点之后活塞运动速度较慢。在实际对目前量产机型的测试中,以上止点之后作为测试区间,其试验效果更为明显。
通过完成EOL软件和ECU软件的相应功能开发,实现上述禁止喷油的起动工况来进行压缩测试,在对多例相同机型的试验验证后,得出正常机器的参考转速值,这样EOL软件在完成压缩测试后将每缸活塞的转速偏差结果与参考值进行比较,并得出所测试发动机的测试结论和参考意见,从而为技术人员和售后维修人员提供比较客观的数据。
压缩功能主动测试的结果是确定曲轴角度区间的各缸转动时间,通过简单的换算可以得出各缸的相应转速,从而提供给测试人员比较直观的转速数据对比结果。
高压测试功能的主动测试高压测试是通过检测高压共轨系统的建压速率和停机后油路压力下降时间,来辅助判断共轨系统的低压油路是否存在堵塞、高压油路是否存在泄漏,并检测高压建立效率。
高压主动测试功能的原理是:设定在几个不同转速下升高和降低轨压值,测定轨压上升和下降阶段所需时间;测试最后阶段在稳定工况下自动关闭发动机,检测高压系统的泄漏情况。将测试的轨压上升和下降时间与正常系统相应参考值进行比较,并得出参考结论。这样,技术人员和售后维修人员通过该主动测试方法来快速检测或排查喷油系统故障,例如低压油路的堵塞、喷油器故障引起的燃油泄漏等实际问题。如果在关闭发动机工况下的系统降压时间过快,就可以从侧面反映高压系统可能出现泄漏情况。
关于主动测试中由于测试条件不满足而退出测试,主要是为了保护发动机和安全的考虑。例如,在该高压测试过程中,如果出现系统故障、水温过低、车速大于0、不在空档等条件下,就会立即退出测试。在实际的软件设计中,必须加入这种安全考虑,以保证主动测试功能的合理性。
高压测试功能的主动测试流程简图见图4。
加速转速测试加速转速测试是通过断缸操作来检查喷油器特性的有效诊断方法。一般情况下,如果某缸喷油器喷油量出现偏差故障,会造成动力不足问题。加速转速测试主动测试流程简图见图5。
加速转速测试是在设定稳定工况下进行,即车辆发动机采用设定的轨压、喷油量、喷油次数和提前角等固定工况条件下工作,在工况稳定后开始进行该测试。测试通过按设定顺序逐次断单缸喷油,并记录关闭单缸喷油下的最高发动机转速,最后将各缸断油下的最高转速进行对比。在正常情况下各转速应基本一致。如果出现转速差异较大的一缸,则该缸喷油器就存在喷油故障的可能,即该缸喷油器的油量偏差过大。
断缸测试断缸测试是针对暂停某缸喷油的方式来进行发动机故障的判别,该方法是提供给有一定经验的技术人员使用。当某缸喷油器故障而出现雾化不良等现象时,在该断缸测试中通过发动机声音、排烟、转速等变化,可以间接判断和确定出现故障的那一缸喷油器,从而为快速诊断和维修带来方便。
通过该主动测试方法可检测各缸喷油器的喷油量偏差,该方法可有效检测仅单个喷油器有缺陷的系统,而对存在多个有喷油偏差喷油器的系统诊断能力有限。该方法检测部分负荷下的喷油器失效故障,因为无需拆解系统部件,从而避免不必要的零部件更换。
断缸测试功能的主动测试流程简图见图6。
总结主动测试是一种智能测试方法,即针对不同的故障现象,结合柴油机电控系统的自诊断功能,通过外部诊断工具对柴油机进行相应的智能测试,并将测试结果按照专家系统来分析,从而指导人员进行故障判断和排除。主动测试与常规诊断的主要区别是通过外部诊断工具对柴油机电控系统进行主动控制干预,在特定干预控制下的发动机测试数据进行分析并给出客观的结果。目前该功能已在柴油机高压共轨电控系统中应用。
被动测试与主动测试互补的方法对于上面的被动测试的缺点如何解决呢?这里从实践中总结了被动测试与主动测试优势互补的方法,提出了新方法:正推法及逆推法。其使被动测试的目标受到主动测试的控制,限制测试的“随意”。3
正推法正推法步骤
(1)按照主动测试的方法制定测试目标;
(2)根据测试目标,设计主动测试用例,但其中设计的测试输入数据不需要具体数据,只设计出输入数据的“要求条件范围”;
(3)从有效历史测试数据库中分析抽取符合“要求条件范围”的数据,得到测试用例的输入数据;
(4)从对应的数据中获取测试用例的期望输出数据或测试通过标准。
这样就完成了测试用例的设计。然后按照测试用例模拟运行被测软件,比对模拟运行的结果与有效测试历史数据库中真实数据之间的误差。
正推法应用实际案例
比如在一个催化裂化仿真软件的测试中,我们在测试前期的测试计划中选取了其中一个测试目标:正常工况下再生滑阀开度和待生滑阀开度计算的精度。
经过数据分离处理,把与测试目标无关的烟气中氧含量、烟气中CO含量滤掉。
把其中相关的数据(主风流量、再生温度、新鲜原料油流率、回炼油浆流率、反应温度(自动控制)、反应催化剂藏量(自动控制)、再生器压力(自动控制)、反应器压力(自动控制))作为测试输入数据。把对应的再生滑阀开度、待生滑阀开度作为期望输出。
这样,得到测试用例的输入数据及期望输出数据。
总之,先制定测试目标,再从有效历史测试数据库搜索相关符合要求条件的数据,经过分析处理之后,得到验证测试目标的测试用例的输入数据及期望输出数据。
逆推法逆推法步骤
与上面正推法对应,其大致步骤为:
(1)依次提取分析有效历史测试数据库中的各组数据;
(2)根据有效历史测试数据库中数据的相关性,分析这些数据与哪些可能的测试目标有关系;
(3)选取其中相对重要的测试目标;
(4)根据测试目标把这些数据进行组合,合成测试用例,使其能验证这个测试目标。
逆推法应用实际案例
比如,根据有效历史测试数据库中的表2数据可以得到测试目标,并得到如表通所列的测试用例的输入及期望输出数据。
测试目标:正常工况下反应器催化剂藏量计算的精度。
思路概括:直接分析有效历史测试数据库中的数据,由这些数据组合归纳得到相关的测试目标及测试用例。
正推法与逆推法的一种混合方法正推法的主要优点是测试目标能够主动选取,缺点是大量的有效历史数据可能没有充分利用。逆推法的主要优点是能充分利用有效历史测试数据库中的数据,缺点是数据量过大,使得人工数据分析的工作量也很大。
需要把正推法和逆推法再进一步混合互补,步骤如下:
(1)按照优先级制定7,个测试目标;
(2)循环,做如下处理:
用正推法从有效历史测试数据库中选取合理的数据去逐一验证测试目标,并将每次己经使用的记录数据做标记剔除;
(3)对有效历史测试数据库中剩余的未被使用的数据运用逆推法进行分类;
(4)概括出与每一类数据相关的软件功能或性能,分析提取出测试目标并用逆推法测试验证。
这样一方面既能够主动地验证优先的测试目标,另一方面能尽量充分利用有效历史测试数据库中的各组数据,尽量不浪费。实践证明,这种方法更具有灵活性、实效性。