分支故障定位

2024-06-08

分支故障定位(共5篇)

分支故障定位 篇1

0 引言

随着电力系统的不断发展, T型输电线路在电力系统中所占的比重越来越大, 且其输电功率大、负荷重, 一旦发生故障, 准确快速的故障定位显得非常重要。由于T型输电线路结构的特殊性, 不能简单地把双端测距[1,2,3,4]应用到T型输电线路上。国内外不少学者提出了许多基于同步信息的T型输电线路故障测距算法[5,6,7,8,9,10,11,12,13,14], 主要分为行波法[5,6,7,8]和故障分析法[9,10,11,12,13,14,15]。行波原理上的测距存在波头识别问题, 且需专门设备, 硬件投入大, 技术较为复杂。故障分析法对设备要求较低, 投资小, 获得了广泛应用。

基于同步相量信息的传统T型线路故障测距算法大都采用T节点处电压幅值相等来选出故障分支[9,10,11,12], 但当T节点附近发生高阻抗短路时, 从三端计算的电压幅值基本相等, 无法正确判别故障支路, 存在判别死区。近年来电力科技工作者围绕T节点附近发生高阻抗短路存在死区进行了改进。文献[13-15]将故障支路判据和故障测距融为一体, 无需事先判别故障支路即可测距。文献[13]利用过渡电阻是纯电阻特性来实现测距, 但在非故障支路上, 测距函数值均大于零无理论依据, 进而无法完成测距任务。文献[14-15]提出在故障点前后测距函数的相位会发生突变, 正常支路上测距函数的相位不会发生突变, 基于测距函数的这一相位特性提出T型测距, 在一定程度上改善了在T节点附近经高阻接地的测距死区, 但测距需在每条支路上都进行搜索计算, 故算法定位速度不够, 不能实现在线监测。

本文基于分布参数模型, 推导了一种新的测距函数判断故障分支。在故障支路上, 测距函数相位值单调且在首末端两处的函数相位值相差大约180°; 正常支路上, 测距函数相位值也单调但在首末端两处的函数相位值相差大约0°。基于测距函数的相位在首末两处的相位相差的大小这一特性提出了一种适用于T型高压线路故障分支判据, 进而利用故障距离的解析表达式求解故障距离。

1 双端线路故障分析

双端线路故障的正序序网图如图1 所示。

根据均匀传输方程, 距m端x处故障点f的正序电压相量可以用两端电压、电流分别表示为:

式中: γ1和Zc1分别为线路正序传播系数和波阻抗;分别为两端电压、电流的正序分量;l为线路全长。用两端数据测得故障点f处的正序电压应相等, , 即

式 ( 2) 右端展开并化简可得:

对式 ( 3) 取相位可构造测距函数f ( x) :

式中: arg ( ·) 为相位函数。

可证明式 ( 5) 单调且在x = 0 与x = l两处的函数值大约相差180°。简单证明如下。设

令AK∠θ = 1 ( K为正数) , 且在高压输电线中可近似认为, 其中, L1和C1分别为线路单位正序电感和电容, 则式 ( 6) 可化简为:

在实际电网中, β1x属于 ( 0, π /2 ) , 当 θ 在 ( 0, π /2) 时, 则U与A的相位差 φ 可写为:

由于cot β1x随x单调递减, 故p ( x) 随x单调递减, 又arctan p ( x) 函数单调递增, 由式 ( 8) 可得 φ 随x单调递减的。同理 θ 在 ( - π /2, 0 ) 时, φ 随x是单调递减的; θ 在 ( π/2, π) 和 ( - π, - π/2) 时, φ 随x是单调递增的。当输电线路故障时, A可通过两端数据计算出来, 是一定值, 可得U的相位是单调的, 即式 ( 5) 是单调的。又知[15]:

式中: lf为故障点f到m端的距离。

式 ( 10) 代入式 ( 11) 可得:

式 ( 12) 代入式 ( 5) 可化简为:

把 γ1≈jβ1代入可得:

由式 ( 14) 可知, 当输电线路故障时, lf是固定不变的已知值, 故测距函数的值基本保持在 ± 90°左右, 又式 ( 3) 的幅值在故障点处为0, 即g ( x) 在故障点处为0, 故可知f ( x) 在故障点位置前与故障点位置后的值基本保持在90°或者- 90°, 在接近故障点位置时f ( x) 由90°逐步突变为- 90°或者由- 90°逐步突变为90°。综上可得测距函数f ( x) 单调且在x = 0 与x = l两处的函数值相差大约180°。

2 T型线路故障分析

2. 1 故障分支判据原理

图2 为T型输电线路故障的正序网络图, 以NT支路发生故障为例。其中分别为M, N, P端测得的电压、电流正序分量;为T节点正序电压;分别为3 条支路注入T节点的正序电流。线路MT, NT, PT的长度分别为l1, l2, l3。

分别为利用M, N, P端电气量计算得到的T节点的正序电压, 则有:

在NT支路测距时, T节点电压和注入故障电流分别取为。用分别替代式 ( 5) 中变量, 则测距函数变为:

由于NT支路发生故障, 由第2 节可知测距函数f ( x) 单调且在x = 0 与x = l2两处的函数值大约相差180°。

在MT支路测距时, T节点电压和注入故障电流分别取为。用分别替代式 ( 5) 中变量, 则测距函数变为:

由第2 节可知f ( x) 单调, 并且可证明f ( x) 在x= 0 与x = l1两处的函数值基本相等。证明如下。

类似于式 ( 12) 的推导过程, 同理可得:

式中:lTf为故障点到T节点的距离

式 (18) 代入式 (17) 可化简为:

在高压输电线中可近似认为 γ1≈jβ1, 且在实际电网中, β1x属于 ( 0, π /2) , 故式 ( 19) 可化简为:

输电线路在NT发生故障时, lTf都是固定的已知值, 由g ( x) 表达式可得出g ( x) 关于x是单调递减的; 当x固定时, g ( x) 关于lTf是单调递增的。因为0≤lTf≤l2, 0≤x≤l1, 故当lTf= 0, x = l1时, g ( x) 有最小值。而当故障发生在T节点时, 即lTf= 0, x =l1, f ( x) = | jg ( x) | = 0 ( 其中| · | 表示取幅值函数) , 即g ( x) = 0。故当lTf= 0, x = l1时, g ( x) 有最小值0, 所以g ( x) ≥0。当故障发生在NT支路时, lTf不为0, 故g ( x) > 0。综上可知f ( x) 数值在90° 左右, 即f ( x) 在x = 0 与x = l1两处的函数值基本相等。

在PT支路测距时, T节点电压和注入故障电流分别取为。用分别替代式 ( 5) 中变量, 则测距函数变为:

由于PT和MT支路在电气结构上对称, 故同理可证f ( x) 单调且在x = 0 与x = l3两处的函数值基本相等。

2. 2 T型故障分支判据与测距

由以上分析可知, 故障支路上, 测距函数单调且在x = 0 与x = l两处的函数值相差180°左右; 正常支路上, 测距函数单调且在x = 0 与x = l两处的函数值基本相等。基于此特性, 提出一种适用于T型高压线路故障支路判据: 若支路判断函数F =abs ( f ( 0) - f ( li) ) ≥K1 ( i = 1, 2, 3, abs ( ·) 表示取绝对值函数) , 则故障在此支路上; 若F = abs ( f ( 0) - f ( li) ) < K0, 则故障不在此支路上; 若有两或三条支路都满足F = abs ( f ( 0) - f ( li) ) ≥K1, 则判断为T节点故障。由前面分析并且保持灵敏性, K1可取90°, K0可取90°。

当判断出故障分支后, 可直接用公式求出故障距离[16]。以NT支路故障时为例 ( 其他支路故障类似) , 根据在故障点f处两端求得的正序电压相等可得故障距N端的距离x为:

式中:。

上式求得的故障距离理论应为一实数, 但由于误差, 求出来是一复数, 取其实部即可。

3 仿真验证

本文采用EMTP进行仿真实验, 线路模型如图3 所示。线路长度l1, l2, l3分别为200, 180, 100 km。线路的单位正序和零序电阻、电感、电容为[15]: R1= 0. 020 83 Ω / km, L1= 0. 894 8 m H / km, C1= 0. 012 9 μF / km; R0= 0. 114 8 Ω / km, L0= 2. 288 6m H / km, C0= 0. 005 23 μF / km。M侧系统参数为:RM1= 1. 0515 Ω, LM1= 80. 154 m H, RM0= 0. 6 Ω, LM0= 63. 4 m H。N侧系统参数为: RN1= 8. 76 Ω, LN1=102. 54 m H, RN0= 2. 53 Ω, LN0= 78. 823 m H。P侧系统参数为: RP1= 3. 672 Ω, LP1= 138. 46 m H, RP0= 5.7 Ω, LP0= 90. 8 m H。系统三端电势分别为500∠0° k V, 500∠30° k V, 500∠60° k V。三端数据的采样率为2. 5 k Hz, 基波相量提取采用全波傅里叶算法。

表1 列出了不同过渡电阻下本文故障分支判断结果与测距结果。表中, FMT, FNT, FPT分别为线路MT, NT, PT的判断函数。可知, 本文所提故障分支判据在不同过渡电阻下均能正确可靠判断出故障分支, 并在此基础上进行测距, 测距结果最大绝对误差为341 m。其他情况的仿真结果见附录A表A1。可知, 本文所提判据在各种情况下均能正确可靠地判断出故障分支, 并能准确给出测距结果。

文献[13]利用过渡电阻是纯电阻特性来实现测距, 但在非故障支路上, 测距函数值均大于零没有理论依据。如当NT支路距N端30 km发生BC两相各接100 Ω 电阻接地短路故障时, 文献[13]的测距函数如图4 所示, 其中图4 ( a) 是NT和PT合并在MT支路上测距函数的曲线, 图4 ( b) 是MT和PT合并在NT支路上测距函数的曲线。由图4 可知, 在这时并不能选择故障分支, 导致测距失败。

表2 列出了在T节点附近发生A相接300 Ω电阻接地故障时, 传统方法 ( 以文献[11]的方法为例) 故障分支判断结果。由表2 可知, 传统方法在T节点附近发生高阻短路故障时并不能可靠识别出故障支路, 并且电压等级为千伏, 而分支支路判据等级是伏, 从而在T节点发生高阻短路故障时, 认为ΔUMN, ΔUMP, ΔUNP近似相等, 其中, ΔUMN为分别以M端和N端正序电压、电流推求出的T节点电压幅值的差值绝对值, 其他以此类推, 从而认为在T节点附近发生高阻短路故障时都判断为T节点故障。表3 列出了与表2 在相同情况下本文故障分支判断的结果。由表3 可知, 本文方法在T节点附近经高阻短路时能可靠正确的判断故障支路且故障分支判据FMT, FNT, FPT差别比较大, 不会因数据舍入误差而造成误判, 并且故障分支判据与传统方法计算量相当。

4 结语

本文采用分布参数模型, 根据两端测得故障点处正序电压相等推导出一种新的测距函数进行故障分支判断。故障支路上, 测距函数相位值单调且在首末两处的函数相位值相差大约180°; 正常支路上, 测距函数相位值也单调但在首末两处的函数相位值相差大约0°。本文即是基于测距函数的相位在首末两处的相位相差的大小这一特性提出了一种适用于T型高压线路故障分支判据。该故障分支判据也适用于电弧型故障, 并且也有效地克服了传统方法在T节点附近发生高阻短路故障时有测距死区的缺点; 仅利用正序分量进行分支判断与测距, 无需考虑故障类型; 在判别故障分支与故障测距时代入相应的公式即可, 不需要迭代, 计算量小, 易于编程和实现, 可实现在线监测; 从推导过程中可看出, 本算法理论上不受过渡电阻、系统运行方法和负荷电流等影响。

分支故障定位 篇2

一、概述

随着国家对煤矿安全生产工作的日益重视,以及煤矿企业管理部门对自身现代化管理的需求,实现煤矿企业井下人员定位检测和管理的一体化,提高煤矿企业的安全生产管理和自动化水平,煤矿井下人员定位管理系统的在线监测已是必然趋势。

在日常维护管理过程中,要对人员定位系统发生的故障,进行归纳分类,并对产生故障的原因及可能产生的故障进行分析。

二、人员定位常见的故障

1、识别卡不发送信号;

2、分站电源箱没有显示人员信息;

3、分站与地面监控主机不能正确通讯;

4、直流电源输出偏低;

5、备用电源不能正常投入;

6、出现通讯中断;

7、分站显示屏无法显示数据;

三、人员定位常见故障处理措施

1、识别卡不发送信号,应检查:

(1)是否电池电量不足,或则是簧片没有接触好;

(2)因识别卡进水造成电路板损坏或外力碰撞造成识别卡损坏。

2、分站显示面板没有显示人员信息,可能是以下几种原因:

(1)显示屏与分站之间线路出现问题。

(2)可能是芯片没有接触好,要重新插好。此时,应检查主板与无线收发板通信、电源是否正常等因素;如有,则考虑是后面电路问题。

3、分站与地面监控主机不能正确通讯,首先应检查分站与交换机之间通讯是否正常,电源是否正常,如没有异常,则考虑分站通讯板是否损坏。

4、直流电源输出偏低,应检查对应不同电源等级的变压器抽头是否正确。

5、当交流电源停电后,备用电源不能正常投入,应考虑电池是否失效。否则可能是电源充电板故障。

6、人员定位发射天线的维护:发射天线安装好后,需要维护人员定期检查天线有无损坏,若出现损坏或天线不成为规则形状需要重新布置。同时,不要把接收天线的感应头放在金属上。接收天线指向发射天线。

7、若出现通讯中断,可能是以下几种原因:

(1)通讯接口接触不良。

(2)通讯线路接触不良。

四、人员定位系统故障预防措施

在现场的管理中应加强维护,仔细检查,减少故障现象的发生。

1、使用前,要仔细检查各种接线是否准确,插头是否松动,特别是交流引入线,引入电压等级与接线端子电压等级是否相同,否则将把变压器烧毁。

2、必须按要求来连接电路和配接设备,分站各种未用的接口和插口不得随意占用。

3、每次使用前必须检查分站,板上所有IC芯片和继电器的安装方向要正确,接线插头无误。

4、检查分站连接插头座连接电缆是否正确及检查分站站号是否正确。对主板上的各个电位器不得随意拧动。

5、人员携带卡在不使用时必须远离具有磁场的环境。

6、分站、无线收发器应设置在便于读卡、观察、调试、检验、围岩稳定、支护良好、无淋水、无杂物的地点。分站应实行上架和牌版管理。分站应定期对其控制输出进行检查,使其控制功能始终保持正常工作状态。

7、由于电源箱中的备用电池是易耗件,有一定的使用寿命。如发现电池失效,应及时更换新电池组。

浅谈分支接触网故障自动隔离技术 篇3

关键词:分支接触网,故障,自动隔离技术

1 牵引网的供电方式

牵引网主要分为两方面:1)供电网;2)回流网。它的功能主要是为电力机车传送高质量的电能,主要是电气网络系统。供电网的组成有很多方面:接触线、正馈线以及承力索等等。回流网的组成主要是负馈线以及钢轨。由于供电方式的不同,牵引网的结构也有所不同。牵引网的供电方式主要分为五种,具体如下所示:

1.1 直接供电方式(T-R方式)

直接供电方式是最为简单的方式,它仅由接触线C以及钢轨T两个部分所构成,其投入的成本也是非常少的,维护方便且费用较低。

1.2 吸流变压器供电方式(BT方式)

吸流变压器供电方式中的吸流变压器都是由采取串联的方式进行接触的,其间隔为1.5~4km,主要作用是将地中的电流吸回,从而减少通信的干扰。在两条吸上线之间的距离大约为3~4.5km。

1.3 带负馈线的直接供电方式(T-R-NF)

带负馈线的直接供电方式是对于直接供电方式进行了一定的改革与创新,而在钢轨上,主要使用的是并联架空回流线。这样一来,可以很大限度降低钢轨电位,而通信的干扰便可以受到有效的控制,但是,与BT方式相比,抑制效果则没有那么好。

1.4 自耦变压器供电方式(AT方式)

自耦变压器供电方式的回流线为正馈线AF。自耦变压器主要以并联的方式融入到牵引网中的,它不但对于BT网中所产生的BT分段缺陷,还可以使供电电压不断加大,在牵引网中的阻力变小之后,输送的容量就会变大,而供电的距离也会变长,所以,供电臂的长度最大限度可以达到50千米。

1.5 同轴电缆供电方式(CC方式)

同轴电缆供电方式属于新的供电方式。其同轴电力电缆沿着铁路的线路进行埋设,还可以使供电电压不断加大,在牵引网中的阻力变小之后,输送的容量就会变大,而供电的距离也会变长,所以,供电臂的长度最大限度可以达到50千米。每隔5~10km做为一个分段。

2 接触网故障仿真分析

牵引供电系统的主要特点在于容量大、电压高,如果要进行相关的科研试验是比较困难的。另外,系统的安全运行也不允许进行短路实验。所以,计算机的仿真技术要想建立有关的模型,其中,进行仿真试验是最主要的研究方式和手段。牵引网仿真模型具体如图1所示:

由上图我们可以看出,ZR0表示的是回流线、ZC0表示的是接触网以及Zr0表示的是钢轨的单位长度中的阻抗,而CR0以及CC0则分别对应着回流线与接触网中单位长度对地的电容。

3 故障隔离技术研究

3.1 分支线路故障数据采集与传输

在实际生活过程中,故障检测系统蛀牙位于每一个监测站之中,为了可以更快地响应和排除故障,并且将故障信息可以快速地传递到调度中心,所以,寻找出能够快速的进行反应与传送的方式是非常重要的。其原理示意图主要如图2所示:

从上图中我们可看出它所支持的全速不间断全速采集机制可以使十六个通道一起运转,另外,它还支持同部与外部的触发采集体系。而它主要的工作原理是:由定时器中的脉冲或者是外部的时钟沿着边缘可以开始启动,另外,AD在进行第一次运转之后,它是按照之前设定的通道运行的,并且在启动之后,输入到下一个转换通道之内。

3.2 分支线路隔离装备

在电气化的铁路中,开闭所主要位于牵引网之中,它可以进行故障隔离,还能进行分段保护,它对于分支线路的接触的故障隔离起到了较大的作用。开闭所实质上就是对于所接受的电力进行一定的并合,之后再分配到电力系统中,在不改变电压等级的基础上,只对开关设备乾地开、闭电路的配电所,还可以通过增加高压电网或者增加枢纽站等方式。但是,在开闭所的线路中,一般可以两进多出,根据不同的需求进行设置,进出可以设置一定的断路器以及负荷开关等方式,或者是不加设任何的方式。开闭所主要电气的作用具体如下所示:

1)按照经济运行的方式,将经运行的方式进行一定的改变或是对于设备实行一定的检修,采取倒闸的操作,将一部分的一次电路、设备进行断开或者是将其接通。2)和继电器上面的保护装置采取密切的配合,然后将故障设备或者是故障牵引网快速消除等。

4 结论

厂用分支过流保护动作故障处理 篇4

电厂锅炉引风机启动时出现厂用分支过流保护跳闸, 造成交流电源失电, 影响厂用电系统和机组运行安全。

(1) 电流保护定值。重新校核电流保护定值, 电流定值过小, 导致设备启动时, 过流保护动作。电机启动时电流过大原因: (1) 选用的电机启动电流过大; (2) 电机运行过程中机械传动部分出现卡阻等情况; (3) 电机启动时发生短路故障; (4) 设置不正确, 造成设备启动时保护拒动或误动。

(2) 电缆故障。电缆绝缘性能不良、电缆接地或电缆相间短路, 速断保护或零序过流保护为动作, 导致过流保护动作。

(3) 开关误动。开关质量较差, 启动时开关机构失灵, 引起机构脱扣或脱扣继电器从其他回路得电, 产生励磁, 引起连杆动作, 致使开关误动。人员误碰或误动。

(4) 继电器故障。电机启动时或因机械振动, 引起继电器接触点抖动, 造成继电保护误动作。下一级保护拒动, 导致上一级保护动作跳闸。

2.故障处理

(1) 实际工作中, 因计算或调整保护定值不正确, 应进行保护定值校验。引风机电机额定电流356 A, 除最大电机以外的总负荷电流200 A。引风机电流速断保护一次动作电流Idz'=kkIqd, 其中kk为可靠系数, 取1.3, Iqd通常取6倍电机额定电流, 故Idz'=1.3×6×356=2776.8 A。厂用分支过流Idz=kk (Idz'+Ifh) , kk取1.2, Ifh (除最大电机以外的总负荷电流) 为200 A, 故Idz=1.2× (2776.8+200) =1.2×2976.8=3572.16 A。通过计算复核其一次动作过电流值为3572.16 A, 约3600 A。

查验现场备用电源开关定值。DL-31型过电流继电器定值在9 A, 根据该开关电流互感器变比2000/5, 故该备用分支过流I=9×2000/5=3600 A。对该继电器通入定值电流, 动作情况见表1, 通入3次电流, 继电器可靠动作, 排除其误动。

(2) 电缆检测。对电缆进行外观检查, 无明显短路及电灼伤痕迹。对电缆进行绝缘电阻测量, A相、B相和C相对地分别为100 MΩ, 100MΩ和96 MΩ, 判断电缆良好可靠。

(3) 开关动作可靠性检查。将该厂备用分支开关电源侧及负荷侧隔离刀分断, 做好安全措施, 分别在A421、N421, B421、N421和C421、N421通入3次9 A, 开关1.5 s可靠跳闸。排除开关误动。

(4) 继电器通过电流时无抖动, 并可靠返回。排除继电器保护动作。据输煤集控人员反映, 在锅炉集控开启引风机时, 破碎机同时启动, 超出电流定值, 该分支过电流继电器动作。

3.解决措施

(1) 值长作为生产现场调度总指挥, 对于各负荷的启动必须征得值长统一方可启动。

(2) 下达《关于负荷启动统一调度的通知》, 要求负荷启动由各专业班长汇报电气值班员, 并报告值长统一调度。

(3) 主控室电气值班人员要提高监盘技术水平, 加强责任心, 严格监视备用分支电流情况。

4.建议

(1) 实际工作中对过流动作的保护进行全面分析, 对保护定值校验及保护回路设备检验, 以查明根本原因。选择质量较好的继电器、开关和电缆厂家, 减少不良情况发生, 保证使用周期。

(2) 对继电器建立定期校验制度, 及时发现继电器、开关等存在的问题, 予以处理。对继电保护灵敏性、可靠性、速断性和选择性进行评价, 跟踪继电保护设备的状况。

(3) 定期复核保护定值, 避免发生保护数值的机械游离, 保证其准确性, 满足继电保护要求。核算保护定值正确, 应排除负荷同时启动的偶发性因素。

摘要:电厂厂用分支开关保护动作原因, 全面检查保护定值、回路和设备, 进行试验, 给出解决措施, 消除隐患, 确保厂用电系统安全稳定运行。

分支故障定位 篇5

随着人们日常生活对计算机软件的需求不断增长,软件系统的规模和复杂度也在不断攀升,而对大规模复杂系统的测试和维护等需求超出了目前的测试与维护技术能力,因此也就出现了许多与软件失效相关的事故,并且大多数的失效都是由于软件错误导致的。软件发生失效后,如何找到引发失效的错误位置或引发失效的原因,就是错误定位[1,2,3,4]问题。而软件错误定位算法的复杂度高,并且冗余的测试用例会影响软件错误定位的准确性。为了降低错误定位的复杂度,提高错误定位的准确性,对如何选择有利于实现错误定位的测试用例开展研究则具有重要意义。传统的测试用例选择方法多数是面向软件测试的需求,追求的是测试的充分性,而面向错误定位的测试用例选择方法则是侧重于选择对错误定位有效的测试用例。所以面向软件测试需求选择得到的测试用例集合并不完全适用于错误定位,甚至有些冗余的测试用例还会影响到软件错误定位的准确性。为了提高错误定位的准确性并且降低其复杂度,研究面向错误定位的测试用例选择方法是极其重要的。

目前,面向软件错误定位需求的测试用例选择方法的研究也逐渐增多。如Renieris[5]等提出“近邻模型”,该模型的主要思想是在失效测试用例的邻域附近选择成功测试用例,利用失效测试用例和成功测试用例的测试信息进行差异分析以定位故障,但选择的方法是通过对比两条路径所执行的基本语句块的集合来实现的,未考虑在循环分支条件下语句块的执行序列。北京大学的郝丹[6,7]等人提出了一个测试用例选择算法,该算法基于测试用例的语句覆盖信息进行测试用例选择,可以有效地减少测试用例的数量,降低错误定位的复杂度,但因为该算法只考虑了语句覆盖信息,所以选择出来的测试用例影响了错误定位的准确性。Yu[8]等将相对冗余思想用于测试用例选择,提出基于语句的删减方法和基于向量(即语句集合)的删减方法,通过实验证明基于向量的删减方法更有利于错误定位。目前的测试用例选择方法,都只研究了程序运行时的语句覆盖信息,忽略了程序运行时的分支特征,因此,选择的测试用例对错误定位的准确性没有明显提高。

针对以上问题,本文提出了一种面向错误定位的基于分支聚类的测试用例选择方法,该方法分析了程序的具体执行路径信息,引入了聚类的思想,根据测试用例动态执行时的分支特征对测试用例进行选择。实验表明,本文方法可以有效减少测试用例数量,提高错误定位的效率和准确性。

1 测试用例选择算法

1.1 测试用例选择模型

本文提出的面向错误定位的测试用例选择模型如图1所示。该模型主要分为三个模块:数据预处理模块、基于分支聚类选择模块、错误定位模块。各个模块介绍如下:

(1)数据预处理模块。该模块主要完成了对测试用例套件数据的预处理,向源程序中插入探针,动态执行源程序,获取每个测试用例的插装信息。

(2)基于分支聚类选择模块。该模块首先根据语句覆盖信息对测试用例进行分组,然后根据路径信息提取出每条路径的分支特征,再利用分支特征对测试用例分组进行聚类,最后删除分类中冗余的成功测试用例。

(3)错误定位模块。该模块使用了基于统计分析的错误定位方法对错误语句进行定位,并生成错误报告。本文根据选择后的测试用例在错误定位技术中可疑语句的错误排名,来验证所选择的测试用例的有效性。

为了更好地理解并区分语句覆盖向量和执行路径向量,示例程序如图2所示,此函数的功能是求N(N=3)个数的最大数,当测试用例t为{13,11,5}时,其动态执行得到的语句覆盖向量是{6,7,8,9,10,12,13,16,17},路径向量是{6,7,8,9,10,12,13,10,12,13,10,16,17}。语句覆盖向量只考虑该语句是否被执行,而路径向量还考虑了语句的执行顺序和循环的执行次数等信息。

1.2 基于分支聚类的测试用例选择方法

该方法首先按照语句覆盖向量将测试用例分组,以保证每个语句覆盖向量都至少会保留一个测试用例,确保被保留的成功测试用例集合满足错误定位的高语句覆盖需求,而且按组进行聚类分析也会降低复杂度。文中采用分支特征来对测试用例进行聚类。从每个测试用例的路径信息里面提取各个分支的特征作为特征向量,每个分支的特征是根据一个测试用例动态执行中该分支执行结果为真的个数和执行结果为假的个数来计算的,其计算公式如公式(1)所示。

式中,si是程序中第i个分支的分支特征值;n是程序中分支的总个数;NTi是程序中第i个分支在当前测试用例的动态执行过程中结果为真的个数;NFi是程序中第i个分支在当前测试用例的动态执行过程中结果为假的个数。然后根据测试用例的路径信息,计算得到程序中的每个分支的特征值si,将程序中每个分支的特征值的集合作为该测试用例的特征向量,记为Sj={s1,s2,…,sn},其中,Sj为第j个测试用例的特征向量。为了更好地解释测试用例的特征向量,以图2中的实例程序进行说明,首先分析出程序的分支总个数为2个,分别是第10行和第13行,当输入为{13,11,5}时,路径向量为{6,7,8,9,10,12,13,10,12,13,10,16,17},对其分析可以得出程序第10行被执行了3次,其中2次为真,1次为假,所以分支特征为2/3,程序第13行被执行了2次且两次都为假,分支特征为0,所以当前测试用例的特征向量为邀2/3,0妖。

本文提取分组内的所有测试用例的分支特征向量,然后根据分支特征向量对分组内的测试用例进行聚类分析。通过采用基于层次法的聚类分析方法对分组内的测试用例进行聚类处理,得到多个类,再在每一类中随机地选择一个测试用例予以保留。基于分支特征聚类就是要把分组内分支特征相似的测试用例按聚类分布到一个组中,采用基于层次法的聚类分析方法对分组内的测试用例进行聚类处理,并使用了欧式距离来计算两个测试用例之间的相似程度,距离越小就说明这两个测试用例的分支特征越相似。基于分支特征聚类的算法描述如图3所示。其中,M是当前被处理的分组里面所有测试用例的分支特征向量的集合,D是距离阈值。

为了更好地理解这个算法,再次以图2中的实例程序进行说明,当程序输入为{5,11,6}时,路径信息是{6,7,8,9,10,12,13,14,10,12,13,10,16,17},该测试用例的分支特征是{2/3,1/2};当程序输入是{5,6,11}时,路径信息是{6,7,8,9,10,12,13,10,12,13,14,10,16,17},该测试用例的分支特征是{2/3,1/2},这两个测试用例将被聚合在一个类中。可以看出,这两个测试用例路径信息是不一样,但其路径信息很相似,本文通过基于分支特征的聚类将其聚集到一个类中,然后随机地选择一个测试用例保存即可。

2 实验结果与结论分析

2.1 基于统计分析的软件错误定位方法

根据软件失效的原理,软件发生功能故障时其执行路径一定经过了程序中与该故障相关的错误语句。与成功测试用例相比,失败测试用例的执行路径是有差异的,而这些差异中也包含了软件故障的信息。本文实验采用的错误定位技术为由Harrold等提出的Tarantula[9]方法。该方法认为只要是被失败测试用例执行的语句比被成功测试用例执行的语句更加值得被怀疑。该方法的语句怀疑度suspiciousness(s)计算公式如下:

式中,s代表语句,failed(s)代表执行了语句s的失败测试用例个数,passed(s)代表执行了语句s的成功测试用例个数,totalfailed代表失败测试用例总个数,totalpassed代表成功测试用例总个数。该方法计算出来的可疑度的范围是[0,1],一个语句的可疑度数值越大,该语句就越值得被怀疑。置信度是用来度量可疑度的可信程度,那些被较多测试用例执行的语句会具有较大的置信度,置信度confidence(s)计算公式如下:

Tarantula算法先按照语句可疑度从大到小来进行排序,当可疑度相同时,按照置信度从大到小排序,最终得出可疑语句的排名。某语句是错误语句的可能性越大,其排名越高,调试人员可以按照排名顺序对源程序进行检查。

2.2 实验数据

本文的实验数据是Siemens Suite[10],具体信息如表1所示。其中,第一列Program为程序名称;第二列No.为每个程序对应的错误版本个数;第三列Line为程序可执行代码的行数;第四列Num为每个程序提供的测试用例个数;第五列Description为每个程序的功能描述。Siemens Suite最早是为了研究控制流和数据流的准则对于错误探测能力的影响而创建的,包含7组实现不同功能的C程序,每组程序通过人工注入的方式创建了基本程序的错误版本,这些错误经常通过修改程序中的一行代码来注入,包括语句的增删以及判断条件的修改等,以模拟实际中可能存在的错误。

2.3 评价指标

为了与文献[8]中的测试用例选择方法对比,本文与文献[8]使用相同的评价指标。文献[8]提出了两个评价指标:Reduction和Expense_increase。其中,Reduction用来评价测试用例选择方法对测试用例的删减能力,Expense_increase用来评价测试用例选择方法对错误定位的准确性的影响。首先介绍Reduction,计算公式如公式(4)所示。Reduction是由删减前的测试用例集合的个数(size of unreduced test suite)与删减后的测试用例集合的个数(size of reduced test suite)计算得到的。

在介绍Expense_increase之前先介绍Expense,其计算公式如公式(5)所示,将测试用例用于软件错误定位技术,会得出一个语句可疑度的排名,Expense就是由错误语句的可疑度排名(rank of faulty statement)和程序的可执行代码行数(number of executable statements)计算得到的。

为了研究测试用例的选择方法对软件错误定位的影响,需要计算Expense_increase,计算公式如公式(6)所示,这是删减后的测试用例的Expense与删减前的测试用例的Expense之间的差值。

从公式(5)和公式(6)可以得出,如果Expense_increase是一个负数,意味着软件错误定位技术使用删减后的测试用例集合得到的错误语句排名要比使用删减前的测试用例集合得到的错误语句排名靠前,对测试用例删减后,调试人员只需查找较少代码就能找到错误位置,这说明了为负数的Expense_increase,代表了测试用例选择方法提高软件错误定位的准确性;与之相反,取为正数的Expense_increase,则代表了测试用例选择方法影响了软件错误定位的准确性。

2.4 实验结果及分析

本文对Siemens Suit提供的7组程序的所有错误版本进行了实验,并记录了每个版本的测试用例选择结果信息和软件错误定位结果信息,通过这些信息计算出每个版本的Reduction和Expense_increase,统计出每组程序的Reduction和Expense_increase的平均值,结果如表2所示。

7组程序的Reduction平均值达到了56,这说明本文方法能有效地对测试用例进行删减,并且降低了错误定位的时间消耗。7组程序的Expense_increase都是负值,也说明本文方法可以有效地提高软件错误定位的准确性。

本文的对比实验是文献[8]中的方法,该方法为基于语句向量的测试用例选择方法,其覆盖标准是查看一个测试用例是否执行了新的语句向量,以确定是否将其保留下来,即是根据执行语句集合是否一样来选择测试用例。对比实验结果如表3所示。

从表2和表3中,可以看出本文方法和文献[8]中方法的Reduction相差不多,说明两种方法都能有效地对测试用例进行删减,进而降低错误定位的复杂度。本文的Expense_increase都是负值,而文献[8]中的Expense_increase有正有负,因而本文方法的Expense_increase比文献的方法更稳定,效果更好。文献[8]中,只是通过实验证明了该文中的方法对错误定位几乎没有影响,只在某些时候才会提高软件错误定位的准确性,而本文方法对软件错误定位的准确性却有很明显的提高。因此,本文方法选择的测试用例更加有助于提高错误定位的准确性。

3 结束语

本文提出了一种面向错误定位的测试用例选择方法,与已有的测试用例选择方法相比,该方法不仅考虑了语句覆盖信息,还充分考虑了测试用例的分支特征,并且引入了聚类思想对测试用例进行选择。通过实验证明,该方法能有效地约减测试用例,降低错误定位的复杂度并提高错误定位的准确性。

参考文献

[1]WONG W E,DEBROY V,XU D.Towards better fault local-ization:a crosstab based statistical approach.IEEE Trans.on S-ystems,Man,and Cybernetics,Perona,2011,99:1-19.[1]WONG W E,DEBROY V,XU D.Towards better fault local-ization:a crosstab based statistical approach.IEEE Trans.on S-ystems,Man,and Cybernetics,Perona,2011,99:1-19.

[2]ZHANG Z Y,CHANB W K,TSEC T H,et al.Non paramet-ric statistical fault localization[J].Journal of Computer and Sy-stem Sciences,2011,84:885-905.[2]ZHANG Z Y,CHANB W K,TSEC T H,et al.Non paramet-ric statistical fault localization[J].Journal of Computer and Sy-stem Sciences,2011,84:885-905.

[3]JOBSTMANN B,STABERB S,GRIESMAYERC A,et al.Fin-ding and fixing faults[J].Journal of Computer and System Sc-iences,2012,78:441-460.[3]JOBSTMANN B,STABERB S,GRIESMAYERC A,et al.Fin-ding and fixing faults[J].Journal of Computer and System Sc-iences,2012,78:441-460.

[4]YU K,LIN M,GAO Q,et al.Locating faults using multiplespectra-specific models.SAC,2011.[4]YU K,LIN M,GAO Q,et al.Locating faults using multiplespectra-specific models.SAC,2011.

[5]RENIERIS M,EREISS S.Fault Localization with nearest nei-ghbor queries[C]//Proceedings of the 18th International Confer-ence on Automated Software Engineering(ASE2003),Montreal,Canada,2003-10:30-39.[5]RENIERIS M,EREISS S.Fault Localization with nearest nei-ghbor queries[C]//Proceedings of the 18th International Confer-ence on Automated Software Engineering(ASE2003),Montreal,Canada,2003-10:30-39.

[6]HAO D,ZHANG L,ZHANG J,et al.VIDA:Visual interactivedebugging.ICSE,2009:583-586.[6]HAO D,ZHANG L,ZHANG J,et al.VIDA:Visual interactivedebugging.ICSE,2009:583-586.

[7]HAO D,XIE T,ZHANG J,et al.Test input reduction for r-esult inspection to facilitate fault localization.Autom Softw E-ng.2010,17:5-31.[7]HAO D,XIE T,ZHANG J,et al.Test input reduction for r-esult inspection to facilitate fault localization.Autom Softw E-ng.2010,17:5-31.

[8]YU Y,JONES J A,HARROLD M J.An empirical study ofthe effects of test suite reduction on fault localization.ICSE,2008:201-210.[8]YU Y,JONES J A,HARROLD M J.An empirical study ofthe effects of test suite reduction on fault localization.ICSE,2008:201-210.

[9]JONES J,HARROLD M J.Empirical evaluation of the taran-tula automatic fault-localization technique[C]//Proceedings ofthe International Conference on Automated Software Engineeri-ng,2005-11:273-282.[9]JONES J,HARROLD M J.Empirical evaluation of the taran-tula automatic fault-localization technique[C]//Proceedings ofthe International Conference on Automated Software Engineeri-ng,2005-11:273-282.

上一篇:小学体育中的情感教育下一篇:保存必应搜索结果