仵松頎 李爭平



摘 要:為了在早期發現軟件里存在的缺陷,文中在對測試技術進行大量研究的技術上,設計了基于武警救援系統的軟件測試策略,選取了適合有效的測試方法和測試類型,執行了規范的測試流程,實現了對武警救援系統從單元到系統級別的全面測試,測試缺陷得到及時處理,為后續其它同類軟件測試提供了參考與借鑒。
關鍵詞:軟件測試;測試策略;測試過程;缺陷;救援系統;軟件測試
中圖分類號:TP274文獻標識碼:A文章編號:2095-1302(2019)04-00-03
0 引 言
近年來,隨著互聯網行業的不斷發展,軟件的使用已成為人們普遍的生活方式[1]。為了證實程序按預期的設想實現,通常開展軟件測試,軟件測試從為了表明軟件是正確的正向性測試,發展到如今測試不單純是一個發現錯誤的過程,而是從軟件質量[2]的角度來測試,因此基于武警救援系統的軟件測試十分重要[3]。
1 武警救援系統簡介
武警救援系統是一款便于移動終端使用的救援管理軟件,Android客戶端提供了檢傷分類、護士工作站、醫生工作站、轉運監護、移動GIS和檢查檢驗功能模塊,如圖1所示。Web端主要用于系統的管理和維護,由管理員模塊、醫生工作站和護士工作站等組成。該軟件正確、可靠地運行對救援工作的順利開展具有重要意義。
2 軟件測試策略選擇
2.1 軟件測試技術研究
2.1.1 概述
軟件測試是尋找軟件中缺陷的工作,是軟件產品開發過程的重要組成部分,它是軟件開發生命周期中一項非常重要且復雜的工作,對軟件可靠性[4]保證具有極其重要的意義。研究軟件測試技術,熟悉每項技術的特點,可以較好地選擇適用于被測對象的軟件測試策略。
2.1.2 黑盒測試技術
黑盒測試[5]通常基于需求和功能進行測試,一般指配置項(子系統)測試、系統測試等。常用的黑盒測試方法有功能分析法、等價類劃分法、邊界值法、錯誤推測法、功能圖分析法、場景設計法等。
2.1.3 白盒測試技術
白盒測試通常基于代碼的內部邏輯知識,往往要求對語句、分支、路徑、條件進行覆蓋,一般指單元測試、集成測試。常用的白盒測試方法有邏輯驅動覆蓋測試、基本路徑測試、便捷測試等。
2.1.4 靜態測試
靜態測試依據設計文檔進行,測試對象是源碼,但不實際執行被測程序。代碼審查測試設計的檢查單時,執行測試依據檢查表進行,通過閱讀、討論和爭議對程序源碼進行分析;代碼走查測試用例,執行測試時人充當計算機,使用事先設計的測試用例對程序功能和邏輯進行分析和檢查。
2.1.5 動態測試
動態測試需要運行被測程序,分析程序運行的真實情況,要求生成測試用例和測試數據來運行程序,測試質量依賴于測試用例和測試數據。動態測試包括單元測試、集成測試、配置項測試、系統測試。
2.2 測試策略選擇
軟件測試開展前需要確定測試策略、回歸策略、測試需要的技術或方法、受控制的測試工作產品,列出清單;確定每個測試項的測試充分性要求,根據被測軟件的重要性、測試目標和約束條件確定每個測試項應覆蓋的范圍及范圍要求的覆蓋程度;計劃測試環境如何部署。
根據武警救援系統軟件的關鍵等級和應用領域,靜態測試主要開展文檔審查和代碼審查,動態測試利用測試工具進行軟件單元測試,采用一次集成的方式進行配置。系統測試重點關注不同用戶角色的工作流程、軟件運行強度、服務器端負載能力等。
3 軟件測試的實施
軟件測試過程包括測試策劃、測試設計和實現、測試執行、測試總結等關鍵活動,如圖2所示,詳細流程如圖3所示。
3.1 建立測試計劃
測試策劃包括對軟件測試工作進行整體規劃,建立軟件測試計劃,其基本策劃內容如圖4所示。
在武警救援系統軟件規格說明形成后,建立系統測試和配置項測試計劃,軟件設計和編碼階段結束后,建立代碼審查計劃和單元測試計劃,定義選擇的測試方法、測試工具、人員需求、責任矩陣、評審要求、交付物等。
3.2 編制測試說明
測試設計與實現的核心工作是設計測試用例、形成測試說明,是執行軟件測試的基礎,如圖5所示。
設計測試用例需要考慮測試工具軟件、測試環境等因素,用例的要素包括:
(1)編寫人員、編寫時間、審核人員;
(2)測試用例標識、測試用例說明、前置條件;
(3)測試輸入、預期輸出、通過準則、結束條件。
按測試計劃編制了武警救援系統軟件單元測試說明(含代碼審查)、配置項和系統測試說明,設計了功能測試、性能測試、人機交互界面測試、強度測試、安全性測試、余量測試、恢復性測試、互操作性測試、數據處理測試等類型的用例,主要采用了等價類劃分、邊界值分析、因果圖等測試方法,共設計單元測試用例677個,配置項和系統測試用例926個,形成代碼審查檢查單12份。
軟件測試說明通過評審后,就進入軟件測試的執行環節,主要活動如圖6所示。
按照代碼審查檢查單的項目,對全部軟件代碼進行審查,提出21個問題單;單元測試使用VestCast工具軟件,用例一次性通過621個,5個用例刪除,51個經修改后執行通過,提出46個問題單;配置項和系統測試用人工方法和自動測試方法進行,提出27個問題單。測試原始記錄格式規范,管理嚴格,包括測試用例標識、樣本標識、測試結果和發現的缺陷。
測試過程發現的軟件缺陷由測試組記錄并提交給軟件開發組,開發組對問題進行分析和分類,并給出處理意見,對于要修改的問題,進行影響分析,修改后的軟件或文檔提交給測試組進行回歸測試。測試組分析更改的內容,修改或補充測試用例,執行軟件回歸測試流程,直至所有問題得到解決或達成一致處理意見。缺陷跟蹤和處理流程如圖7所示。
3.3 測試結果
軟件測試執行結束后,需對測試工作進行總結,形成測試報告,主要活動如圖8所示。
武警救援系統軟件測試工作由5人承擔,共用576人時,審查文檔7份、有效代碼57 304行,形成測試文檔6份,發現重要缺陷7個,一般缺陷72個,建議項15個,所有問題均得到了處理。
4 結 語
本文在對軟件測試技術進行研究的基礎上,針對武警救援系統的特點,選擇有效的軟件測試策略,詳細描述了測試計劃建立、測試說明編制、測試執行、測試總結等過程實施方法。通過開展軟件測試,提早發現該系統潛在的軟件缺陷,提高軟件后繼上線應用的穩定性和可靠性,并對同類型軟件測試方法的研究提供了參考實例,具有一定的示范價值。
參 考 文 獻
[1]王蓁蓁.軟件測試理論初步框架[J].計算機科學,2014,41(3):12-16.
[2]沈國華,黃志球,謝冰,等.軟件可信評估研究綜述:標準、模型與工具[J].軟件學報,2016,27(4):955-968.
[3]陸陽,岳峰,張國富,等.串并行軟件系統測試資源動態分配建模及求解[J].軟件學報,2016,27(8):1964-1977.
[4]潘正輝.軟件測試中可靠性模型的設計[J].電子技術與軟件工程,2018(4):34.
[5]寧丹.輸入輸出的黑盒測試用例集約簡技術探究[J].信息與電腦(理論版),2015(11):51-52.
[6]韓韜.軟件測試策略和測試方法的應用[J].信息記錄材料,2018,19(11):97-98.
[7]侯可佳,白曉穎,周立柱.一種基于多約束組合的多租戶系統配置測試技術[J].計算機學報,2016,39(2):237-252.
[8]王哲,羅真,任吉媛,等.測試環境數據安全管理技術的應用[J].電子技術與軟件工程,2019(5):213.
[9]梁凡,宋曉秋.基于二組合的測試用例集生成及精簡方法研究[J].計算機工程與設計,2014(5):1662-1666.
[10]章曉芳,陳林,徐寶文,等.測試用例集約簡問題研究及其進展[J].計算機科學與探索,2008(3):235-247.