收藏 分销(赏)

基于EFSM模型的铁路信号安全软件单元测试技术研究.pdf

上传人:自信****多点 文档编号:1989744 上传时间:2024-05-13 格式:PDF 页数:6 大小:1.48MB
下载 相关 举报
基于EFSM模型的铁路信号安全软件单元测试技术研究.pdf_第1页
第1页 / 共6页
基于EFSM模型的铁路信号安全软件单元测试技术研究.pdf_第2页
第2页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、基于 EFSM 模型的铁路信号安全软件单元测试技术研究王飞,李一楠,孙文哲,赵晓宇,刘雅晴(中国铁道科学研究院集团有限公司通信信号研究所,北京100081)摘要:铁路信号安全软件内部逻辑复杂,通过充分的单元测试能够更好地发现和排除软件内部的缺陷。文章分析单元测试常用方法,并结合铁路信号安全软件单元测试技术要求,提出一种基于扩展有限状态机(EFSM,EnhancedFiniteStateMachine)模型的黑白盒融合单元测试方法。使用自动化测试工具 Cantata,以无线超时降级场景为实例,验证该方法是否可以满足测试场景的完备性,并且关注软件结构是否被完全覆盖。根据覆盖结果,对未覆盖原因进行分

2、析,判断是否存在异常场景,并针对未覆盖分支补充测试场景,丰富了测试案例,从而保障了铁路信号系统的可靠性。关键词:铁路信号安全软件;单元测试;白盒测试;黑盒测试;扩展有限状态机(EFSM);Cantata中图分类号:U284.91:TP39文献标识码:ADOI:10.3969/j.issn.1005-8451.2023.10.14Unit testing technology for railway signal safety software based onEFSM modelWANGFei,LIYinan,SUNWenzhe,ZHAOXiaoyu,LIUYaqing(Signal&Comm

3、unicationInstitute,ChinaAcademyofRailwaySciencesCorporationLimited,Beijing100081,China)Abstract:Theinternallogicofrailwaysignalsafetysoftwareiscomplex,andthroughsufficientunittesting,defectswithinthesoftwarecanbebetterdiscoveredandeliminated.Thispaperanalyzedcommonmethodsofunittestingandproposedabla

4、ckandwhiteboxfusionunittestingmethodbasedontheExtendedFiniteStateMachine(EFSM)model,combinedwiththetechnicalrequirementsofrailwaysignalsafetysoftwareunittesting.ThepaperusedtheautomatedtestingtoolCantataasanexampletoverifywhetherthemethodcanmeetthecompletenessofthetestingscenarioandpaiedattentiontow

5、hetherthesoftwarestructurewasfullycovered,analyzedthereasonsforthelackofcoveragebasedonthecoverageresultstodeterminewhethertherewereabnormalscenarios,providedsupplementarytestingscenariosfortheuncoveredbranches,whichenrichedthetestingcasesandensuredthereliabilityoftherailwaysignalsystem.Keywords:rai

6、lwaysignalsafetysoftware;unittesting;whiteboxtesting;blackboxtesting;EnhancedFiniteStateMachine(EFSM);Cantata随着我国高速铁路的快速发展,保证列车运行安全成为铁路关注的重点1-2。中国列车运行控制系统 3 级(CTCS-3,ChineseTrainControlSystem-3)是我国自主研发的列车运行控制系统,在投入使用之前需要对其做大量的测试工作,确保其功能的正常使用3。其中,单元测试是软件测试最基本、最初的阶段,也是保障铁路信号安全软件质量、防止其失效的重要手段4。通过对软件单元测

7、试发现其中的缺陷,确保设计和实现软件规定的要求。目前,铁路信号领域的软件测试主要参考 TJ/DW230-2020铁路信号安全软件编程暂行技术要求、TJ/DW231-2020铁路信号安全软件测试暂行技术要求等文件5-6。其中,文献 6 重点强调要通过单元测试方式对软件的功能、性能、错误处理等进行测试,可发现软件内部逻辑错误缺陷,识别难达、危险分支,提高软件测试的可靠性,保证铁路信号系统的安全性。收稿日期:2023-04-14基金项目:中国国家铁路集团有限公司科技研究开发计划(P2021G012);中国铁道科学研究院集团有限公司科研项目(2022YJ193);北京华铁信息技术有限公司科研项目(20

8、22HT14)作者简介:王飞,助理研究员;李一楠,研究员。通信信号技术Communication and Signal Technology第32卷 第10期Vol.32 No.10文章编号:1005-8451(2023)10-0068-06RCA682023.10 总第 319 期现阶段,铁路信号安全软件单元测试技术主要以白盒测试为主,黑盒测试为辅7。白盒测试主要关注软件内部结构逻辑,忽略软件的功能逻辑。黑盒测试主要从功能方面对软件进行测试,不太关注软件的内部结构逻辑,且测试案例是否完备全面依赖于测试人员对功能的理解程度,这样会导致一些复杂环境条件下产生的异常测试案例被遗漏,进而产生严重的后

9、果。因此,需要一种既能充分考虑黑盒测试的各种场景,又能满足白盒测试的结构覆盖需求的测试方法,同时切实可行、容易操作,从而提高测试效率。本文提出了一种基于扩展有限状态机(EFSM,EnhancedFiniteStateMachine)模型的黑白盒融合单元测试方法。以软件结构中划分的最小功能模块为测试对象,利用 EFSM 模型准确刻画软件的各种场景,设计相关测试案例,同时使用自动化测试工具 Cantata 对基于 EFSM 模型设计的测试案例进行自动化分析,给出被测功能模块各个函数结构覆盖结果。1 基本理论1.1 单元测试概述单元测试是指对软件内部最小可测单元的正确性进行测试的工作。其中,对最小可

10、测单元的大小并没有明确的规定,它可以是一个模块、一个类、一个方法、一个子系统甚至一个函数。测试人员依据软件设计规范和程序源代码,设计测试的输入和输出条件,通过编写相应的测试案例分析软件中可能存在的缺陷,验证软件功能是否符合设计规范的要求。单元测试方法包括白盒测试和黑盒测试。白盒测试方法中的语句覆盖、分支覆盖、条件覆盖(CC,ConditionCoverage)、修正条件判定覆盖(MCDC,ModifiedConditionDecisionCoverage)、条件组合覆盖的测试是以程序内部结构为基础的常见白盒测试方法,其覆盖程度依次增强,设计难度也逐级增加;白盒测试方法还包括路径覆盖、控制流、数

11、据流、程序变异、程序插桩等,可以根据测试的充分性要求适当选择。黑盒测试方法中的功能分解、等价类划分、边界值分析是黑盒测试设计用例的常用方法8;判定表、因果图、随机测试、猜错法和正交试验法等,可以根据测试对象和被测特性的特点适当选择。铁路信号安全软件单元测试的基本内容如下9:(1)对每个软件单元的功能进行测试;(2)被测试的软件特性都与功能相关,且包含正常和异常情况;(3)测试用例的输入域应覆盖有效等价类、无效等价类和边界值;(4)软件源代码对于每个单元内部的错误处理措施是否有效;(5)软件源代码的每条语句都被至少一个测试用例覆盖,即语句100%覆盖;(6)软件源代码的每个分支都被至少一个测试用

12、例覆盖,即分支100%覆盖;(7)软件源代码的每个分支的每个条件都被独立起作用的测试用例覆盖,即MCDC100%覆盖。1.2 扩展有限状态机EFSM 能够对软件中有限个状态以及这些状态之间的转移行为进行建模。EFSM 在有限状态机基础上增加了变量、操作及状态迁移的前置条件,可以更加准确地刻画软件内部的动态行为10,是对 FSM的扩展。通常 EFSM 模型使用状态图来表示,图中,用节点表示状态,用边表示转移条件。MEFSM 由六元组构成:M=(S,s0,V,I,O,T)Ss0 SVIOTTtt=(ss,i,g,op,se)ssti Igopset其中,为一个有限状态集合;为该模型的初始状态;为内

13、部变量的有限集合;为输入集合;为输出集合;为状态迁移的有限集合。的每个迁移 是一个五元组,其中,为迁移 的起始状态;为输入符;为当前迁移的判定条件,也被称为守卫条件;为输出或赋值等一系列操作语句;为迁移 的终止状态。1.3 Cantata 自动化测试工具Cantata 测试工具的功能包含:单元和集成动态测试、AutoTest 测试、覆盖率分析、静态分析、测试需求追踪、代码变更分析、CantataMakefile 等。第32卷 第10期王飞等:基于 EFSM 模型的铁路信号安全软件单元测试技术研究通信信号技术RCA2023.10 总第 319 期69Cantata 进行软件测试的策略,如图 1

14、所示。+/图1Cantata 进行软件测试的策略(1)编写测试脚本,设置不同的输入调用被测试单元;(2)将编写的测试脚本与动态测试库、函数插桩、覆盖率插桩、覆盖率采集分析等进行链接编译,生成测试可执行文件;(3)产生测试结果,给出覆盖率统计结果,并显示未覆盖的原因。2 基于 EFSM 模型的黑白盒融合单元测试技术2.1 黑盒测试案例的形式化描述技术传统的黑盒测试案例使用自然语言描述,由于自然语言存在模糊性和二义性,给测试人员带来了一定的困扰和挑战。测试人员由于对测试案例的含义和预期结果理解不一致,导致执行时产生歧义和误解,从而影响测试结果的准确性。为了解决这些问题,通过将测试案例转化为EFSM

15、 模型,可以将测试过程更加形式化和规范化,并消除了自然语言描述的模糊性和二义性。EFSM 模型使用图形的方式表示软件的各个状态和状态间的转换关系,可以清晰地展示系统的行为和功能。测试人员可以根据 EFSM 模型中的状态迁移路径,准确地理解测试案例所要求的系统行为和预期结果。这种结构化和精确的表示方式使测试人员之间可以更好地共享和理解测试需求,减少了解释和执行测试用例时的歧义,提高了测试人员对测试细节的准确理解。2.2 黑盒测试与白盒测试相互融合技术该技术充分利用了黑盒测试和白盒测试各自的优点,能够全面验证软件的功能和结构,发现更多的缺陷,提高测试案例的质量,进而提升软件的安全和可靠性。(1)黑

16、盒测试和白盒测试分别关注软件的功能和内部结构,通过将两者结合,能够充分覆盖测试对象的各个方面。黑盒测试注重对软件功能的正确性和需求符合性的验证,而白盒测试则关注代码覆盖率和结构的完整性。(2)由于黑盒测试和白盒测试都有不同的测试目标和方法,结合使用可以发现更多的缺陷。黑盒测试主要通过输入和输出验证软件功能的正确性,而白盒测试通过深入分析代码路径和逻辑来发现软件中潜在的问题。(3)黑盒测试用例基于功能需求的角度设计,能够充分考虑到用户的使用场景和预期结果;白盒测试着重于代码层面的覆盖和测试,能够发现逻辑错误和边界条件等问题;结合两者,既可以保证软件功能的完整性和正确性,又能够测试代码的覆盖率和结

17、构,提高测试案例的质量。(4)白盒测试对于难以覆盖的关键分支和异常场景能够提供更深入的测试和分析。通过使用白盒测试方法,结合对未满足覆盖率要求的分支的设计和测试,可以进一步提升软件的安全性和可靠性。2.3 基于 EFSM 模型的黑白盒融合单元测试方法结合黑盒测试和白盒测试各自的优点,以功能模块为最小可测对象执行单元测试,本文提出了一种基于 EFSM 模型的黑白盒融合单元测试方法,如图 2 所示。具体实施步骤如下:EFSMCantataMCDC图2黑白盒的融合单元测试方法(1)采用 EFSM 模型对铁路信号软件应用各场景进行形式化建模,实现功能点分解;通信信号技术2023年10月RCA70202

18、3.10 总第 319 期(2)根据 EFSM 模型中各个状态迁移,建立黑盒测试用例集;(3)根据建立的黑盒测试用例集,编写相关测试代码,结合 Cantata 自动测试工具,给出覆盖率测试结果,查看各个被测函数是否满足语句、分支、MCDC 覆盖率要求;(4)如果覆盖率测试结果不满足要求,分析未覆盖原因,判断是否存在异常场景,针对未覆盖分支使用白盒测试方法设计补充测试案例,满足覆盖率要求。(5)如果覆盖率测试结果满足要求,本测试步骤选择边界值分析法补充测试用例。经验表明,在边界附近很容易发生错误,为了使测试案例集更充分,该方法简单而有效。3 铁路信号软件单元测试验证3.1 无线超时降级场景的 E

19、FSM 模型车载设备在 CTCS-3(简称:C3)等级完全模式下,处理无线超时降级 CTCS-2(简称:C2)等级的场景分析11。场景 1:无线超时后,在完全监控模式下应启动C3 等级向C2 等级的降级处理并输出最大常用制动命令。场景 2:无线超时制动 10s 内,列车速度不大于 160km/h,且不超过 C2 等级允许速度,车载自动转入 C2 等级。场景 3:无线超时制动 10s 内,列车速度高于160km/h,但低于 C2 等级允许速度,不转入C2等级。场景 4:无线超时制动 10s后,列车速度不超过 C2 的允许速度,自动转入 C2 等级。场景 5:无线超时制动 10s 后,列车速度高于

20、C2 的允许速度,不转入 C2 等级。场景 6:自动降级过程中,无线恢复,自动缓解常用制动,列车继续以 C3 等级运行。根据 EFSM 模型理论,建立 C3 等级完全模式下,处理无线超时降级 C2 等级的 EFSM 模型,如图 3 所示。图中,各状态、含义如表 1 所示;各迁移含义如表 2 所示。表 2 中主要描述了输出条件、判定条件及输出操作的含义。s1s2s3s4automaticLevelFallback _idlereceive_radio_contace_lossset_CTCS2_levelreceive_radio_contace_recovert3t1t6t4t5t2s5uns

21、et_CTCS2_level图3无线超时降级场景的 EFSM 模型表1模型中各状态含义状态名称含义s1automaticLevelFallback_idle自动降级初始状态s2receive_radio_contace_loss启动降级处理状态s3set_CTCS2_level降级到C2等级状态s4receive_radio_contace_recover终止降级处理状态s5unset_CTCS2_level维持C3等级状态表2模型中各迁移含义迁移内容含义t1s1,i1,g1,op1,s2i1含义为无线丢失g1含义为当前控制等级为C3级,模式为完全模式op1含义为输出常用制动命令t2s2,i2

22、,g2,op2,s3i2含义为列车当前运行速度和C2允许速度g2含义为无线超时制动10s内,列车速度不高于160km/h,且不高于C2等级允许速度op2含义为执行自动降级到等级C2t3s2,i3,g3,op3,s5i3含义为列车当前运行速度和C2允许速度g3含义为无线超时制动10s内,列车速度高于160km/h,但低于C2等级允许速度op3含义为不转入C2等级t4s2,i4,g4,op4,s3i4含义为列车当前运行速度和C2允许速度g4含义为无线超时制动10s后,列车速度不高于C2等级允许速度op4含义为执行自动降级到等级C2t5s2,i5,g5,op5,s5i5含义为列车当前运行速度和C2允

23、许速度g5含义为无线超时制动10s后,列车速度高于C2等级允许速度op5含义为不转入C2等级t6s2,i6,g6,op6,s4i6含义为无线状态当前为恢复连接状态g6含义为当前控制等级为C3级,模式为完全模式op6含义为终止降级执行缓解常用制动第32卷 第10期王飞等:基于 EFSM 模型的铁路信号安全软件单元测试技术研究通信信号技术RCA2023.10 总第 319 期713.2 EFSM 模型中各迁移转换为黑盒测试用例根据表 2 中 EFSM 模型中每个迁移 t 的描述,建立黑盒测试用例集,其中,全局变量和桩函数设置依据迁移输入条件 i,驱动参数依据迁移判定条件 g,以及期望输出依据迁移输

24、出操作 op,如表 3 所示。3.3 基于 Cantata 的覆盖率分析(1)覆盖率要求:依据铁路信号安全软件测试要求,语句、分支和 MCDC 覆盖率均须达到 100%。表3黑盒测试用例场景全局变量驱动参数桩函数设置期望输出1模式为完全模式当前等级为C3等级无线丢失-最大常用制动2模式为完全模式当前等级为C3等级无线丢失降级制动定时器=9s列车当前运行速度=159km/hC2等级允许运行速度=160km/h降级为C2等级3模式为完全模式当前等级为C3等级无线丢失降级制动定时器=9s列车当前运行速度=161km/hC2等级允许运行速度=162km/h保持C3等级4模式为完全模式当前等级为C3等级

25、无线丢失降级制动定时器=11s列车当前运行速度=161km/hC2等级允许运行速度=162km/h降级为C2等级5模式为完全模式当前等级为C3等级无线丢失降级制动定时器=11s列车当前运行速度=159km/hC2等级允许运行速度=158km/h保持C3等级6模式为完全模式当前等级为C3等级无线恢复-缓解最大常用制动(2)准备工作:基于以上要求,根据 EFSM 模型生成的测试用例集,编写测试脚本,设计桩函数,将测试脚本与 Cantata 建立连接,在 TestProperties 视图选择“OptionsFile”“Coverage”,勾选想要查看的覆盖率。(3)执行过程:执行编译,将测试脚本与

26、Cantata 软件中的库函数链接生成可执行文件后,运行生成一个后缀为 cov 的覆盖率文件。(4)查看覆盖率结果:切换到 CoverageExplorer页面,点击页面右上角的倒三角,下拉选择当前工程查看覆盖率结果,如图 4 所示。(5)定位未覆盖部分:针对覆盖率不满足100%要求的函数,可以点击对应的源码,红色显示未覆盖部分,同时给出未覆盖原因,这样可以快速定位未覆盖部分。如图 5 所示,选择红色未覆盖代码给出的未覆盖原因,MCDC 覆盖未满足,判断条件currentMode_=FULL_SUPERVISION_A¤tLevel=ATP_LEVEL_3_A 的独立影响作用没被体

27、现,也就是未设计当判断条件不满足时的测试案例。图5未覆盖原因截图基于 Cantata 的覆盖率测试结果,分析未达分支原因,判断是否是难达分支,针对无线超时降级场景的未覆盖分支,经分析未存在复杂难以设置的场景,均为不满足限制条件进入等待处理分支,使用白盒测试方法补充以下测试案例,如表 4 所示。针对白盒测试设计的案例,编写测试脚本,使用 Cantata 测试工具再次查看覆盖率结果,如图 6 所示,添加的补充测试案例,满足语句、分支和 MCDC覆盖率均达到 100%的要求,测试通过。图4覆盖率未满足测试结果截图表4白盒测试用例用例全局变量驱动参数 桩函数设置期望输出1模式为完全模式当前等级为C2等

28、级-不满足降级条件维持C2等级2模式为待机模式当前等级为C3等级-保持C3等级通信信号技术2023年10月RCA722023.10 总第 319 期3.4 边界值分析法通过 Cantata 软件分析之后,已经确保了软件内部每一条语句、分支都至少被执行过一次,满足覆盖率要求。但是针对输入域有边界范围限制时,需要进一步设计案例,保障软件在边界值附近的运行逻辑的正确性。依据边界值的常用分析方法,测试数据一般选取刚好等于、稍小于和稍大于边界的数据。通过分析无线超时降级处理软件时,发现列车当前运行速度、输出制动时间和降为 C2 级后的允许速度都有边界值限制。针对这 3 个输入域利用边界值分析方法设计案例

29、,由于在基于 EFSM 模型分析设计案例时已经对边界值附近大于和小于的数据进行了案例分析,因此,针对该场景补充的测试案例只针对等于边界值进行分析,如表 5 所示。测试过程中,未发现边界值附近有逻辑错误,测试通过。表5边界值分析测试用例用例全局变量驱动参数桩函数设置期望输出1模式为完全模式当前等级为C3等级无线丢失降级制动定时器=10s列车当前运行速度=161km/hC2等级允许运行速度=161km/h降级为C2等级2同上无线丢失降级制动定时器=9s列车当前运行速度=160km/hC2等级允许运行速度=160km/h降级为C2等级4 结束语本文详细介绍了测试案例的设计、执行和评估过程,以无线超时

30、降级场景为例,介绍了基于EFSM 模型的黑白盒融合单元测试方法的具体应用过程和结果,以及测试结果的分析和改进措施。该方法结合了黑盒测试的功能覆盖和白盒测试的结构覆盖,生成了完备的测试案例集,有助于检测出软件内部的逻辑错误和状态转换错误。本方法不仅提高了单元测试的效率和完整性,也提高了软件的可靠性。参考文献杨森,秦晓光,王飞,等.基于工程数据的测试脚本自动生成方案研究 J.铁道通信信号,2023,59(1):19-24,35.1张宇,李昂,王飞,等.面向 ATP 车载设备的通用仿真测试平台研究 J.铁道通信信号,2021,57(12):1-6.2杨志杰.CTCS-3 级列控系统关键设备自主化研究

31、 J.中国铁路,2018(7):1-6.3陈慧琍,陈晓轩.基于 SmartUnit 的安全通信系统单元测试4用例自动生成 J.铁道通信信号,2020,56(6):43-47.中国国家铁路集团有限公司.铁路信号安全软件编程暂行技术要求:TJ/DW230-2020S.北京:中国铁道出版社有限公司.2020.5中国国家铁路集团有限公司.铁路信号安全软件测试暂行技术要求:TJ/DW231-2020S.北京:中国铁道出版社有限公司.2020.6凌珊.铁路信号软件单元测试研究 J.铁路计算机应用,2020,29(2):58-61.7任丽霞.计算机联锁软件的黑盒测试过程分析与实现 J.铁路计算机应用,201

32、8,27(2):39-43.8European Committee for Electrotechnical Normalization.BSEN 50128:2011 Railway applications.Communication,signallingandprocessingsystems.Softwareforrailwaycontroland protection systems S.Brussels,Belgium:EuropeanCommitteeforElectrotechnicalNormalization,2011.9王蒙蒙,罗杨.基于扩展有限状态机测试用例生成方法J.电子设计工程,2020,28(6):97-100,106.10中国国家铁路集团有限公司.自主化 CTCS-3 级列控车载设备暂行技术条件:TJ/DW205-201912.1S.北京:中国国家铁路集团,2019:78-79.11责任编辑徐侃春图6覆盖率测试通过结果截图第32卷 第10期王飞等:基于 EFSM 模型的铁路信号安全软件单元测试技术研究通信信号技术RCA2023.10 总第 319 期73

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服