?

智能保護裝置軟件模塊動態仿真測試工具研制

2021-12-23 12:50張超永許英豪
測試技術學報 2021年6期
關鍵詞:測試工具測試人員源代碼

劉 沛,張超永,許英豪,王 鵬

(許繼電氣股份有限公司,河南 許昌 461000)

0 引 言

軟件模塊具有結構清晰、可重用性高等特點,廣泛應用于特高壓交流、智能變電站保護裝置、穩控裝置等電力系統重點項目的智能保護裝置中[1].針對模塊開展軟件白盒測試,是夯實保護裝置產品軟件基礎的重要手段,在提升保護裝置產品軟件質量上發揮了重要作用.

目前,軟件模塊開展軟件動態測試雖然取得一定的成效,但仍存在以下不足:

1) 模塊測試主要針對軟件內部源代碼開展測試,對人員素質要求較高,同時當前缺乏適用的測試工具,依靠人工開展測試的效率有待提高[2].

2) 基礎模塊作為元件庫的形式存在,數量龐大,質量要求高,隨著批量測試需求的增加,需要創新測試方法和手段來保證測試進度.

3) 測試驅動、測試用例、測試數據等保存的方法和格式過于簡單,不利于軟件模塊快速迭代開發對回歸測試的需求,需要規范化建立完善的測試過程數據存儲機制,以便于軟件模塊的回歸測試[3,4].

4) 僅依靠人員的交叉覆蓋測試難以控制人為的偶發性失誤,容易造成測試不充分或測試質量參差不齊的情況.

5) 軟件模塊級的動態測試對應用產品依賴性高、針對性強,導致市場上很難出現針對軟件模塊動態測試通用工具[5].

針對以上測試現狀,本文設計開發一套嵌入式軟件保護模塊動態仿真測試工具,旨在解決測試過程中的難題,提高測試效率和測試質量,支撐軟件研發質量的持續提升.

1 動態仿真測試工具需求分析

1.1 功能性需求

軟件模塊的一般測試過程如圖 1 所示,測試人員拿到一個軟件模塊后,首先,根據軟件模塊應用場景,開發測試驅動,確保軟件模塊能夠編譯通過、動態運行;然后,編輯測試用例,在測試驅動中執行用例;最后,查看測試結果給出判斷,完成軟件模塊的動態測試[5].

圖 1 軟件模塊測試過程圖

在整個測試過程中,有3個核心步驟,① 編輯用例,② 開發測試驅動,③ 查看測試結果并給出判斷.目前,這3個過程全靠測試人員手動完成,其中測試用例是測試人員在TXT中文本中手動編輯; 驅動是測試一個模塊,測試人員開發一個驅動,測試執行完再由測試人員去查看結果.對此,工具應具備以下幾種基本功能:

1) 測試用例自動生成:測試工具應能對被測源代碼進行靜態分析,挖掘出代碼變量、邏輯等重要信息,并根據這些重要信息生成測試用例供測試人員選擇;

2) 強大的用例管理功能:隨著保護裝置產品的不斷升級,軟件規模越來越大,模塊數量越來越多,測試用例成指數級增長,如何管理好這些用例、維護好用例庫已成為一個亟待解決的問題,測試工具應具備強大的測試用例管理功能;

3) 具備通用性強的測試驅動:測試工具應有一個通用性很強的仿真數據模型[6],以避免每次新軟件模塊的測試都需要重寫測試驅動;

4) 測試過程自動化:工具應具備測試過程的高度自動化,一個軟件模塊設計完測試用例后,應能達到不需要人工干預的情況下完成測試自動執行、結果自動判別.

5) 測試信息靈活展示:工具應具備展示當前測試結果、歷史測試結果、測試過程信息等功能.

1.2 非功能性需求

測試工具除了功能性滿足基本要求外,還應滿足以下非功能性要求:

1)易用性:測試工具的使用應符合測試人員的工作習慣,使測試人員不需要培訓或進行簡單的培訓就能輕易使用工具[7].能達到簡單易用、界面友好等基本要求;

2)可擴展性:隨著保護裝置產品的更新換代,軟件模塊的應用環境難免出現新的變化,測試工具應具備很強的可擴展性以滿足新產品軟件模塊的測試需求;

3)高效性:測試工具一定要具備高效性,不能為了實現自動化而犧牲效率.另外,工具不應該出現卡頓、切換界面遲鈍等現象[8].

2 動態仿真測試工具設計

2.1 仿真測試工具整體架構設計

根據需求分析,采用模塊化、層次化的理念對仿真動態測試工具進行總體設計.

仿真測試工具的整體架構如圖 2 所示,整體架構分應用層和數據仿真層.應用層主要包含測試用例編輯功能模塊、測試用例管理功能模塊、測試自動執行模塊、測試自動判斷、測試寫過展示、測試報告生成、測試任務控制和系統配置等功能;數據仿真層主要包括智能保護裝置采樣通道仿真、品質因數通道仿真、開入開出通道仿真、通道狀態仿真、采樣連續狀態仿真、采樣跟蹤頻率仿真、CPU間通信狀態仿真和遙控狀態配置等仿真功能[9,10].以下對動態仿真測試工具的核心功能設計進行詳細說明.

圖 2 仿真測試工具整體架構圖

2.2 動態仿真功能設計

項目團隊結合多年的保護模塊測試經驗積累,對幾十種智能保護產品軟件進行深入研究、全面分析、反復論證,最終構建了一套通用性強的仿真數據模型,并通過測試任務鏈表動態控制數據模型工作,實現動態仿真功能,測試工具實現動態仿真的原理如圖 3 所示.

圖 3 本文研制工具實現動態仿真原理圖

測試工具根據測試用例生成用例執行任務鏈表,并依據任務鏈表進行用例執行,在用例執行過程中,動態調用數據模型接口,實現對保護軟件模塊應用環境的仿真.

2.3 測試用例編輯功能設計

測試工具通過對被測軟件模塊的源代碼進行靜態分析,提煉出源代碼中變量、參數、邊界、條件語句等信息,根據這些信息生成測試用例供測試人員選擇、編輯,并能根據變量類型邊界值檢測測試人員輸入數據的合法性,確保測試用例能可靠執行.

用例編輯的過程如圖 4 所示,測試人員選擇、編輯用例的來源有3種:測試工具自動生成的用例,打開原有用例和純手動輸入用例生成條件生成的用例.

圖 4 用例編輯過程圖

自動生成的測試用例一般數量比較多,針對性不強,具體執行時需要測試人員通過選擇、修改等手段優化測試用例集.回歸測試時,特別是針對性回歸時,測試人員可以選擇打開原有的用例進行編輯優化等.測試工具支持沒有加載任何測試對象情況下的純手工編輯用例,以增加用例編輯的靈活性.

2.4 測試用例管理功能設計

測試用例是測試工作的靈魂,更是測試人員勞動成果的重要價值體現,做好測試用例管理十分必要.

測試用例管理主要包括測試用例的搜索,用例庫導入、導出,及用例備份等.用例搜索主要是在用例庫中搜索目標用例,然后導出,以供測試人員使用.用例導入支持測試人員完成測試后提交用例入庫.用例備份支持測試用例的打包備份,保證用例數據的安全性.

2.5 測試工具工作流程設計

測試工具的工作流程設計如圖5所示.

圖 5 測試工具工作流程圖

啟動測試工具之后,首先是確定要執行的用例.有3種方式確定用例集:① 自動生成用例,然后人工選擇、修改優化用例,這種方式需要加載被測對象,然后點擊自動生成用例;② 純手工輸入生成用例條件,即純手工編輯測試用例,前提是測試人員對被測對象很熟悉,測試工程已經建好,直接人工編輯用例,用例針對性強;③ 打開原有用例集進行修改、優化等.

確定完測試用例集之后,直接點擊保存,即可接著點擊執行,測試工具會自動檢測用例合法性、自動執行測試、自動判別測試結果,最后,通過界面展示出當前測試結果,測試人員也可以通過工具查看歷史測試數據.

3 本文設計中關鍵問題及其解決方案

3.1 智能裝置保護功能的仿真

由于被測對象最終是運行在智能裝置內的,所以對軟件模塊的測試中必須建立智能裝置的部分功能的仿真環境.但建立一個功能齊全的智能保護裝置仿真環境又不現實(特別是開發新產品時建立一個功能齊全的仿真環境所花費的時間足可以開發一個新產品).另外,作為測試人員來說,主要精力也不在此.所以只需要憑借資深測試人員多年積累的測試經驗建立一個通用的、保護裝置核心的功能仿真環境來保證被測對象的運行.具體設計方案在文章2.2節中已經詳細給出,這里不再贅述.

3.2 測試用例的自動生成

測試用例自動生成技術是測試領域的一個重點也是難點,至今沒有很好的解決方案,本文采用人工干預的測試用例自動生成,首先,測試工具通過靜態分析被測對象的源代碼得出基礎信息,根據這些基礎信息生成盡可能全的測試用例,最后,再由測試人員根據測試項目需要修改、完善測試用例.這樣既提高了測試用例生成的效率,又保證了用例設計的準確性.

4 測試工具的實現

測試工具在windows系統中VS2010+Qt開發環境下實現,界面如圖 6 所示.

測試工具界面包括菜單欄,工具欄.其中菜單欄位于主窗口的頂端,菜單固定不能拖動,包括文件、用例編輯、測試執行、測試結果展示、模式選擇、系統設置和幫助等主菜單;工具欄位于窗口的頂部,可拖動.工具欄列出了菜單欄里的幾個常用功能,包括加載測試文件、生成測試用例、打開測試用例、保存用例、打開測試工程、查看當前測試結果、測試報告生成、取報告號、系統配置、關于、添加一行、刪除選中行.

圖 6 保護軟件模塊動態仿真工具界面

4.1 用例編輯菜單的實現

用例編輯主要是實現試用例的生成、編輯等,菜單如圖 7 所示.

圖 7 用例編輯菜單

1) 生成用例:根據對被測源代碼的分析,工具自動生成一部分測試用例.

2) 打開用例:打開原有的測試用例.

3) 保存用例,保存當前界面中顯示的測試用例,并同時更新配置文件DataFileNameList信息.

4) 添加一行:在當前界面上添加一行測試數據.

5) 刪除選中行:刪除當前界面顯示的選中行.

6) 用例另存為:與用例保存類似,但不更新配置文件.

7) 手工編輯用例:不打開被測對象,直接手動編輯用例.

4.2 測試結果展示菜單的實現

展示測試結果,如圖 8 所示.

圖 8 測試結果展示菜單

1) 測試結果查看:查看當前測試結果.

2) 測試報告生成:自動生成測試報告.

3) 取報告號:自動關聯報告號管理網站.

4) 歷史測試結果查看:支持選擇打開查看歷史測試結果.

5 測試工具實際應用及效果

智能保護裝置軟件模塊動態仿真測試工具在某公司多個重大工程項目的軟件模塊動態測試中得到了廣泛應用.測試工具具有跨平臺特性,支持Linux、windows等系統,現以windows系統為例,動態測試工具部署在一臺PC測試機上,具體配置如表 1 所示.

表 1 測試機配置信息

經過多個重大工程及科研項目近千次的軟件模塊具體測試應用發現,該動態仿真測試工具有以下特點:

1) 能顯著降低軟件模塊測試難度.由于該工具有通用性很強的仿真數據模型,使用該工具測試,測試人員不需要自己開發驅動,只要能讀懂被測源代碼,設計好測試用例,不要求測試人員具有編程能力.大大降低了軟件模塊測試的難度.

2) 能明顯提升測試用例編輯效率.由于該工具有測試用例自動生成功能,工具根據對被測源代碼進行靜態分析,挖掘出源代碼中生成動態測試用例必要的信息,自動生成大量的測試用例,供測試人員選擇、修改.沒用工具之前,一個軟件模塊測試編輯用例一般不低于2 h,使用工具后一般30 min左右能完成用例,測試用例編輯效率明顯提升.

3) 增強了測試流程規范性.測試工具固化了被測源代碼加載、測試用例設計、用例規范性檢查、用例執行、結果判斷、結果展示等一系列測試流程,避免了用例執行完成后發現用例不合格等低級錯誤.使測試流程從原來的無序狀態變成有序狀態,進一步規范了測試流程.

4) 提高了軟件模塊測試的自動化程度.根據編輯好的測試用例,在無人工干預的情況下可以完成軟件模塊的全面測試,達到高度自動化效果.

6 結 論

對軟件模塊測試用例設計方法進行歸納總結,制定了自動生成測試用例規則;規范并固化測試工作流程;設計開發測試工具,實現保護軟件模塊源代碼的靜態分析、保護模塊動態應用仿真、測試用例自動生成、測試自動執行、規范測試工作流程及測試結果的靈活展示等功能.經實際應用表明,該工具效果顯著,為軟件模塊研發測試提供了技術手段,提高了研發測試整體能力,推進研發質量持續提升.軟件模塊測試的有效開展能夠使大部分軟件缺陷在研發階段初期發現并修復,能夠提高軟件產品的競爭力和企業的聲譽,同時大幅降低售后服務成本.

猜你喜歡
測試工具測試人員源代碼
移動應用眾包測試人員信譽度復合計算模型研究
基于TXL的源代碼插樁技術研究
Http并發連接測試工具
軟件源代碼非公知性司法鑒定方法探析
基于語法和語義結合的源代碼精確搜索方法
淺析軟件測試中的心理學應用
手車式真空斷路器回路電阻測試電流線接頭研究
揭秘龍湖產品“源代碼”
福祿克推出先進的連接式測試工具系統
犯罪心理測試人員素質要求分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合