1 回答

TA貢獻1805條經驗 獲得超9個贊
軟件的測試方法很多,不同的出發點得到不同的測試方法。有:
?從測試過程來分:靜態分析法、動態測試法;
?從觀察結構的透明性方式來分:白盒法、黑盒法、灰盒法;
?從獲得測試數據形式上分:窮盡法;等價類劃分法;邊界值分析法;
?從邏輯分析上分:因果圖法;錯誤推測法;
?從測試步驟上分:單元測試、集成測試、確認測試、系統測試等;
?從考察形式上分:功能測試,邏輯測試;? ? ? ? ? ?如何測試得更完全、怎樣進行測試用例的設計,是軟件測試中的關鍵技術。無論用哪種方法進行測試,都是設法用較少的測試用例集合測試出程序中較多的潛在錯誤。
靜態分析時,不執行程序,可對需求分析說明書、軟件設計說明書、源程序做結構檢查、流圖分析、符號執行來分析軟件可能導致的異常情況,找出軟件錯誤。從測試過程來分:靜態分析法、動態測試法;
結構檢查是手工分析技術,對需求說明、程序設計、編碼、測試工作進行評議,虛擬地(模擬)執行程序,在評議中發現和檢查錯誤;
流圖分析是通過分析流程圖、代碼結構來檢查程序錯誤,便于進行編碼分析和測試結果分析;
符號執行是定義符號化數據,為程序的每條路徑給出符號表達式,對特定路徑輸入符號,經處理輸出符號,判斷程序的行為是否錯誤,這種方法復雜,易出錯,較少使用。
灰盒法是白盒法和黑盒法相結合使用的方法,僅對重點路徑和程序段用白盒法測試,大部分用黑盒法進行測試。
動態測試是直接執行程序進行測試,包括功能測試、接口測試和結構測試,觀察程序的行為,記錄執行的結果,從執行結果來分析程序可能出現的錯誤;
有些人設想,不管使用那種測試方法,只要對每一種可能發生的情況都進行測試,能正確通過,就可以得到完全正確的程序。
包含所有可能情況的測試稱為窮盡測試,實際上,通常不可能做到窮盡測試。因為各種輸入數據的排列組合情況往往多到無法實際測試完成的程度。如用黑盒法測試三個整數型的輸入數據,如果每個整數是16位二進制數,則輸入數據有
216×216×216=248≈2.8×1014種排列組合。
如果每測試一次需要1毫秒,測試完畢這些排列組合的各種情況需要一萬年,另外還需測試不合法的輸入情況,實際上不可能窮盡所有組合情況。因此,一般的軟件測試是有限測試。
Alpha(α)測試:通用軟件產品為了征集用戶的意見,在開發者的場所,由用戶進行的測試,記錄用戶發現的錯誤和問題。
Beta(β)測試:在一個或多個用戶自己的場所,由最終用戶進行,并記錄在測試中遇到的所有問題和想法。
重要的通用軟件產品,大多經過α和β測試。
添加回答
舉報