楊曉燕 宋彩霞
摘要:軟件測試是軟件開發(fā)生命周期中最重要的任務(wù)之一,它是保證軟件產(chǎn)品的質(zhì)量、穩(wěn)定性、可靠性的重要手段。軟件驗(yàn)收測試的目的是確保系統(tǒng)正常工作并且確保應(yīng)用程序能夠滿足客戶的需求。該文探討軟件驗(yàn)收測試的策略,給出一個(gè)完整的軟件驗(yàn)收測試流程。
關(guān)鍵詞:軟件驗(yàn)收測試;驗(yàn)收測試策略;測試流程
中圖分類號:TP311? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? 文章編號:1009-3044(2018)34-0232-02
隨著時(shí)代和科技的不斷發(fā)展,在大數(shù)據(jù)背景下,軟件系統(tǒng)的多樣性、復(fù)雜性和規(guī)模不斷增加,出現(xiàn)了一個(gè)問題就是如何保證軟件產(chǎn)品的質(zhì)量、穩(wěn)定性、可靠性[1]。而解決這一問題的關(guān)鍵就是軟件測試。軟件測試是軟件開發(fā)生命周期中最重要的任務(wù)之一,很容易超過項(xiàng)目總工作量的一半。一個(gè)成功的測試方法可以節(jié)省大量的工作和提高產(chǎn)品質(zhì)量,從而提高客戶滿意度和降低維護(hù)成本[2]。
1 軟件驗(yàn)收測試的含義及目的
在軟件產(chǎn)品上進(jìn)行的測試稱為軟件測試。軟件測試是一個(gè)過程,涉及,執(zhí)行一個(gè)軟件程序并發(fā)現(xiàn)該程序中的所有錯(cuò)誤或bugs, 使其最終是一個(gè)無缺陷的軟件[3]。任何軟件的質(zhì)量都只能通過測試(軟件測試)來知道。具體來說,軟件測試可以用來檢查軟件是否:
l滿足設(shè)計(jì)階段提到的所有要求。
l為不同的輸入提供正確的輸出。
l能夠在規(guī)定的時(shí)間或可接受的時(shí)間內(nèi)完成任務(wù)。
l能在不同的環(huán)境中運(yùn)行。
在驗(yàn)收和單元測試過程中,要認(rèn)識到其特殊性,它是以驗(yàn)證軟件正確性為主的檢測,而不是以發(fā)現(xiàn)當(dāng)中的錯(cuò)誤為主的檢測[3]。
2 軟件驗(yàn)收測試策略
測試策略在整個(gè)測試過程中扮演了一個(gè)有趣的角色,因?yàn)樗袡C(jī)會定義和解釋測試活動。測試策略可以定義為描述軟件開發(fā)生命周期中的測試方法的大綱。它由各種各樣的軟件測試用例與設(shè)計(jì)方法組成。它們被開發(fā)成一系列適當(dāng)?shù)牟襟E,這些步驟將最終促使軟件測試的成功。軟件驗(yàn)收測試策略主要由測試團(tuán)隊(duì)、項(xiàng)目經(jīng)理、功能測試團(tuán)隊(duì)和軟件工程師開發(fā)。一般的測試策略如下:
(1)單元測試
單元測試是指在最低級別或非常細(xì)粒度級別進(jìn)行的測試。IEEE將單元測試定義為“對單個(gè)軟件或硬件單元或相關(guān)單元組的測試,而不是完整的構(gòu)建或系統(tǒng)測試”[2]。這些測試用于測試軟件應(yīng)用程序的最基本單元,它可以是模塊、方法或組件。單元是基本模塊(可以測試的代碼行數(shù)最少)。這種方法用于持續(xù)的測試和修訂。通常,開發(fā)人員編寫這些測試并重構(gòu)應(yīng)用程序代碼,直到通過所有單元測試。
(2)集成測試
集成測試是指將兩個(gè)以上的模塊組合在一起并作為一個(gè)整體進(jìn)行測試。集成測試在單元測試之后進(jìn)行。這可以采用自頂向下和自底向上的測試方法來完成。集成測試的主要目標(biāo)是驗(yàn)證和查看當(dāng)所有小模塊組合在一起時(shí)所有軟件模塊是如何工作的。這種測試是在大型結(jié)構(gòu)和接口上進(jìn)行的。
(3)系統(tǒng)測試
顧名思義,系統(tǒng)測試是指把整個(gè)系統(tǒng)作為一個(gè)單元來測試。系統(tǒng)測試是為了測試整個(gè)系統(tǒng)的質(zhì)量。在這里,功能性和非功能性屬性,如可靠性、可維護(hù)性和安全性以及系統(tǒng)的需求規(guī)范起著非常重要的作用。所有的要求都要被檢查。如果測試在這里失敗,那么該系統(tǒng)將循環(huán)回到軟件開發(fā)生命周期,從頭開始執(zhí)行。
3 完整的軟件驗(yàn)收測試流程
軟件驗(yàn)收測試流程,可以分為驗(yàn)收測試準(zhǔn)備、執(zhí)行驗(yàn)收測試、執(zhí)行文檔檢查、產(chǎn)品移交4個(gè)過程,流程圖如圖1所示。
3.1 驗(yàn)收測試準(zhǔn)備
提交采購的軟件產(chǎn)品及技術(shù)文檔。輸入《需求規(guī)格說明書》、軟件產(chǎn)品(含源代碼)及技術(shù)文檔。乙方協(xié)助甲方1部署相關(guān)程序,并現(xiàn)場演示通過。如功能演示不通過,則退回乙方進(jìn)行修改。
3.2 執(zhí)行驗(yàn)收測試
驗(yàn)收測試工程師根據(jù)《需求規(guī)格說明書》,在《驗(yàn)收測試報(bào)告》上編寫驗(yàn)收測試用例,項(xiàng)目經(jīng)理組織項(xiàng)目組人員或內(nèi)外部專家對驗(yàn)收測試用例進(jìn)行審核,并根據(jù)審核意見對驗(yàn)收測試用例進(jìn)行修改,直至審核通過。
驗(yàn)收測試工程師根據(jù)《需求規(guī)格說明書》,對交付的軟件產(chǎn)品或組件進(jìn)行全面的驗(yàn)收測試,以確保產(chǎn)品符合需求。如果驗(yàn)收測試時(shí)發(fā)現(xiàn)工作成果存在缺陷,記錄進(jìn)《驗(yàn)收測試報(bào)告》并進(jìn)行跟蹤,直至問題解決。驗(yàn)收測試結(jié)束后,驗(yàn)收測試工程師出具《驗(yàn)收測試報(bào)告》。
3.3 執(zhí)行文檔檢查
外包項(xiàng)目的文檔檢查可隨同驗(yàn)收測試準(zhǔn)備工作同步進(jìn)行。項(xiàng)目經(jīng)理組織項(xiàng)目組人員或內(nèi)外部專家根據(jù)合同中確定的文檔列表和檢查標(biāo)準(zhǔn),對供應(yīng)商應(yīng)當(dāng)交付的成果進(jìn)行檢查,確保這些成果是完整、正確、專業(yè)的。
此階段乙方需提供的工作產(chǎn)品如表1所示。
3.4 產(chǎn)品移交
驗(yàn)收測試通過后,乙方將產(chǎn)品移交給甲方的同時(shí),需要給甲方員工進(jìn)行產(chǎn)品培訓(xùn)。甲方的項(xiàng)目經(jīng)理根據(jù)軟件產(chǎn)品的使用范圍及培訓(xùn)內(nèi)容組織項(xiàng)目組及相關(guān)人員參加培訓(xùn),乙方負(fù)責(zé)對培訓(xùn)情況進(jìn)行記錄。
驗(yàn)收測試通過后,甲方根據(jù)合同中規(guī)定的試運(yùn)行要求,組織開展項(xiàng)目的試運(yùn)行工作(合同中無相關(guān)要求的除外)。項(xiàng)目進(jìn)入試運(yùn)行后,乙方負(fù)責(zé)試運(yùn)行期間的運(yùn)維保障工作,將試運(yùn)行期間出現(xiàn)的問題進(jìn)行紀(jì)錄。試運(yùn)行沒有問題,進(jìn)行產(chǎn)品移交。
4 結(jié)束語
交付高質(zhì)量的軟件產(chǎn)品是任何項(xiàng)目的主要目標(biāo)。這意味著測試在任何軟件產(chǎn)品的開發(fā)中都扮演著非常重要的角色。軟件的驗(yàn)收測試工作中包含了多方面的內(nèi)容。驗(yàn)收前需要做測試準(zhǔn)備,制定相應(yīng)的計(jì)劃。按照驗(yàn)收策略執(zhí)行驗(yàn)收過程,在驗(yàn)收過程中執(zhí)行文檔檢查。只有進(jìn)行了全面的檢測,才能促使軟件的使用效果得到提升。
表1? 乙方提供的工作產(chǎn)品
[序號 階段產(chǎn)物 文檔名稱 1 項(xiàng)目計(jì)劃 外包項(xiàng)目開發(fā)計(jì)劃 2 需求 需求規(guī)格說明書(含非功能性需求) 3 設(shè)計(jì) 設(shè)計(jì)說明書 4 數(shù)據(jù)庫設(shè)計(jì)文檔 5 開發(fā) 系統(tǒng)程序源碼 系統(tǒng)程序源碼說明(含注釋) 6 驗(yàn)收測試測試 項(xiàng)目驗(yàn)收測試申請表 7 外包項(xiàng)目測試方案、測試報(bào)告、性能測試報(bào)告 8 用戶操作手冊 9 管理員操作手冊 10 部署 項(xiàng)目安裝、部署手冊 11 試運(yùn)行 試運(yùn)行報(bào)告 12 項(xiàng)目管理 項(xiàng)目周報(bào) 13 項(xiàng)目會議紀(jì)要 14 培訓(xùn) 培訓(xùn)材料 15 培訓(xùn)記錄(培訓(xùn)簽到表) ]
注釋:
1.本文中的甲方是客戶即是軟件使用者,乙方是軟件開發(fā)方。
參考文獻(xiàn):
[1] 王京. 大數(shù)據(jù)背景下軟件測試技術(shù)研究[J]. 信息與電腦(理論版). 2018(7): 26-27.
[2] N. J, A. M-M, W. S. Guest Editors' Introduction: Software Testing Practices in Industry[J]. IEEE Software. 2006,23(4): 19-21.
[3] 焦安濤. 基于軟件的驗(yàn)收測試工作[J]. 電腦迷. 2016(11): 26.
【通聯(lián)編輯:代影】