系統(tǒng)測試(System Test, ST)是將經過測試的子系統(tǒng)裝配成一個完整系統(tǒng)來測試。它是檢驗系統(tǒng)是否確實能提供系統(tǒng)方案說明書中指定功能的有效方法。
系統(tǒng)測試的目的是對最終軟件系統(tǒng)進行全面的測試,確保最終軟件系統(tǒng)滿足產品需求并且遵循系統(tǒng)設計。
系統(tǒng)測試過程域是SPP模型的重要組成部分。本規(guī)范闡述了系統(tǒng)測試的規(guī)程,該規(guī)程的“目標”、“角色與職責”、“啟動準則”、“輸入”、“主要步驟”、“輸出”、“完成準則”和“度量”均已定義。
一、介紹
系統(tǒng)測試流程如圖1所示。由于系統(tǒng)測試的目的是驗證最終軟件系統(tǒng)滿足產品需求并且遵循系統(tǒng)設計,所以當產品需求和系統(tǒng)設計文檔完成之后,系統(tǒng)測試小組就可以提前開始制定測試計劃和設計測試用例,而不必等到“實現(xiàn)與測試”階段結束。這樣可以提高系統(tǒng)測試的效率。
系統(tǒng)測試過程中發(fā)現(xiàn)的所有缺陷必須用統(tǒng)一的缺陷管理工具來管理,開發(fā)人員應當及時消除缺陷(改錯)。
圖1 系統(tǒng)測試流程圖
項目經理設法組建富有成效的系統(tǒng)測試小組。系統(tǒng)測試小組的成員主要來源于:
·機構獨立的測試小組(如果存在的話)。
·邀請其它項目的開發(fā)人員參與系統(tǒng)測試。
·本項目的部分開發(fā)人員。
·機構的質量保證人員。
系統(tǒng)測試小組應當根據項目的特征確定測試內容。一般地,系統(tǒng)測試的主要內容包括:
·功能測試。即測試軟件系統(tǒng)的功能是否正確,其依據是需求文檔,如《產品需求規(guī)格說明書》。由于正確性是軟件最重要的質量因素,所以功能測試必不可少。
·健壯性測試。即測試軟件系統(tǒng)在異常情況下能否正常運行的能力。健壯性有兩層含義:一是容錯能力,二是恢復能力。
·性能測試。即測試軟件系統(tǒng)處理事務的速度,一是為了檢驗性能是否符合需求,二是為了得到某些性能數據供人們參考(例如用于宣傳)。
·用戶界面測試。重點是測試軟件系統(tǒng)的易用性和視覺效果等。
·安全性(security)測試。是指測試軟件系統(tǒng)防止非法入侵的能力。“安全”是相對而言的,一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、危險等因素)高于得到的好處,那么這樣的系統(tǒng)可以認為是安全的。
·安裝與反安裝測試。
系統(tǒng)測試過程域產生的主要文檔有:
·《系統(tǒng)測試計劃》,模板見 [SPP-TEMP-ST-PLAN]。
·《系統(tǒng)測試用例》,模板見 [SPP-TEMP-TEST-CASE]。
·《系統(tǒng)測試報告》,模板見 [SPP-TEMP-TEST-REPORT]。
·《缺陷管理報告》,由缺陷管理工具自動生成。
二、系統(tǒng)測試規(guī)程
1、目的
對最終軟件系統(tǒng)進行全面的測試,確保最終軟件系統(tǒng)滿足產品需求并且遵循系統(tǒng)設計。
2、角色與職責
項目經理組建系統(tǒng)測試小組,并指定一名成員任測試組長。
系統(tǒng)測試小組各成員共同制定測試計劃、設計測試用例、執(zhí)行測試,并撰寫相應的文檔。測試組長管理上述事務。
開發(fā)人員及時消除測試人員發(fā)現(xiàn)的缺陷。
3、啟動準則
產品需求和系統(tǒng)設計文檔完成之后。
4、 輸入
產品需求和系統(tǒng)設計文檔
5、主要步驟
[Step1] 制定系統(tǒng)測試計劃
系統(tǒng)測試小組各成員共同協(xié)商測試計劃。測試組長按照指定的模板起草《系統(tǒng)測試計劃》。該計劃主要包括:
·測試范圍(內容)
·測試方法
·測試環(huán)境與輔助工具
·測試完成準則
·人員與任務表
項目經理審批《系統(tǒng)測試計劃》。該計劃被批準后,轉向[Step2]。
[Step2] 設計系統(tǒng)測試用例
·系統(tǒng)測試小組各成員依據《系統(tǒng)測試計劃》和指定的模板,設計(撰寫)《系統(tǒng)測試用例》。
·測試組長邀請開發(fā)人員和同行專家,對《系統(tǒng)測試用例》進行技術評審。該測試用例通過技術評審后,轉向[Step3]。
[Step3] 執(zhí)行系統(tǒng)測試
·系統(tǒng)測試小組各成員依據《系統(tǒng)測試計劃》和《系統(tǒng)測試用例》執(zhí)行系統(tǒng)測試。
·將測試結果記錄在《系統(tǒng)測試報告》中,用“缺陷管理工具”來管理所發(fā)現(xiàn)的缺陷,并及時通報給開發(fā)人員。
[Step4] 缺陷管理與改錯
·從[Step1]至[Step3],任何人發(fā)現(xiàn)軟件系統(tǒng)中的缺陷時都必須使用指定的“缺陷管理工具”。該工具將記錄所有缺陷的狀態(tài)信息,并可以自動產生《缺陷管理報告》。
·開發(fā)人員及時消除已經發(fā)現(xiàn)的缺陷。
·開發(fā)人員消除缺陷之后應當馬上進行回歸測試,以確保不會引入新的缺陷。
6、輸出
·消除了缺陷的最終軟件系統(tǒng)
·系統(tǒng)測試用例
·系統(tǒng)測試報告
·缺陷管理報告
7、結束準則
對于非嚴格系統(tǒng)可以采用“基于測試用例”的準則:
·功能性測試用例通過率達到100%;
·非功能性測試用例通過率達到80%時。
對于嚴格系統(tǒng),應當補充“基于缺陷密度”的規(guī)則:
·相鄰n個CPU小時內“測試期缺陷密度”全部低于某個值m。例如n大于10,m小于等于1。
本規(guī)程所有文檔已經完成。
8、度量
測試人員和開發(fā)人員統(tǒng)計測試和改錯的工作量,文檔的規(guī)模,以及缺陷的個數與類型,并將此度量數據匯報給項目經理。
三、 實施建議
對系統(tǒng)測試人員進行必要的培訓,提高他們的測試效率。
項目經理和測試小組根據項目的資源、時間等限制因素,設法合理地減少測試的工作量,例如減少“冗余或無效”的測試。
系統(tǒng)測試小組根據產品的特征,可以適當地修改本規(guī)范的各種文檔模板。
對系統(tǒng)測試過程中產生的所有代碼和有價值的文檔進行配置管理。
為了調動測試者的積極性,建議企業(yè)或項目設立獎勵機制,例如:根據缺陷的危害程度把獎金分等級,每個新缺陷對應一份獎金,把獎金發(fā)給第一個發(fā)現(xiàn)該缺陷的人。
四、系統(tǒng)測試的目標
1、 確保系統(tǒng)測試的活動是按計劃進行的;
2、 驗證軟件產品是否與系統(tǒng)需求用例不相符合或與之矛盾;
3、 建立完善的系統(tǒng)測試缺陷記錄跟蹤庫;
4、 確保軟件系統(tǒng)測試活動及其結果及時通知相關小組和個人;
五、系統(tǒng)測試的方針
1、 為項目指定一個測試工程師負責貫徹和執(zhí)行系統(tǒng)測試活動;
2、 測試組向各事業(yè)部總經理/項目經理報告系統(tǒng)測試的執(zhí)行狀況;
3、 系統(tǒng)測試活動遵循文檔化的標準和過程;
4、 向外部用戶提供經系統(tǒng)測試驗收通過的預部署及技術支持;
5、 建立相應項目的(BUG)缺陷庫,用于系統(tǒng)測試階段項目不同生命周期的缺陷記錄和缺陷狀態(tài)跟蹤;
6、 定期的對系統(tǒng)測試活動及結果進行評估,向各事業(yè)部經理/項目辦總監(jiān)/項目經理匯報/提供項目的產品質量信息及數據;
六、系統(tǒng)測試的過程
1、 軟件項目立項,軟件項目負責人將項目啟動情況通報給測試組長,測試組長指定測試工程師對該項目進行系統(tǒng)測試跟進和執(zhí)行。
2、 測試工程師首先參與前期的需求分析活動、前景評審、業(yè)務培訓、SRS評審。目的是了解系統(tǒng)業(yè)務及范圍、了解軟件需求及范圍,驗證需求可測性。并將所有收集到的測試需求匯總并輸出到《測試需求管理表》中。
3、 測試工程師根據測試需求定義測試策略,并進行工作量估計。
4、 測試工程師根據測試需求制定測試策略和方法;系統(tǒng)測試工程師參與項目計劃和SDP評審,依據項目計劃(或周計劃),編制《系統(tǒng)測試計劃》。
5、 測試組長周期性地根據事業(yè)部項目的測試情況,進行總體測試工作量估計并進行測試任務分派。
6、 測試工程師組織《系統(tǒng)測試計劃》評審,測試組長根據評審意見審批《系統(tǒng)測試計劃》。
7、 測試工程師根據《系統(tǒng)測試計劃》中的測試環(huán)境要求搭建測試環(huán)境。特別技術要求的需要項目組及其它相關職能部門的配合。
8、 測試工程師檢查測試設計入口條件;根據《用例規(guī)約》、《補充規(guī)約》、《界面原型》、《詞匯表》進行測試用例設計。
9、 測試工程師組織《系統(tǒng)測試用例》評審,測試組長根據評審意見審批《系統(tǒng)測試用例》。
10、 測試工程師定義系統(tǒng)測試用例執(zhí)行過程,并更新《系統(tǒng)測試用例》。
11、 測試工程師檢查測試執(zhí)行入口條件,從受控庫獲取測試版本,執(zhí)行系統(tǒng)測試并記錄 測試結果。
12、 系統(tǒng)測試進入產品穩(wěn)定期,由測試工程師召開缺陷評審會議;測試工程師對整個系統(tǒng)測試過程進行總結和評價,形成《軟件缺陷清單》、《系統(tǒng)測試評估摘要》《系統(tǒng)測試總結報告》,并將系統(tǒng)測試過程的文檔報送給項目組和測試組長。測試組長每月初或(事件驅動)匯總、整編上月的《產品質量簡報》,報送給事業(yè)部總經理和項目辦。
13、 如果根據系統(tǒng)測試結果,產品得以批準通過,系統(tǒng)測試工程師卸載被測軟件,進行環(huán)境初始化,系統(tǒng)測試結束,轉入驗收測試階段;否則視批示意見進行。