2012年1月12日 星期四

測試種類和測試階段


一、測試種類
功能測試:針對產品需求說明書的測試,主要是驗證功能是否符合需求,包括原定功能的檢測、是否有冗餘功能、遺漏功能。這類測試應該有測試人員完成,這並不意味著程式師在發佈前不檢查他們的代碼能否工作。
健壯性測試(容錯能力/恢復能力測試):側重于程式容錯能力測試。本測試在單元測試階段和系統測試階段都要進行。如數據邊界測試、非法資料測試、異常中斷測試等等,主要是驗證程式對各種異常情況是否進行正確的處理。為了執行方便,建議健壯性的大部分測試用例儘量編寫在功能測試用例中。
介面測試:程式師對各個模組進行系統聯調的測試,包含程式內介面和程式外介面測試。這個測試,在單元測試階段進行了一部分工作,而大部分都是在集成測試階段完成的。由開發人員進行。
強度測試:檢查程式對異常情況的抵抗能力。強度測試總是迫使系統在異常的資源配置下運行。例如,1 當中斷的正常頻率為每秒一至兩個時,運行每秒產生十個中斷的測試用例;2定量地測試資料登錄率,檢查輸入子功能的反映能力;3 運行需要最大存儲空間的測試用例;4 運行可能導致虛存作業系統崩潰或磁片資料劇烈抖動的測試用例。
壓力測試:對系統不斷施加壓力的測試,是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。例如測試一個Web網站在大量的負荷下,何時系統的回應會退化或失敗。
性能測試:在交替進行負荷和強迫測試時常用的術語。性能測試關注的是系統的整體。它和通常說的強度、壓力/負荷測試有密切關係。所以壓力和強度應該與性能測試一同進行。舉例說明,針對一個網站進行測試,模擬10到50個使用者就是在進行常規性能測試,使用者增加到1000乃至上萬就變成了壓力/負載測試。如果同時對系統進行大量的資料查詢操作,就包含了強度測試。壓力測試注重的是外界不斷施壓,強度測試注重的是極限或者異常情況下系統的測試。
使用者介面測試:對系統的介面進行測試,測試使用者介面是否友好、是否方便易用、設計是否合理、位置是否正確等一系列介面問題。
安全測試:主要是測試系統在沒有授權的內部或者外部使用者對系統進行攻擊或者惡意破壞時如何進行處理,是否仍能保證資料的安全。測試人員可以學習一些駭客技術,來對系統攻擊。
可靠性測試:這裡是比較狹義的可靠性測試,它主要是對系統能否穩定運行進行一個統計,在實際工作中如果沒有條件可以不必特意去做。重點做好與之相關的功能測試、健壯性測試就可以了。
安裝/反安裝測試:安裝測試主要檢驗軟體是否可以正確安裝,安裝檔的各項設置是否有效,安裝後能否影響原系統;反安裝是逆過程,測試是否刪除乾淨,是否影響原系統等。
文檔測試:主要測試開發過程中針對用戶的文檔,以需求、用戶手冊、安裝手冊等為主。檢驗文檔是否和實際應用存在差別。文檔測試不需要編寫測試用例。
二、測試階段
單元測試:單元測試是針對軟體設計的最小單位——程式模組進行正確性檢驗的測試工作,由開發人員進行,其目的在於發現每個程式模組內部可能存在的缺陷,實際程式師編碼過程中已經進行了。單元測試基本不需要編寫測試用例,開發人員自己調試通過、符合設計要求就可以了。
集成測試:集成測試是將模組按照設計要求組裝起來進行測試,主要目標是發現與介面有關的問題,由於在產品提交到測試部門前,產品開發小組都要進行聯合調試,所以大部分企業是由開發人員來完成集成測試的,但也可以到了測試部門後再次進行集成測試。主要測試模組之間資料傳輸是否正確、模組集成後的功能是否實現、模組介面功能與設計需求是否一致。集成測試緊接在單元測試之後,當單元測試通過後,便可開始配置集成測試環境。集成測試是最關鍵的一步,如果問題較多就把產品送到測試部,會造成反復測試,從而浪費人力、物力資源,延誤了工期。
系統測試:系統測試是在集成測試通過後進行,目的是充分運行系統,驗證各子系統是否都能正常工作並完成設計的要求。主要由測試部門進行,是測試部門最大最重要的一個測試,對產品的品質有重大的影響。系統測試的主要內容有:功能測試、健壯性測試、性能-效率測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試等。這個測試需要編寫大量的測試用例,投入大量的資源來完成。
接受度測試:根據需求階段的《需求規格說明書》為驗收標準,測試時要求模擬實際運行環境。對於實際專案可以和客戶共同進行,對於產品實際就是最後一次的系統測試。測試內容為對功能模組的全面測試, 尤其要進行文檔測試。
三、測試種類、階段和用例關係
功能測試用例:包含功能測試、健壯性測試、可靠性測試,
性能測試用例:包含性能測試、壓力測試、強度測試
集成測試用例:包含介面測試、健壯性測試、可靠性測試
安全測試用例:安全測試用例
使用者介面測試用例:使用者介面測試用例、少量功能測試用例。
安裝/反安裝測試用例:安裝/反安裝測試用例
                                     

測試階段
 測試類型
 執行人員
單元測試
模組功能測試,包含部分介面測試、路徑測試
開發人員
集成測試
介面測試、路徑測試,含部分功能測試
開發人員,如果測試人員水準較高可以由測試人員執行
系統測試
功能測試、健壯性測試、性能測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試
測試人員
接受度測試
對於實際項目基本同上,並包含文檔測試;對於軟體產品主要測試相關技術文檔
測試人員,可能包含用戶


四、以測試一部電梯為例

功能測試:開門,關門,鈴聲提示,報警電話,上樓,下樓,不同樓層同時呼叫,選擇多個樓層停留。

健壯性測試:同時按上下,不按關門鍵直接選擇樓層,不選擇樓層,選擇全部樓層,准載人數測試,超載人數測試,突然停電,運行中開門,用物體擋住門,本樓層選擇(如5樓選5)。

沒有留言: