基于武警救援系統(tǒng)的軟件測試
0 引 言
近年來,隨著互聯(lián)網(wǎng)行業(yè)的不斷發(fā)展,軟件的使用已成為人們普遍的生活方式 [1]。為了證實程序按預期的設(shè)想實現(xiàn), 通常開展軟件測試,軟件測試從為了表明軟件是正確的正向性測試,發(fā)展到如今測試不單純是一個發(fā)現(xiàn)錯誤的過程,而是從軟件質(zhì)量 [2] 的角度來測試,因此基于武警救援系統(tǒng)的軟件測試十分重要 [3]。
1 武警救援系統(tǒng)簡介
武警救援系統(tǒng)是一款便于移動終端使用的救援管理軟件,Android 客戶端提供了檢傷分類、護士工作站、醫(yī)生工作站、轉(zhuǎn)運監(jiān)護、移動 GIS 和檢查檢驗功能模塊,如圖 1 所 示。Web 端主要用于系統(tǒng)的管理和維護,由管理員模塊、醫(yī)生工作站和護士工作站等組成。該軟件正確、可靠地運行對救援工作的順利開展具有重要意義。
2 軟件測試策略選擇
2.1 軟件測試技術(shù)研究
2.1.1 概述
軟件測試是尋找軟件中缺陷的工作,是軟件產(chǎn)品開發(fā)過程的重要組成部分,它是軟件開發(fā)生命周期中一項非常重要且復雜的工作,對軟件可靠性 [4] 保證具有極其重要的意義。研究軟件測試技術(shù),熟悉每項技術(shù)的特點,可以較好地選擇適用于被測對象的軟件測試策略。
2.1.2 黑盒測試技術(shù)
黑盒測試 [5] 通常基于需求和功能進行測試,一般指配置項(子系統(tǒng))測試、系統(tǒng)測試等。常用的黑盒測試方法有功能分析法、等價類劃分法、邊界值法、錯誤推測法、功能圖分析法、場景設(shè)計法等。
2.1.3 白盒測試技術(shù)
白盒測試通常基于代碼的內(nèi)部邏輯知識,往往要求對語句、分支、路徑、條件進行覆蓋,一般指單元測試、集成測試。常用的白盒測試方法有邏輯驅(qū)動覆蓋測試、基本路徑測試、便捷測試等。
2.1.4 靜態(tài)測試
靜態(tài)測試依據(jù)設(shè)計文檔進行,測試對象是源碼,但不實際執(zhí)行被測程序。代碼審查測試設(shè)計的檢查單時,執(zhí)行測試依據(jù)檢查表進行,通過閱讀、討論和爭議對程序源碼進行分析 ;代碼走查測試用例,執(zhí)行測試時人充當計算機,使用事先設(shè)計的測試用例對程序功能和邏輯進行分析和檢查。
2.1.5 動態(tài)測試
動態(tài)測試需要運行被測程序,分析程序運行的真實情況, 要求生成測試用例和測試數(shù)據(jù)來運行程序,測試質(zhì)量依賴于測試用例和測試數(shù)據(jù)。動態(tài)測試包括單元測試、集成測試、配置項測試、系統(tǒng)測試。
2.2 測試策略選擇
軟件測試開展前需要確定測試策略、回歸策略、測試需要的技術(shù)或方法、受控制的測試工作產(chǎn)品,列出清單 ;確定每個測試項的測試充分性要求,根據(jù)被測軟件的重要性、測試目標和約束條件確定每個測試項應(yīng)覆蓋的范圍及范圍要求的覆蓋程度 ;計劃測試環(huán)境如何部署。
根據(jù)武警救援系統(tǒng)軟件的關(guān)鍵等級和應(yīng)用領(lǐng)域,靜態(tài)測試主要開展文檔審查和代碼審查,動態(tài)測試利用測試工具進行軟件單元測試,采用一次集成的方式進行配置。系統(tǒng)測試重點關(guān)注不同用戶角色的工作流程、軟件運行強度、服務(wù)器端負載能力等。
3 軟件測試的實施
軟件測試過程包括測試策劃、測試設(shè)計和實現(xiàn)、測試執(zhí)行、測試總結(jié)等關(guān)鍵活動,如圖 2 所示,詳細流程如圖 3 所示。
3.1 建立測試計劃
測試策劃包括對軟件測試工作進行整體規(guī)劃,建立軟件測試計劃,其基本策劃內(nèi)容如圖 4 所示。
在武警救援系統(tǒng)軟件規(guī)格說明形成后,建立系統(tǒng)測試和配置項測試計劃,軟件設(shè)計和編碼階段結(jié)束后,建立代碼審查計劃和單元測試計劃,定義選擇的測試方法、測試工具、人員需求、責任矩陣、評審要求、交付物等。
3.2 編制測試說明
測試設(shè)計與實現(xiàn)的核心工作是設(shè)計測試用例、形成測試說明,是執(zhí)行軟件測試的基礎(chǔ),如圖 5 所示。
設(shè)計測試用例需要考慮測試工具軟件、測試環(huán)境等因素, 用例的要素包括 :
編寫人員、編寫時間、審核人員 ;
測試用例標識、測試用例說明、前置條件 ;
測試輸入、預期輸出、通過準則、結(jié)束條件。
按測試計劃編制了武警救援系統(tǒng)軟件單元測試說明(含代碼審查)、配置項和系統(tǒng)測試說明,設(shè)計了功能測試、性能測試、人機交互界面測試、強度測試、安全性測試、余量測試、恢復性測試、互操作性測試、數(shù)據(jù)處理測試等類型的用例,主要采用了等價類劃分、邊界值分析、因果圖等測試方法,共設(shè)計單元測試用例 677 個,配置項和系統(tǒng)測試用例
926 個,形成代碼審查檢查單 12 份。
軟件測試說明通過評審后,就進入軟件測試的執(zhí)行環(huán)節(jié), 主要活動如圖 6 所示。
圖 6 測試執(zhí)行
按照代碼審查檢查單的項目,對全部軟件代碼進行審查, 提出 21 個問題單 ;單元測試使用 VestCast 工具軟件,用例一次性通過 621 個,5 個用例刪除,51 個經(jīng)修改后執(zhí)行通過, 提出 46 個問題單 ;配置項和系統(tǒng)測試用人工方法和自動測試方法進行,提出 27 個問題單。測試原始記錄格式規(guī)范, 管理嚴格,包括測試用例標識、樣本標識、測試結(jié)果和發(fā)現(xiàn)的缺陷。
測試過程發(fā)現(xiàn)的軟件缺陷由測試組記錄并提交給軟件開發(fā)組,開發(fā)組對問題進行分析和分類,并給出處理意見,對于要修改的問題,進行影響分析,修改后的軟件或文檔提交給測試組進行回歸測試。測試組分析更改的內(nèi)容,修改或補充測試用例,執(zhí)行軟件回歸測試流程,直至所有問題得到解決或達成一致處理意見。缺陷跟蹤和處理流程如圖 7 所示。
3.3 測試結(jié)果
軟件測試執(zhí)行結(jié)束后,需對測試工作進行總結(jié),形成測試報告,主要活動如圖 8 所示。
武警救援系統(tǒng)軟件測試工作由 5 人承擔,共用 576 人時,審查文檔 7 份、有效代碼 57 304 行,形成測試文檔 6 份,發(fā)現(xiàn)重要缺陷 7 個,一般缺陷 72 個,建議項 15 個,所有問題均得到了處理。
4 結(jié) 語
本文在對軟件測試技術(shù)進行研究的基礎(chǔ)上,針對武警救援系統(tǒng)的特點,選擇有效的軟件測試策略,詳細描述了測試計劃建立、測試說明編制、測試執(zhí)行、測試總結(jié)等過程實施方法。通過開展軟件測試,提早發(fā)現(xiàn)該系統(tǒng)潛在的軟件缺陷, 提高軟件后繼上線應(yīng)用的穩(wěn)定性和可靠性,并對同類型軟件測試方法的研究提供了參考實例,具有一定的示范價值。