★北京廣利核系統工程有限公司高慶怡,黃太新,張海濱
關鍵詞:自動化測試;算法編譯器;核電DCS;國產;IEC61131-3
核電DCS算法編譯器的核心任務是擔負著核電DCS控制算法的編譯工作,其編譯正確性對核電站儀控系統的安全穩定運行具有重要的意義。當前基于IEC61131-3標準的國產核電DCS算法編譯器研發正處于快速迭代期,頻繁的版本更新與全維度測試需求導致大量重復性操作的產生,嚴重制約測試效率,造成人力資源與時間成本的雙重負擔[1]。
目前,針對國產核電DCS算法編譯器的測試驗證方式主要依賴人工手動開展,包括逐一組態測試工程、點擊相關功能按鍵、觀察執行過程、詳細記錄測試結果以及主觀判斷被測程序是否存在缺陷等步驟[7]。受主觀因素影響,測試人員在面對測試用例數量巨大、測試路徑復雜和組合測試等情況時,存在忽略掉細微的錯誤的可能性,難以保證軟件質量達到最理想狀態[7]。同時國產核電DCS算法編譯器基于IEC61131-3標準實現,需有一定標準知識儲備,對測試人員技術要求高,新成員難以快速投入測試,導致整體資源利用率不高。
為解決上述問題,本文提出了基于IEC61131-3標準的國產核電DCS算法編譯器自動化測試方法。該方法突破了傳統人工分段式執行模式,創新性構建了模塊化自動測試框架,實現了全鏈路自動執行,有效提高了測試效率,極大地減少了人工操作節點。同時,其模塊化設計降低了自動測試框架腳本維護人員的專業技能要求。
1 國產核電DCS算法編譯器自動化測試方法
基于QT研制的IEC61131-3標準算法編譯器專用自動執行工具(以下簡稱:定制工具),可依據固定模式的驅動腳本完成測試工程的自動編譯、部署、執行、結果比對及測試結果可視化呈現。鑒于該工具在重復性測試任務中的顯著優勢及其與國產核電DCS算法編譯器的深度適配特性,本方法引入其作為自動測試執行的重要組成部分。
同時,現有研究表明Python在自動化測試領域展現出強大生命力,其應用覆蓋測試框架開發、工具庫構建及電氣電子控制系統等專業測試場景[3]。本研究利用Python語言在自動化測試中的強大優勢,創新性構建了模塊化自動測試框架,重點突破了驅動腳本自動生成與定制工具自動執行環節,最大限度降低了人工干預。
1.1 基本原理
本方法通過使用Python編寫的驅動腳本自動生成模塊,讀取測試工程路徑和驅動模板文件,進行數據提取、解析、分類篩選,自動生成與測試工程匹配的定制工具驅動腳本;通過使用Python語言編寫的定制工具自動驅動模塊,啟動定制工具并自動讀取驅動腳本、配置參數和運行,開展測試執行,收集測試數據并輸出測試結果和相關需追蹤的數據。具體流程如圖1所示,以下做詳細闡述。
圖1國產核電DCS算法編譯器自動化測試流程示意圖
1.2 模塊化設計
1.2.1 驅動腳本自動生成模塊設計
本模塊采用三步式數據流處理方式,包含測試工程信息采集、數據解析和定制工具驅動腳本生成。具體流程如圖2所示。
(1)工程信息與特征采集。“遍歷路徑函數”采用遞歸式文件遍歷算法對輸入的測試工程保存路徑進行全量掃描,獲取有效工程實例的絕對路徑集合。同步加載輸入的驅動模板文件,通過“信息分解函數”提取出驅動模板信息。這些信息通過內存型數據結構(列表/字典)建立臨時數據池,存儲預處理后的路徑集合與模板參數集合,自動傳遞至后續結構化數據解析與預處理流程。
(2)結構化數據解析與預處理。“解析與預處理函數”依據存儲于內存的絕對路徑識別測試工程數據存儲文件并進行解析,讀取測試工程的配置文件(如JSON/XML格式的界面元素映射表)及結構化數據文件(如OpenXML語言導出的數據元素樹)。采用ConfigParser處理工程配置數據,提取工程名稱、依賴項等關鍵參數;采用XML.etree處理OpenXML語言導出的數據元素樹,提取驗證數據等。將數據清洗后的測試工程信息與提取的驅動模板參數整合,獲得結構化的驅動腳本數據集,存儲到內存或日志中自動傳遞至定制工具驅動腳本生成環節。
(3)定制工具驅動腳本生成。將解析所得的驅動腳本數據集傳入“驅動腳本生成函數”,利用Python語言的文件I/O操作、正則表達式匹配機制等,依據模板自動生成定制工具驅動腳本并保存到本地路徑,所得驅動腳本與測試工程為1對1的映射關系。
本模塊的特點在于降低了對測試人員的技術要求,尤其適用于高頻迭代的敏捷開發場景。整體采用三步式數據流轉,各函數實現功能單一且接口形式明確。對于測試人員(用戶)而言,僅需指定工程根目錄和模板文件兩參數,微調幾行簡單代碼,即可實現零人工干預的定制工具驅動腳本生成。
圖2 測試腳本自動化生成設計流程示意圖
1.2.2 定制工具自動驅動模塊設計
本模塊構建三層數據流轉,包含進程控制、數據配置運行、異常監視,具體流程如圖3所示。
(1)進程控制。以定制工具安裝路徑為初始化參數,通過“自啟動函數”進程控制模塊實現進程的程序化控制,用于啟動工具。
(2)數據配置與運行。利用“工具配置與運行函數”,通過向定制工具動態注入預先定義測試環境參數、腳本路徑等運行配置信息,實現全鏈路自動化運行,徹底替代人工交互模式。
(3)實時監控。定制工具開始運行后,會依據驅動腳本依次針對測試工程進行自動編譯、下裝以及結果驗證的操作,并將測試結果進行可視化展示。在定制工具執行過程中,利用“異常保護函數”實時捕獲標準輸出流與錯誤日志,處理工具異常。
本模塊的特點在于創新地構建了Python驅動“配置—執行—監控—恢復”的閉環管理,在驅動腳本編制完成后,自動驅動定制工具啟動、參數注入、運行、實時監控異常并處理,實現24小時自動化執行能力,提高了資源利用率,能有效避免人工操作帶來的誤差。
圖3執行流程自動化驅動設計流程示意圖
2 實驗分析
本文結合某核電站項目國產DCS算法組態編譯器測試,進行傳統測試方法和本文自動化方法對照實驗。
使用傳統方法開展測試,共耗時60人日完成,覆蓋120個測試工程,平均測試執行效率為2個天,整體資源利用率50%左右。引入本方法后,測試耗時約為30人日,整體測試時間縮短約50%,覆蓋120個測試工程,平均執行效率為4個天,其中驅動腳本編寫和調試耗時5人日,定制工具測試執行耗時10人日。且后期因工程數據變動導致的修改時間預計相比傳統方法將減少75%,顯著提升了測試團隊的響應效率與腳本質量穩定性,可見本方法是可行的。
從實驗效果來看,本文方法與傳統測試方法在需求覆蓋程度和缺陷檢出能力上持相當水平且滿足核電DCS應用要求。但本文方法耗時更少,資源利用率、結果穩定可靠程度和維護簡便性上更高,如表1所示。我們分析本文方法與傳統測試方法在需求覆蓋程度和缺陷檢出能力上持相當水平的原因發現,本文方法集中于測試執行層面的效率提高,在實驗過程中作為輸入的測試用例工程尚處于人工手動創建狀態,導致本文方法在上述兩項指標的評價中與傳統方法差別不大,這也表明本方法還存在一定可優化空間。
表1 數據對比
3 結論
本文聚焦于國產核電DCS算法編譯器自動化測試方法的研究,其核心創新在于將原有分段式人工測試執行流程整合為一鍵式計算機自動實現,通過減少人工操作節點顯著提升測試效率,降低了人為干預引發的操作風險。已有應用效果表明了本方法的可行性,本方法能夠極大地提高執行效率和資源利用率,模塊化框架設計邏輯清晰,對人員技術要求不高,后期維護方便。
同時,本方法實驗過程中也識別到可優化空間。測試工程作為本方法輸入源頭,是由人工設計,如果人工設計使得長時間執行揭錯測試程序[2],即使執行效率再高同樣也會導致編譯器的測試效果不好。許多學者對基于IEC61131-3的測試用例自動化生成進行了深入研究,并取得了大量的研究成果[4-6]。故在下一階段中,研究人員將進一步嘗試將自動化手段和測試用例設計相結合,進一步擴大國產核電DCS算法編譯器的測試覆蓋率和深度,進一步提高自動化測試實現程度和自適應能力。
作者簡介:
高慶怡(2000-),女,北京人,助理工程師,學士,現就職于北京廣利核系統工程有限公司,主要從事核電儀控系統軟件測試的相關工作。
參考文獻:
[1]鄭清清.核電DCS組態軟件自動化測試方法研究[J].自動化博覽,2021,38(03):56-60.
[2]吳江昶.基于編譯器自身覆蓋的編譯器測試技術研究[D].武漢:華中科技大學,2021.
[3]聶菊榮.基于Python的自動化測試軟件設計與實現[J].信息記錄材料,2025,26(02):90-92+116.
[4]陳英豪.面向IEC61131-3ST語言測試用例自動化生成方法的研究與實現[D].上海:華東師范大學,2024.
[5]郝麗.面向IEC61131-3ST語言的自動化測試研究與實現[D].上海:華東師范大學,2019.
[6]楊靜.編譯器的語法分析測試用例生成方法研究[D].武漢:華中科技大學,2013.
[7]谷偉豪,于韶飛,周廣昌,等.人工自動技術在軟件測試領域的應用[J].信息技術與標準化,2024,(11):92-96.
摘自《自動化博覽》2025年12月刊







案例頻道