之前的《工控防火墻測試之性能篇》、《工控防火墻測試之功能篇_Fuzzing測試》兩篇文章已經跟大家分享了工控網絡設備的功能測試和性能測試,今天跟大家分享下產品級質量保證的另一個重要環節,穩定性測試。
穩定性測試在產品級質量保證中具有重要的意義,穩定性測試的充分與否將直接影響產品在客戶現場的運行表現。只有在未交付客戶前對設備進行長期的、充分的穩定性測試,才能讓我們對設備的功能執行情況和穩定性有個快速、感性的認知。
通常的穩定性測試過程中存在著針對性不強,并且缺乏對整個過程的量化。本篇文章就站在工程實踐的角度,來有針對性地對工控網絡硬件設備進行穩定性測試,并且量化整個測試過程。
在本文中,我們將產品級的穩定性分解成3部分,硬件、操作系統、應用程序(我們的主程序),這三大方面的穩定性。
三方面穩定性
硬件的穩定性:主要涵蓋CPU、PCB板、閃存卡、網卡。具體測試點包含:
1)CPU溫度;
2)PCB溫度;
3)閃存卡讀寫壽命;
4)網卡大量收發包;
5)網卡PHY芯片溫度。
操作系統的穩定性:
1)CPU的分配使用;
2)內存使用
應用主程序的穩定性(業務面):
1)CPU資源申請;
2)內存資源申請;
3)CPU資源釋放
4)內存資源釋放;
5)crash監控;
6)主進程重啟監控;
應用主程序管理面的穩定性
管理連接監控
一、“硬件穩定性”具體的測試思路及執行
1.Python自動化腳本,構造、發送大量CPU密集型報 文:分片報文(普通IP分片)
2.CPU在長時間轉發分片報文的過程中,CPU溫度會被打上去;
3.網卡長時間、高速轉發報文,其轉發報文數可以被直觀地驗證;PCB網卡PHY芯片溫度也會被打上去!
4.CPU溫度、網卡PHY芯片溫度的快速升高會帶動環境溫度上升;
5.配置具體業務流觸發大量閃存卡讀寫操作,對比閃存卡實際讀寫次數與標稱壽命;
6.使用python腳本自動記錄CPU溫度數值;
7.使用python腳本自動記錄PHY芯片溫度數值;
8.使用python腳本自動記錄PCB溫度數值;
9.使用python腳本自動記錄網卡收發包數量
10.使用python腳本分別畫出CPU溫度、PHY芯片溫度、PCB溫度的曲線圖,可以直觀地分析溫度增長是否是符合線性預期;最高值是否符合預期。
CPU溫度監控曲線圖:

網卡發包曲線圖:

二、“主程序穩定性”具體的測試思路及執行
1.Python自動化腳本,構造、發送大量CPU密集型報文:分片報文(普通IP分片)+ 業務層分片報文(Modbus報文分片、IEC報文分片、DNP3報文分片、S7報文分片、Fins報文分片、Profinet報文分片等。),讓主程序去向操作系統申請大量CPU資源和內存資源,把CPU使用率和內存使用率打上去;
2.使用Python自動化腳本,對步驟1中設備的主程序向操作系統申請CPU資源和內存資源的過程進行全程跟蹤、記錄;
3.使用Python自動化腳本,分別對步驟2中記錄的CPU使用率和內存使用率進行圖表繪制,可以直觀地看出資源的申請使用是否線性化,最高值是否超出預期;
4.使用Python自動化腳本對CPU資源釋放、內存資源釋放進行全程跟蹤、記錄并畫圖曲線展示,以直觀地驗證主程序在進行CPU和內存的資源釋放時也是線性的,不會有導致crash和重啟的風險;
5.使用Python自動化腳本全程記錄在打CPU資源和內存資源過程中,設備是否發生了crash。如果發生,自動化腳本會捕獲該事件,并且自動記錄發生crash的日期時間、crash了幾次和crash文件的名稱;同時會自動向相關人員發送郵件通報這一事件。
6. 使用Python自動化腳本全程記錄在打CPU資源和內存資源過程中,應用主程序是否發生了重啟。如果發生會自動向相關人員發送郵件通報這一事件。
內存使用率和CPU使用率監控曲線圖:

內存資源釋放和CPU資源釋放(即泄洪時)監控曲線圖:

三、“系統穩定性”具體的測試思路及執行
為了驗證操作系統的穩定性,可以在進行“主程序穩定性”過程中,制造些“異常”場景或事件去導致操作系統的CPU和內存使用飆升,然后去驗證“系統穩定性”及對我方主程序穩定性及功能的影響。
具體為:
1.按照“主程序”穩定性中描述的使用Python自動化腳本打CPU資源和內存資源;
2.使用Python自動化腳本每隔30秒去ssh到系統,但是不要關閉連接。這樣,在大概30-60分鐘內系統的CPU資源就會被打到95%以上。
實際測試結果,在這種情形下,我們的系統會把占用CPU過多的SSH連接殺掉,此時自動化腳本將不能繼續進行SSH連接,系統的CPU使用率迅速回到異常前水平。
同時我們的主程序在這種CPU資源極限條件下沒有發生crash和重啟,功能也正常執行。
四、“主程序管理面的穩定性”
1.使用Python自動化腳本發送大量能夠觸發業務流的報文
2.使用Python腳本監控是否有與管理面連接無法建立的情況,包括設計規格內和超出設計規格的場景,超出設計規格流量停止后應該可以自愈。如果有發生上下線的情況自動發送郵件通知。
3.業務流數據傳輸時的自動監控
管理面數據傳輸監控曲線圖:

采用本自動化穩定性測試方案的好處:
1.可以在項目推進過程中,與功能測試并行進行,提前暴露、發現嚴重的問題(多為與CPU、內存分配使用、回收及設備crash相關)。
2.可以實現無人值守,測試是在自動化部署中進行,并且有自動化跟蹤步驟,如果出現問題會第一時間通知開發和測試人員,第一時間定位問題,第一時間解決問題!
下班和周末時間都可以連續不中斷運行!
結合自動化對穩定性進行高效的、充分的、高強度的測試,可以讓我們對自己產品的實際運行狀況有了整體、可量化的認知,也對產品在客戶現場能夠長時間、穩定運行有了充足的信心!同時,也為后期進行的壓力測試奠定了良好的測試基礎。
北京威努特技術有限公司(以下簡稱“威努特”), 是國內工控網絡安全領軍企業、全球六家榮獲國際自動化協會安全合規學會ISASecure CRT Tool認證企業之一和亞太地區唯一國際自動化學會(ISA)全球網絡安全聯盟(GCA)創始成員。
威努特作為國家高新技術企業,以創新的“白環境”整體解決方案為核心,自主研發了5大類30款全系列網絡安全專用產品,擁有64項發明專利、64項軟件著作權、70項原創漏洞證明等核心知識產權。積極牽頭和參與工控網絡安全領域國家、行業標準制定,受邀出色完成新中國70周年慶典、中共十九大、全國兩會等重大活動的網絡安保任務,被授予“國家重大活動網絡安保技術支持單位”,得到了中央網信辦、公安部、工信部等國家政府部門的高度認可。迄今已成功為電力、軌道交通、石油石化、軍工、煙草、市政、智能制造、冶金等國家重要行業1000多家工業企業提供了全面有效的安全保障。
威努特始終以“專注工控,捍衛安全”為使命,致力于為我國關鍵信息基礎設施網絡空間安全保駕護航!