ST

系統測試

系統測試(System Test,ST)是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中指定功能的有效方法。系統測試(System Test,ST)的目的是對最終軟體系統進行全面的測試,確保最終軟體系統滿足產品需求並且遵循系統設計。

定義


系統測試過程域是SPP模型的重要組成部分。本規範闡述了系統測試的規程,該規程的“目標”、“角色與職責”、“啟動準則”、“輸入”、“主要步驟”、“輸出”、“完成準則”和“度量”均已定義。

介紹


系統測試流程如圖1所示。由於系統測試的目的是驗證最終軟體系統滿足產品需求並且遵循系統設計,所以當產品需求和系統設計文檔完成之後,系統測試小組就可以提前開始制定測試計劃和設計測試用例,而不必等到“實現與測試”階段結束。這樣可以提高系統測試的效率。
系統測試過程中發現的所有缺陷必須用統一的缺陷管理工具來管理,開發人員應當及時消除缺陷(改錯)。
項目經理設法組建富有成效的系統測試小組。系統測試小組的成員主要來源於:
機構獨立的測試小組(如果存在的話);
邀請其它項目的開發人員參與系統測試;
本項目的部分開發人員;
機構的質量保證人員。
系統測試小組應當根據項目的特徵確定測試內容。一般地,系統測試的主要內容包括:
功能測試 即測試軟體系統的功能是否正確,其依據是需求文檔,如《產品需求規格說明書》。由於正確性是軟體最重要的質量因素,所以功能測試必不可少。
健壯性測試 即測試軟體系統在異常情況下能否正常運行的能力。健壯性有兩層含義:一是容錯能力,
二是恢復能力
性能測試 即測試軟體系統處理事務的速度,一是為了檢驗性能是否符合需求,二是為了得到某些性能數據供人們參考(例如用於宣傳)。
用戶界面測試 重點是測試軟體系統的易用性和視覺效果等。
安全性(security)測試 是指測試軟體系統防止非法入侵的能力。“安全”是相對而言的,一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、危險等因素)高於得到的好處,那麼這樣的系統可以認為是安全的。
安裝與反安裝測試 系統測試過程域產生的主要文檔有:
《系統測試計劃》,模板見【SPP-TEMP-ST-PLAN】。
《系統測試用例》,模板見【SPP-TEMP-TEST-CASE】。
《系統測試報告》,模板見【SPP-TEMP-TEST-REPORT】。
《缺陷管理報告》,由缺陷管理工具自動生成。

測試規程


1、目的
對最終軟體系統進行全面的測試,確保最終軟體系統滿足產品需求並且遵循系統設計。
2、角色與職責
項目經理組建系統測試小組,並指定一名成員任測試組長。
系統測試小組各成員共同制定測試計劃、設計測試用例、執行測試,並撰寫相應的文檔。測試組長管理上述事務。
開發人員及時消除測試人員發現的缺陷。
3、啟動準則
產品需求和系統設計文檔完成之後。
4、輸入
產品需求和系統設計文檔
5、主要步驟
【Step1】制定系統測試計劃
系統測試小組各成員共同協商測試計劃
測試組長按照指定的模板起草《系統測試計劃》
該計劃主要包括:
測試範圍(內容)
測試方法
測試環境與輔助工具
測試完成準則
人員與任務表
項目經理審批《系統測試計劃》
該計劃被批准后,轉向【Step2】
【Step2】設計系統測試用例
系統測試小組各成員依據《系統測試計劃》和指定的模板,設計(撰寫)《系統測試用例》。
測試組長邀請開發人員和同行專家,對《系統測試用例》進行技術評審。該測試用例通過技術評審后,轉向【Step3】
【Step3】執行系統測試
系統測試小組各成員依據《系統測試計劃》和《系統測試用例》執行系統測試。
將測試結果記錄在《系統測試報告》中,用“缺陷管理工具”來管理所發現的缺陷,並及時通報給開發人員。
【Step4】缺陷管理與改錯。
從【Step1】至【Step3】,任何人發現軟體系統中的缺陷時都必須使用指定的“缺陷管理工具”。該工具將記錄所有缺陷的狀態信息,並可以自動產生《缺陷管理報告》。
開發人員及時消除已經發現的缺陷。
開發人員消除缺陷之後應當馬上進行回歸測試,以確保不會引入新的缺陷。
6、輸出
消除了缺陷的最終軟體系統
系統測試用例
系統測試報告
缺陷管理報告
7、結束準則
對於非嚴格系統可以採用“基於測試用例”的準則:
功能性測試用例通過率達到100%;
非功能性測試用例通過率達到80%時。
對於嚴格系統,應當補充“基於缺陷密度”的規:
相鄰n個CPU小時內“測試期缺陷密度”全部低於某個值m。例如n大於10,m小於等於1。
本規程所有文檔已經完成。
8、度量
測試人員和開發人員統計測試和改錯的工作量,文檔的規模,以及缺陷的個數與類型,並將此度量數據彙報給項目經理。

實施建議


系統測試人員進行必要的培訓,提高他們的測試效率。
項目經理和測試小組根據項目的資源、時間等限制因素,設法合理地減少測試的工作量,例如減少“冗餘或無效”的測試。
系統測試小組根據產品的特徵,可以適當地修改本規範的各種文檔模板。
對系統測試過程中產生的所有代碼和有價值的文檔進行配置管理。
為了調動測試者的積極性,建議企業或項目設立獎勵機制,例如:根據缺陷的危害程度把獎金分等級,每個新缺陷對應一份獎金,把獎金髮給第一個發現該缺陷的人。

目標


1、確保系統測試的活動是按計劃進行的;
2、驗證軟體產品是否與系統需求用例不相符合或與之矛盾;
3、建立完善的系統測試缺陷記錄跟蹤庫;
4、確保軟體系統測試活動及其結果及時通知相關小組和個人;

方針


1、為項目指定一個測試工程師負責貫徹和執行系統測試活動;
2、測試組向各事業部總經理/項目經理報告系統測試的執行狀況;
3、系統測試活動遵循文檔化的標準和過程;
4、向外部用戶提供經系統測試驗收通過的預部署及技術支持;
5、建立相應項目的(BUG)缺陷庫,用於系統測試階段項目不同生命周期的缺陷記錄和缺陷狀態跟蹤;
6、定期的對系統測試活動及結果進行評估,向各事業部經理/項目辦總監/項目經理彙報/提供項目的產品質量信息及數據;

過程


1、軟體項目立項,軟體項目負責人將項目啟動情況通報給測試組長,測試組長指定測試工程師對該項目進行系統測試跟進和執行。
2、測試工程師首先參與前期的需求分析活動、前景評審、業務培訓、SRS評審。目的是了解系統業務及範圍、了解軟體需求及範圍,驗證需求可測性。並將所有收集到的測試需求匯總並輸出到《測試需求管理表》中。
3、測試工程師根據測試需求定義測試策略,並進行工作量估計。
4、測試工程師根據測試需求制定測試策略和方法;系統測試工程師參與項目計劃和SDP評審,依據項目計劃(或周計劃),編製《系統測試計劃》。
5、測試組長周期性地根據事業部項目的測試情況,進行總體測試工作量估計並進行測試任務分派。6、測試工程師組織《系統測試計劃》評審,測試組長根據評審意見審批《系統測試計劃》。
7、測試工程師根據《系統測試計劃》中的測試環境要求搭建測試環境。特別技術要求的需要項目組及其它相關職能部門的配合。
8、測試工程師檢查測試設計入口條件;根據《用例規約》、《補充規約》、《界面原型》、《辭彙表》進行測試用例設計。
9、測試工程師組織《系統測試用例》評審,測試組長根據評審意見審批《系統測試用例》。
10、測試工程師定義系統測試用例執行過程,並更新《系統測試用例》。
11、測試工程師檢查測試執行入口條件,從受控庫獲取測試版本,執行系統測試並記錄 測試結果。
12、系統測試進入產品穩定期,由測試工程師召開缺陷評審會議;測試工程師對整個系統測試過程進行總結和評價,形成《軟體缺陷清單》、《系統測試評估摘要》《系統測試總結報告》,並將系統測試過程的文檔報送給項目組和測試組長。測試組長每月初或(事件驅動)匯總、整編上月的《產品質量簡報》,報送給事業部總經理和項目辦。
13、如果根據系統測試結果,產品得以批准通過,系統測試工程師卸載被測軟體,進行環境初始化,系統測試結束,轉入驗收測試階段;否則視批示意見進行。