999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

LDRA Testbed在動車EBCU軟件測試中的應用與研究

2025-02-26 00:00:00王賢斌
現代信息科技 2025年1期

摘" 要:動車制動控制系統是高鐵安全運行的重要保障。隨著動車系統的復雜性和自動化程度的提高,對制動控制系統的軟件測試也提出了更高的要求。文章通過將LDRA Testbed軟件自動化測試工具應用于動車EBCU軟件,詳細介紹了靜態分析、單元測試及集成測試的方法和步驟,并結合實際測試結果分析其有效性和重要性。通過全面的測試手段,不僅提高了EBCU軟件的可靠性和安全性,還為動車制動控制系統的維護和優化提供了科學依據。

關鍵詞:動車;制動控制系統;Testbed;靜態分析;單元測試;集成測試

中圖分類號:TP311 文獻標識碼:A 文章編號:2096-4706(2025)01-0155-06

Application and Research on LDRA Testbed in the EBCU Software Testing of High-speed Trains

Abstract: The brake control system is a crucial guarantee for the safe operation of high-speed trains. With the increasing complexity and automation degree of high-speed train systems, higher requirements are being imposed on the software testing of brake control systems. This paper applies the LDRA Testbed software automation testing tool to the EBCU software of high-speed trains, introduces the methods and steps of static analysis, unit testing, and integration testing in detail, and analyzes the effectiveness and importance combined with the actual testing results. Comprehensive testing means not only enhance the reliability and safety of EBCU software but also provide a scientific basis for the maintenance and optimization of the brake control system of high-speed trains.

Keywords: high-speed train; brake control system; Testbed; static analysis; unit testing; integration testing

0" 引" 言

在動車制動控制系統中,最核心的地方是EBCU制動控制軟件,有著制動系統大腦的稱號。在動車技術不斷發展的今天,制動系統在復雜性上不斷增加,致使EBCU在控制邏輯和數據傳輸的處理上越來越復雜,這使得傳統的測試方法無法滿足EBCU軟件需要具備的高安全性要求、高可靠性要求、高實時性要求。而LDAR Testbed作為國際通用的自動化測試軟件,具備靜態分析、單元測試、集成測試的功能,可有效地檢測出EBCU制動控制軟件是否存在缺陷,可極大地提高軟件質量,彌補傳統測試方法的缺陷[1]。

1" 系統架構

中國標準動車組采用(T-M-T-M)×2 = 8輛/編組,每輛車上均載有電子制動控制單元(EBCU)。EBCU具備多種軟件控制功能,包括常用制動、緊急制動EB、緊急制動UB、停放制動、保持制動、清潔制動、防滑控制、車輪不旋轉檢測(DNRA)、制動力分級控制、撒砂控制、升弓供風控制、主空壓機管理、監測、診斷和故障記錄,以及制動試驗等[2]。

EBCU系統由多個板卡組成,包含電源板、開關量板、主控板、防滑板、模擬量板和以太網板。電 源板負責將車輛110 V直流電源轉換為5 V和24 V"等電源,并向各板卡供電;開關量板處理數字開 關量輸入輸出和速度信號采集;主控板使用高性能32位主控芯片,執行制動控制等軟件邏輯;防滑板負責輸出防滑閥驅動信號,并通過電子看門狗芯片監測防滑排氣是否超時;模擬量板處理模擬量信號;以太網板負責大容量數據存儲并對主控板進行軟件刷寫。

為驗證EBCU各板卡的軟件功能是否均正確實現,則使用LDAR Testbed工具對EBCU軟件進行全面的測試尤為重要,能夠識別和修復潛在的缺陷,能夠驗證獨立模塊邏輯實現的正確性,并確保系統整體功能的準確性,從而保障動車組的安全穩定運行。

2" 測試方法

LDAR Testbed主要用于對EBCU軟件進行靜態分析、單元測試、集成測試。靜態分析主要通過配置相應的分析規則,在代碼不執行的情況下,將代碼隱藏的缺陷篩選出來,例如數組越界、無限循環、if表達式無效等均可檢測出來。單元測試主要是針對EBCU軟件的各個函數功能模塊進行白盒測試,重點驗證其邊界值條件是否滿足,及是否滿足需求邏輯。集成測試主要驗證各個功能模塊的接口組合情況,確保軟件整體功能符合需求,保證軟件功能全面實現且安全可靠。

3" 靜態分析

靜態分析是一種在不執行程序的情況下,對源代碼進行審查和分析的方法。LDRA Testbed的靜態分析工具通過掃描源代碼,可識別潛在的錯誤、違反的代碼規則和安全漏洞等[3]。

3.1" 靜態分析配置

3.1.1" 導入源代碼到LDRA Testbed中

打開工具,點擊菜單欄“File—Select File”,選擇需要分析的EBCU軟件的.c源文件,這樣即可將目標源文件導入到LDRA Testbed中。

3.1.2" 配置靜態分析規則

點擊菜單欄“Configure—Code Review Report Options”,在跳出的對話框中點擊“Data Files—Launch Editor”進入配置規則的界面,點擊“Edit—New Standards Model”對新創建的規則命名,如圖1所示,創建一個名為TEST的規則,設定規則基于MISRA-C:2012,規則可通過勾選/取消勾選的方式根據實際需求增加/減少。

規則配置成功后,那么如何選擇創建的規則進行靜態分析呢?通過點擊“Configure—Code Review Report Options—Report Based Configuration”,下拉選擇新創建的規則即可,如圖2所示,選擇規則TEST,即可用于EBCU軟件靜態分析。

3.2" 執行靜態分析

通過點擊菜單欄的“Select Analysis”圖標,可根據需求選擇靜態分析的分析方式,通常點擊BS和QS,即自動勾選Main Static Analysis、Complexity Analysis Static Data Flow Analysis、Cross Reference,如圖3所示,勾選完成之后點擊“Start Analysis”即可開始靜態分析,將對代碼根據所選的規則和分析方式開始掃描分析。

3.3" 查看靜態分析報告

通過點擊菜單欄的“Individual Results—Text Results—Code Review Report(HTML)”,即可彈出靜態分析報告,通過查看報告,可以看到代碼違反了哪些規則、同一規則違反的次數、違反規則的級別等,并可快速定位到違反規則的代碼所屬源文件及具體行號[4]。靜態分析規則按照遵守等級分為強制、必需、建議三個等級,靜態分析時可根據等級程度著重分析及解決代碼缺陷。

如圖4所示,在對EBCU軟件進行靜態分析時發現在LDRA Code為69 D時違反2次該規則,即UR異常,變量在賦值之前就被使用了,這種情況存在嚴重的安全漏洞,甚至會導致程序在運行時系統崩潰。通過及時修正此類問題,避免軟件漏洞導致的行車安全問題。

4" 單元測試

單元測試是對EBCU軟件中各個功能模塊進行獨立測試,以驗證每個模塊是否符合設計規范和功能需求。通過LDRA Testbed單元測試功能,可以讓每個模塊在隔離環境下正常運行,提前發現并修復潛在問題,確保模塊在集成到整個系統中時能夠穩定、可靠地發揮其預期功能。

4.1" 設計單元測試用例

在設計單元測試用例之前,需要對函數模塊所實現的功能進行詳細的了解,以及參照需求確認函數模塊里邊界值處理是否正確,并確保函數實現了目標需求所有的功能。然后設計單元測試用例,包含輸入及輸出值,并保證覆蓋率達到100%,高覆蓋率的單元測試用例設計,目的是保障動車的安全性和可靠性,不遺漏任何角落的代碼,保障人民的生命財產安全。

4.2" 創建單元測試用例

4.2.1" 勾選覆蓋率

通過在菜單欄點擊“File—Select File”選擇函數模塊所在的C文件,并點擊菜單欄的“TBrun-Unit Test only”進入單元測試界面,創建Sequence,并勾選Code Coverage,如圖5所示。

Code Coverage表示代碼覆蓋率,是在單元測試時衡量被執行的代碼的百分比。通過對代碼行、代碼分支、條件組合等情況進行分析,可以提高單元測試的有效性和全面性。代碼覆蓋率越高,則表明更多的代碼被測試,那么代碼存在缺陷的風險也就越低[5]。

代碼覆蓋率通常包括語句覆蓋率、分支/決策覆蓋率、修正條件/決策覆蓋率[6],每種覆蓋率在單元測試中均有不同的作用,單元測試中覆蓋率情況如圖6所示。

語句覆蓋率(Statement Coverage),是在單元測試中被執行的語句占總語句的百分比,保證每條語句均被執行過。假設某函數有20條語句,單元測試時執行了10條語句,則語句覆蓋率就是50%。

分支/決策覆蓋率(Branch/Decision Coverage),是被執行的所有分支(如if-else)占所有分支的百分比,保證所有決策點的分支均被執行過至少一次。假設某函數有if和else兩個分支,如果只執行if分支,則分支/決策覆蓋率為50%。

修正條件/決策覆蓋率(Modified Condition/Decision Coverage, MC/DC),目的是確保每個條件均得到充分測試,在其他條件保持不變時,測試每個條件的真或假的情況,以反映對最終決策的影響。測試過程中,需要重點考慮條件的多種組合方式,保證不同情況的測試場景均有覆蓋,從而提高MC/DC百分比。

4.2.2" 生成單元測試用例

在File View窗口選中需要創建測試用例的函數,右擊選擇Create New Test Case自動創建測試用例,在Test Case View窗口便可自動生成測試用例。生成的測試用例包含用例序號、所屬函數、所屬.c文件,同時可對每條用例添加描述。用例生成之后,需要對用例設置輸入及預期輸出值,通過在Variable I/O View窗口即可對目標用例進行輸入變量的賦值及預期輸出變量的賦值,如圖7所示。

4.3" 執行單元測試用例

通過點擊菜單欄的“Run Driver Program”即可自動執行單元測試用例,執行結束之后會彈出執行結果,如圖8所示,若用例執行通過,則彈框上顯示PASS,否則,彈框上顯示FAIL。

4.4" 分析單元測試結果

分析單元測試結果時,應首先查看通過率和代碼覆蓋率,確定哪些測試用例未通過以及對應的錯誤信息;接著,檢查未覆蓋的代碼區域,評估這些區域對系統功能的影響;最后,根據測試失敗和覆蓋率低的部分,診斷潛在缺陷并優化測試用例和代碼,實現全面、有效的測試覆蓋,以提升軟件的穩定性和質量[7]。

通過點擊菜單欄“Results—Test Manager Repo-rt”便可彈出單元測試報告,如圖9所示,報告里查看TBrun Unit/Module Test結果,即可看到所執行用例的通過情況;報告里查看Test Verification,即可看到對每個函數執行過后的代碼覆蓋率情況。

5" 集成測試

集成測試是在多個函數功能模塊組合后進行測試,確保EBCU軟件集成后的整體功能滿足需求[8]。通過集成測試,可以驗證控制流和數據流是否滿足制動控制模塊間的傳遞,也有助于測試者深入了解制動控制模塊間的工作原理。集成測試用例通常從接口、數據流及控制流、異常情況、邊界值等方面設計,以此達到全面評估模塊集成后的效果。集成測試同樣追求高覆蓋率,保證系統測試的全面性,從而提高軟件的質量,以及客戶信任度和滿意度。

5.1" 設計集成測試用例

首先,詳細分析動車EBCU軟件的代碼結構,確定各功能模塊及其相互依賴關系;其次,明確每個模塊的接口和交互方式,識別關鍵的交互點和數據流,并確定每個模塊的輸入、輸出以及可能的異常處理情況;然后,設計測試用例,確保覆蓋所有關鍵路徑、接口和交互場景,保證測試用例能夠準確模擬實際運行環境中的各種情況,同時考慮到邊界條件和異常情況的處理;接下來,準備相關的測試數據和預期結果;最后,通過測試用例的初步驗證,檢查其完整性和有效性,確保測試用例能夠實現預期的測試目標,并根據需要進行調整和優化[9]。

5.2" 創建集成測試用例

通過在菜單欄點擊“File—Select File”選擇函數模塊所在的C文件,并點擊菜單欄的“TBrun - Isolation Unit / Module Test”進入集成測試界面,同樣創建Sequence,并勾選Code Coverage。

根據編寫好的集成測試用例,在File View窗口依次選中關鍵路徑上的函數右鍵點擊Include Procedure In Analysis,然后右鍵點擊關鍵路徑上的首函數創建測試用例。生成的測試用例同樣包含用例序號、所屬函數、所屬.c文件、可編輯描述信息等,同樣需要對用例的輸入及輸出變量進行賦值,通過在Variable I/O View窗口對目標用例進行輸入變量的賦值及預期輸出變量的賦值。

5.3" 執行集成測試用例

執行集成測試用例和單元測試基本相似,也是通過點擊菜單欄的“Run Driver Program”即可自動執行集成測試用例,執行結束之后會彈出執行結果,若用例執行通過,則彈框上顯示PASS,否則,彈框上顯示FAIL,此處跟單元測試一致。

5.4" 分析集成測試用例

首先,收集和整理所有測試用例的執行結果和報告,檢查路徑覆蓋率;深入分析失敗用例和邊界條件,定位問題原因[10];評估系統性能,包括執行時間和資源使用情況;最后,統計分析關鍵指標,評估模塊間協同工作效果,并匯總形成測試報告,如圖10所示,提出改進建議。

6" 結" 論

通過將LDRA Testbed自動化測試工具應用于動車EBCU軟件的靜態分析、單元測試和集成測試,不僅提高了制動控制系統的測試效率和質量,還確保了系統的安全性和可靠性。LDRA Testbed的多種測試功能為動車EBCU軟件的維護和優化提供了重要的技術支持。未來,可以進一步研究LDRA Testbed在更復雜系統中的應用,以及如何結合其他測試工具實現更全面的自動化測試解決方案。

參考文獻:

[1] 章陽,華皛,于偉,等.動車組制動系統軟件開發集成測試平臺研制 [J].鐵道機車車輛,2020,40(4):13-20.

[2] 吳萌嶺,馬天和,田春,等.列車制動技術發展趨勢探討 [J].中國鐵道科學,2019,40(1):134-144.

[3] 周培.基于LDRA Testbed的民用機載軟件靜態測試方法 [J].計算機測量與控制,2019,27(7):107-110+149.

[4] PEREIRA J D,VIEIRA M. On the Use Of Open-source C/C++ Static Analysis Tools in Large Projects [C]//2020 16th European Dependable Computing Conference(EDCC).Munich:IEEE,2020:97-102.

[5] 王麗娟,劉全周,晏江華,等.基于ASPICE及ISO26262的軟件測試技術研究 [J].中國測試,2020,46(S1):139-143.

[6] 張旸旸,于秀明.軟件評測師教程:第2版 [M].北京:清華大學出版社,2021.

[7] 楊晶.LDRA TestBed在某型機載火控雷達顯控軟件測試中的應用 [J].江蘇科技信息,2017(22):42-45.

[8] 周永健,范明,張淼,等.LDRA TestBed在CTCS2-200C擴展單元軟件測試中的應用 [J].機車電傳動,2016(5):102-106.

[9] 曾壹,王建英,李智,等.鐵路智能調度集中系統軟件集成測試方法研究 [J].鐵道學報,2024,46(6):101-107.

[10] 羅睿梅,萬東燕,唐超,等.基于TestBed/TBrun的高效測試執行方法 [J].制導與引信,2024,45(2):25-28+49.

主站蜘蛛池模板: 亚洲午夜福利在线| 日韩国产黄色网站| 国产精品手机视频| 免费播放毛片| 黄色一及毛片| 国产成人久久777777| 欧美影院久久| 国产一区二区网站| Jizz国产色系免费| 女人av社区男人的天堂| 国产精品尹人在线观看| 国产成人一区免费观看| 3D动漫精品啪啪一区二区下载| 97综合久久| 亚洲综合一区国产精品| 无码久看视频| 九九精品在线观看| 伦精品一区二区三区视频| 国产香蕉在线| 国产精品九九视频| 国产人成在线观看| 三级毛片在线播放| 亚洲一本大道在线| 日本精品视频一区二区| 国产精品女人呻吟在线观看| 国产夜色视频| 拍国产真实乱人偷精品| 国产福利观看| 99在线国产| 亚洲综合久久成人AV| 91视频99| 色综合久久88色综合天天提莫| 性69交片免费看| 欧美午夜理伦三级在线观看| 99久久无色码中文字幕| 日韩av高清无码一区二区三区| 国产精品 欧美激情 在线播放| 久久亚洲国产一区二区| 91最新精品视频发布页| 99久久精品免费看国产电影| 九九香蕉视频| 午夜性爽视频男人的天堂| 91美女视频在线| 二级毛片免费观看全程| 国产精品天干天干在线观看| 99久久国产综合精品2023| 国产成人高清亚洲一区久久| 激情综合图区| 成人在线观看一区| 99re热精品视频中文字幕不卡| 国产精品三级av及在线观看| 欧洲熟妇精品视频| 成人福利在线视频免费观看| 青草91视频免费观看| 亚洲国产理论片在线播放| 欧美精品v欧洲精品| 精品福利国产| 国产精品理论片| 精品国产91爱| 欧美中文字幕在线二区| 成人午夜免费观看| 特级精品毛片免费观看| 亚洲狼网站狼狼鲁亚洲下载| 成人中文在线| 亚洲精品无码人妻无码| 久久精品66| 无遮挡国产高潮视频免费观看| 国产精品无码制服丝袜| 日韩人妻少妇一区二区| 国产麻豆精品久久一二三| 色窝窝免费一区二区三区| 免费看的一级毛片| 国产精品蜜芽在线观看| 国产精品成人一区二区不卡| 亚洲一区二区三区麻豆| 精品亚洲欧美中文字幕在线看| 日韩激情成人| a色毛片免费视频| 日韩a级片视频| 亚洲欧洲日本在线| 精品久久香蕉国产线看观看gif | 日本欧美视频在线观看|