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