張一馳
摘 要:隨著現(xiàn)代化電廠儀控工程規(guī)模的不斷發(fā)展,工程中信號點測試是工程安全及質(zhì)量保證非常重要的一環(huán),本文首先闡述了開發(fā)該自動測試工具的必要性,然后重點介紹了該自動測試工具的總體架構(gòu)設計以及具體實現(xiàn)功能,希望能對相關行業(yè)的測試工作起到一定的幫助。
關鍵詞:儀控系統(tǒng);軟件開發(fā);測試工具
中圖分類號:TP273 文獻標志碼:A
0 引言
電廠儀控工程中信號點的數(shù)量成千上萬,過去往往是通過人工逐個進行測試,效率非常低下,而采用計算機程序進行測試,將大大提高測試效率,同時也保證了測試的準確性,同時測試工具還具有人工無法達到的批量修改測試參數(shù)、多線程執(zhí)行、測試時間間隔批量修改等功能,為儀控工程的質(zhì)量提供更完善的保障。
1 工具設計目標
現(xiàn)代的電廠儀控系統(tǒng)工程中,需要進行測試的信號點數(shù)以萬計,過去通過人工測試往往費時費力,并且質(zhì)量得不到有效的保障,采用編程語言進行自動化測試替代人工測試是大勢所趨,通過用戶調(diào)研以及用戶根據(jù)用戶提出需求,該自動測試工具應具有多用例、多參數(shù)、批量執(zhí)行的功能,以保證用戶能更好地進行測試,提升測試效率,從而更好地為公司服務。
2 工具設計原則
(1)標準化,規(guī)范化,用于該自動測試工具的測試用例以及生成出來的測試報告均采用行業(yè)規(guī)范標準的模板,以確保測試結(jié)果能方便地被使用或其他文件引用。
(2)可靠性,該工具應當具有比較好的容錯能力以及錯誤處理能力,保證該自動測試工具不會因為測試用例的不正當填寫或錯誤寫法而崩潰。
(3)可擴展性,該自動測試工具后臺有預留相關接口,用來和其他系統(tǒng)互相通信, 以便于相關測試數(shù)據(jù)的流轉(zhuǎn)以及使用。
(4)可操作性,該自動測試工具應具有良好的人機交互界面,方便使用者的理解,以及進行相關操作。
(5)可修改性,以合理的軟件架構(gòu)設計該自動測試工具,使該自動測試工具在以后的迭代更易于進行重構(gòu)。
(6)效率性,在達到原理要求功能指標的前提下,程序運行所需時間愈短和占用存儲容量愈小,則效率愈高。
(7)容易理解,軟件的可理解性是其可靠性和可修改性的前提。它并不僅僅是文檔清晰可讀的問題,更要求軟件本身具有簡單明了的結(jié)構(gòu)。這在很大程度上取決于設計者的洞察力和創(chuàng)造性以及對設計對象掌握得透徹程度,當然它還依賴于設計工具和方法的適當運用。
3 工具總體結(jié)構(gòu)設計
C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。
C#是面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于MICROSOFT .NET平臺的應用程序,MICROSOFT .NET提供了一系列的工具和服務來最大程度地開發(fā)利用計算與通信領域。
所以本自動測試工具采用C#開發(fā),本自動測試工具是一款桌面級別的單機軟件,總體架構(gòu)如圖1所示,用戶界面采用Winfrom框架開發(fā),數(shù)據(jù)庫采用Sqlite作為本地數(shù)據(jù)庫存儲數(shù)據(jù),總體結(jié)構(gòu)可分為界面層、業(yè)務邏輯層以及數(shù)據(jù)訪問層。其中界面主要模塊可分為項目模塊、執(zhí)行測試模塊、測試報告模塊、參數(shù)修改模塊。
4 自動測試工具功能概況
該自動測試工具界面總共分為4個模塊(圖2),導入測試用例模塊、參數(shù)修改模塊、執(zhí)行項目模塊以及測試報告模塊,自動測試工具通過導入Excel將測試用例表格輸入,然后執(zhí)行項目模塊通過調(diào)用底層C++代碼接口以實現(xiàn)信號的模擬輸入以及取得信號的實時數(shù)據(jù)。
項目執(zhí)行模塊中,該模塊采用多線程技術支持多線程執(zhí)行測試用例,及時顯示每一個項目每一步執(zhí)行的結(jié)果以及狀態(tài),以方便用戶查看當前測試執(zhí)行的情況,同時該工具也支持暫停功能,用戶能在相對應的步驟進行暫停操作。
用戶參數(shù)修改模塊中,用戶可以設置每一步測試的時間間隔,每一步測試的延遲時間,報告的時間及操作人員名稱以及其他相關的參數(shù)。
測試報告模塊中,用戶能在界面中看到每一步的執(zhí)行結(jié)果以及執(zhí)行時間,并且可以從相關文件模板導出自動測試報告結(jié)果的pdf。
邏輯層內(nèi)部邏輯處理模塊是采用相關的C++代碼來調(diào)用底層接口,用代碼模擬相關的點的輸出,底層采用C++的理由是為了保證了數(shù)據(jù)通信處理的效率,相對于C#,C++的處理速度更快,更高效,底層的代碼部分代碼如圖3所示。
為了保證測試數(shù)據(jù)的完整性,當每次用例執(zhí)行完成后,自動測試工具將自動通過數(shù)據(jù)庫Sqlite模塊存在本地,記錄每次執(zhí)行的結(jié)果以及過程,保證了用戶可對操作的歷史記錄可隨時進行回看,保證用戶能及時回復到歷史測試的某一步進行查看。
結(jié)語
該自動測試工具使用的是C#開發(fā),基本實現(xiàn)了儀控系統(tǒng)中的相關自動執(zhí)行測試用例,批量執(zhí)行參數(shù)自定義等功能,該自動測試工具為儀控系統(tǒng)中信號點的測試提供了一個種新的測試方式,方便用戶執(zhí)行測試方案,充分發(fā)揮了計算機高效穩(wěn)定多線程的優(yōu)勢,從而為公司提供了更好的服務,節(jié)約了人力的成本。
參考文獻
[1]高楠,焦昆,尹濤.人機交互軟件設計原則及使用技術淺析[J].信息通信,2013(6):173.
[2]姜維.信息技術在電力系統(tǒng)中的應用研究[J].中國科技信息, 2013(19):77-78.endprint