李 勇,樊艷艷,張祥輝
(1.中核控制系統工程有限公司,北京 102401;2.中國核電工程有限公司,北京 100840)
測試環節是工程設計過程中的一個獨立并且非常重要的環節,是保證工程質量和可靠性的關鍵步驟。測試的目的是希望能以最少的人力和時間發現潛在的各種錯誤和缺陷,并反饋給設計人員以及早消除隱患[1,2]。
一個規范的測試過程主要包括有制定測試計劃、編制測試大綱、編寫測試用例、實施測試和生成測試報告等基本的測試活動[3,4]。
1)制定測試計劃。在制定測試計劃時,要充分考慮整個項目的開發時間和開發進度以及一些人為因素和客觀條件等,使得測試計劃是可行的。測試計劃的內容主要有測試的內容、進度安排、測試所需的環境和條件、測試培訓安排等。
2)編制測試大綱。測試大綱是測試的依據,它明確詳盡地規定了在測試中針對系統的每一項功能或特性所必須完成的基本測試項目和測試完成的標準。
3)根據測試大綱編寫測試用例。在設計測試用例的時候,可綜合利用前面介紹的測試用例和設計技術,產生測試設計說明文檔,其內容主要有被測項目、輸入數據、測試過程、預期輸出結果等。
4)實施測試。測試的實施階段是由一系列的測試周期組成的,在每個測試周期中,測試人員和開發人員將依據預先編制好的測試大綱和準備好的測試用例,對被測軟件或設備進行完整的測試。
5)生成測試報告。測試完成后,要形成相應的測試報告,主要對測試進行概要說明,列出測試的結論,指出缺陷和錯誤。
由于核電DCS 系統的規模宏大,實際的測試過程不僅周期長,工作量大,往往同一內容又需多次重復測試。因此,測試過程不僅枯燥乏味,而且需要在實施測試中長時間的保持精神高度集中,這就對測試人員提出苛刻的要求。設計和開發一款測試專用的輔助軟件,根據測試用例輔助測試人員設置或獲取被測對象的狀態,并能根據測試結果自動生成測試報告,會對測試工作有很大的幫助,并對DCS 的設計過程有很大的助益。
1.1.1 實現目標概述
DCS 的測試過程從測試人員具體的操作方面講主要包括:創建測試畫面、讀取和分析測試步驟、設置和獲取被測對象狀態、比對預期結果、填寫測試報告。所以本軟件的主要目的是將上述過程中的非測試人員必需人工完成的部分,由計算機輔助完成,降低測試人員的工作強度。
1.1.2 功能需求分析
為了最大化利用現有資源,結合實際的測試步驟,同時為了降低測試人員的工作強度,本軟件最終實現以下的功能需求:
1)識別和分析現有測試用例。
2)自動顯示當前功能塊,即無需創建測試畫面。
3)對于Level1,自動實現邏輯功能塊狀態的設置和獲取。
4)對于Level2,提示測試人員完成具體的操作或確認。
5)實現延時自動計時功能。
6)自動生成測試報告。
1.2.1 系統模塊劃分
為了滿足輔助測試軟件的要求,本軟件由以下幾部分構成:
輸入輸出模塊:主要實現測試用例的讀取,測試步驟的識別及依據測試結果生成測試報告。
任務分析模塊:主要實現了測試步驟的動作分析,即延時判斷、一層操作與二層提示判斷。
延時模塊:主要實現了延時計時功能。
一層操作模塊:主要實現了一層邏輯功能塊狀態的設置和獲取及顯示。

圖1 系統功能模塊圖Fig.1 System function module diagram
二層提示模塊:主要實現了二層操作的對話框提示功能,提示測試人員需操作或確認的內容。
1.2.2 運行環境
1)用戶界面
用戶界面友好,人性化設計;提示信息和錯誤信息明確清楚;操作方便快捷。
2)軟件開發環境
開發平臺:Visual Studio 2010
開發語言:C#
3)軟件運行環境
運行平臺:.NET Framework 2.0外部需求:IA Series DCS
1.3.1 系統流程圖
完整的系統流程如圖2 所示。
1.3.2 加載測試用例
由于IA 平臺的操作員站中未安裝Office 辦公軟件,所以需要預先將測試用例轉換為標準的HTML 格式文本;然后,利用WebBrowser 控件實現加載HTML 格式的測試用例,并使用HTML 語法分析提取記錄測試步驟的HTML 表格數據;最后,加載到軟件的DataGridView 控件中進行顯示[5,6]。
1.3.3 輸出測試報告
軟件中存儲和顯示數據的控件為DataGridView,需將該控件中的數據和背景色轉換為HTML 格式并輸出到文件中保存。

圖2 系統流程圖Fig.2 System flow chart

表1 測試動作的關鍵字列表Table 1 List of keywords for test actions

圖3 加載測試用例后的界面Fig.3 Interface after loading the test case
1.3.4 任務步驟分析
任務步驟分析是將DataGridView 中Validateion Actions列的文本進行分析,通過提取關鍵字的方式來確定具體的測試動作,見表1。
1.3.5 延時操作
延時操作采用StopWatch 類進行精確計時,并配合ProgressBar 進行實時進度的顯示[7]。
1.3.6 一層操作
一層操作主要是調用IA 平臺提供的OM 對象管理進行底層功能塊狀態的設置和獲取,同時可調用畫面調用函數實現在FoxView 中的實時顯示。
1.3.7 二層操作
由于昌江和方福項目的結構特點,二層顯示畫面是搭建在另外的平臺上的,所以二層畫面的操作和確認需要測試人員按照測試輔助軟件的對話框提示手動完成,并根據操作結果點選對話框的Yes 或No 按鈕反饋給測試輔助軟件。
實驗中選用最復雜的功能圖進行測試,本例中選擇方家山核電項目GGR 系統的09F864508-3NC05 1GGR LD 01044、LD 01045 和LD 01046 作為被測對象進行驗證。LD 01045 和LD 01046 是同樣的兩個風機的控制邏輯圖;LD 1044 是兩風機的選擇、切換、啟停邏輯,實現了兩風機的相互備用功能。
由于測試環境只有IA 平臺的仿真機,不具備KIC 環境,故所有二層操作均由一層功能塊模擬的方式進行。
如圖3、圖4、圖5 分別為加載測試用例、測試完成和測試報告的截圖。

圖4 測試完成后的界面Fig.4 Interface after the test is completed
測試軟件在計算機軟件測試領域已得到廣泛的應用,實踐證明借助測試軟件可以最大限度地縮短測試時間,優化性能和加速軟件的開發。在工程領域,特別是核電DCS領域,也同樣需要這樣的軟件來保證工程的質量和進度以及節省人力成本和降低工作強度。
通過第2 章的試驗證明,在一層純邏輯測試中可以借助該軟件自動完成所有的測試工作,同時在一二層混合測試中測試人員只需按照提示操作即可簡單完成測試工作,并生成測試報告,這將極大地降低測試工作的強度,并提高了測試的準確性。
未來可考慮在輔助測試軟件中引入網絡化的編程思想,將單機版的輔助測試軟件擴展成基于C/S 或B/S 方式,具有測試任務分配和管理、測試結果自動提交、任務進度統計等多功能的輔助測試系統,使之具有更實際和廣泛的應用前景。

圖5 測試報告截圖Fig.5 Test report screenshot