李 勇,樊艷艷,張祥輝
(1.中核控制系統(tǒng)工程有限公司,北京 102401;2.中國核電工程有限公司,北京 100840)
測試環(huán)節(jié)是工程設(shè)計過程中的一個獨立并且非常重要的環(huán)節(jié),是保證工程質(zhì)量和可靠性的關(guān)鍵步驟。測試的目的是希望能以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷,并反饋給設(shè)計人員以及早消除隱患[1,2]。
一個規(guī)范的測試過程主要包括有制定測試計劃、編制測試大綱、編寫測試用例、實施測試和生成測試報告等基本的測試活動[3,4]。
1)制定測試計劃。在制定測試計劃時,要充分考慮整個項目的開發(fā)時間和開發(fā)進度以及一些人為因素和客觀條件等,使得測試計劃是可行的。測試計劃的內(nèi)容主要有測試的內(nèi)容、進度安排、測試所需的環(huán)境和條件、測試培訓(xùn)安排等。
2)編制測試大綱。測試大綱是測試的依據(jù),它明確詳盡地規(guī)定了在測試中針對系統(tǒng)的每一項功能或特性所必須完成的基本測試項目和測試完成的標(biāo)準(zhǔn)。
3)根據(jù)測試大綱編寫測試用例。在設(shè)計測試用例的時候,可綜合利用前面介紹的測試用例和設(shè)計技術(shù),產(chǎn)生測試設(shè)計說明文檔,其內(nèi)容主要有被測項目、輸入數(shù)據(jù)、測試過程、預(yù)期輸出結(jié)果等。
4)實施測試。測試的實施階段是由一系列的測試周期組成的,在每個測試周期中,測試人員和開發(fā)人員將依據(jù)預(yù)先編制好的測試大綱和準(zhǔn)備好的測試用例,對被測軟件或設(shè)備進行完整的測試。
5)生成測試報告。測試完成后,要形成相應(yīng)的測試報告,主要對測試進行概要說明,列出測試的結(jié)論,指出缺陷和錯誤。
由于核電DCS 系統(tǒng)的規(guī)模宏大,實際的測試過程不僅周期長,工作量大,往往同一內(nèi)容又需多次重復(fù)測試。因此,測試過程不僅枯燥乏味,而且需要在實施測試中長時間的保持精神高度集中,這就對測試人員提出苛刻的要求。設(shè)計和開發(fā)一款測試專用的輔助軟件,根據(jù)測試用例輔助測試人員設(shè)置或獲取被測對象的狀態(tài),并能根據(jù)測試結(jié)果自動生成測試報告,會對測試工作有很大的幫助,并對DCS 的設(shè)計過程有很大的助益。
1.1.1 實現(xiàn)目標(biāo)概述
DCS 的測試過程從測試人員具體的操作方面講主要包括:創(chuàng)建測試畫面、讀取和分析測試步驟、設(shè)置和獲取被測對象狀態(tài)、比對預(yù)期結(jié)果、填寫測試報告。所以本軟件的主要目的是將上述過程中的非測試人員必需人工完成的部分,由計算機輔助完成,降低測試人員的工作強度。
1.1.2 功能需求分析
為了最大化利用現(xiàn)有資源,結(jié)合實際的測試步驟,同時為了降低測試人員的工作強度,本軟件最終實現(xiàn)以下的功能需求:
1)識別和分析現(xiàn)有測試用例。
2)自動顯示當(dāng)前功能塊,即無需創(chuàng)建測試畫面。
3)對于Level1,自動實現(xiàn)邏輯功能塊狀態(tài)的設(shè)置和獲取。
4)對于Level2,提示測試人員完成具體的操作或確認(rèn)。
5)實現(xiàn)延時自動計時功能。
6)自動生成測試報告。
1.2.1 系統(tǒng)模塊劃分
為了滿足輔助測試軟件的要求,本軟件由以下幾部分構(gòu)成:
輸入輸出模塊:主要實現(xiàn)測試用例的讀取,測試步驟的識別及依據(jù)測試結(jié)果生成測試報告。
任務(wù)分析模塊:主要實現(xiàn)了測試步驟的動作分析,即延時判斷、一層操作與二層提示判斷。
延時模塊:主要實現(xiàn)了延時計時功能。
一層操作模塊:主要實現(xiàn)了一層邏輯功能塊狀態(tài)的設(shè)置和獲取及顯示。
圖1 系統(tǒng)功能模塊圖Fig.1 System function module diagram
二層提示模塊:主要實現(xiàn)了二層操作的對話框提示功能,提示測試人員需操作或確認(rèn)的內(nèi)容。
1.2.2 運行環(huán)境
1)用戶界面
用戶界面友好,人性化設(shè)計;提示信息和錯誤信息明確清楚;操作方便快捷。
2)軟件開發(fā)環(huán)境
開發(fā)平臺:Visual Studio 2010
開發(fā)語言:C#
3)軟件運行環(huán)境
運行平臺:.NET Framework 2.0外部需求:IA Series DCS
1.3.1 系統(tǒng)流程圖
完整的系統(tǒng)流程如圖2 所示。
1.3.2 加載測試用例
由于IA 平臺的操作員站中未安裝Office 辦公軟件,所以需要預(yù)先將測試用例轉(zhuǎn)換為標(biāo)準(zhǔn)的HTML 格式文本;然后,利用WebBrowser 控件實現(xiàn)加載HTML 格式的測試用例,并使用HTML 語法分析提取記錄測試步驟的HTML 表格數(shù)據(jù);最后,加載到軟件的DataGridView 控件中進行顯示[5,6]。
1.3.3 輸出測試報告
軟件中存儲和顯示數(shù)據(jù)的控件為DataGridView,需將該控件中的數(shù)據(jù)和背景色轉(zhuǎn)換為HTML 格式并輸出到文件中保存。
圖2 系統(tǒng)流程圖Fig.2 System flow chart
表1 測試動作的關(guān)鍵字列表Table 1 List of keywords for test actions
圖3 加載測試用例后的界面Fig.3 Interface after loading the test case
1.3.4 任務(wù)步驟分析
任務(wù)步驟分析是將DataGridView 中Validateion Actions列的文本進行分析,通過提取關(guān)鍵字的方式來確定具體的測試動作,見表1。
1.3.5 延時操作
延時操作采用StopWatch 類進行精確計時,并配合ProgressBar 進行實時進度的顯示[7]。
1.3.6 一層操作
一層操作主要是調(diào)用IA 平臺提供的OM 對象管理進行底層功能塊狀態(tài)的設(shè)置和獲取,同時可調(diào)用畫面調(diào)用函數(shù)實現(xiàn)在FoxView 中的實時顯示。
1.3.7 二層操作
由于昌江和方福項目的結(jié)構(gòu)特點,二層顯示畫面是搭建在另外的平臺上的,所以二層畫面的操作和確認(rèn)需要測試人員按照測試輔助軟件的對話框提示手動完成,并根據(jù)操作結(jié)果點選對話框的Yes 或No 按鈕反饋給測試輔助軟件。
實驗中選用最復(fù)雜的功能圖進行測試,本例中選擇方家山核電項目GGR 系統(tǒng)的09F864508-3NC05 1GGR LD 01044、LD 01045 和LD 01046 作為被測對象進行驗證。LD 01045 和LD 01046 是同樣的兩個風(fēng)機的控制邏輯圖;LD 1044 是兩風(fēng)機的選擇、切換、啟停邏輯,實現(xiàn)了兩風(fēng)機的相互備用功能。
由于測試環(huán)境只有IA 平臺的仿真機,不具備KIC 環(huán)境,故所有二層操作均由一層功能塊模擬的方式進行。
如圖3、圖4、圖5 分別為加載測試用例、測試完成和測試報告的截圖。
圖4 測試完成后的界面Fig.4 Interface after the test is completed
測試軟件在計算機軟件測試領(lǐng)域已得到廣泛的應(yīng)用,實踐證明借助測試軟件可以最大限度地縮短測試時間,優(yōu)化性能和加速軟件的開發(fā)。在工程領(lǐng)域,特別是核電DCS領(lǐng)域,也同樣需要這樣的軟件來保證工程的質(zhì)量和進度以及節(jié)省人力成本和降低工作強度。
通過第2 章的試驗證明,在一層純邏輯測試中可以借助該軟件自動完成所有的測試工作,同時在一二層混合測試中測試人員只需按照提示操作即可簡單完成測試工作,并生成測試報告,這將極大地降低測試工作的強度,并提高了測試的準(zhǔn)確性。
未來可考慮在輔助測試軟件中引入網(wǎng)絡(luò)化的編程思想,將單機版的輔助測試軟件擴展成基于C/S 或B/S 方式,具有測試任務(wù)分配和管理、測試結(jié)果自動提交、任務(wù)進度統(tǒng)計等多功能的輔助測試系統(tǒng),使之具有更實際和廣泛的應(yīng)用前景。
圖5 測試報告截圖Fig.5 Test report screenshot