1. 程式人生 > >軟體測試_理論知識(入門)

軟體測試_理論知識(入門)

軟體測試_入門總結說明:來源是一些部落格、百度文庫、書籍等。

1.軟體測試_基本概念包含定義和目的兩個部分:

    使用人工和自動的手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。

    軟體測試的目的(補充解釋):1)從使用者角度出發:希望軟體測試暴露軟體隱藏的錯誤和缺陷,從而考慮是否接受該產品;2)從軟體開發者的角度出發:希望表明軟體產品不存在錯誤和缺陷,驗證軟體能正確地實現使用者需求,確立人們對軟體質量的信心;3)從軟體管理者角度出發:希望話費有限的資源達到該軟體的質量要求,經費和進度是其考慮的焦點;

    軟體測試根本目的:確保最終交給使用者的產品符合使用者的需求,在產品交給使用者之前儘可能多的發現並改正問題。

--------------------------------------------------------------------------------------------------------

    在瞭解了基本概念後,因測試的體系複雜,所以無論是面試還是實際工作,都非常有必要從圖形(模式)上來籠統的先理解軟體測試的流程和分類

--------------------------------------------------------------------------------------------------------

    最早的瀑布模型:


V模型:反映了實際和測試之間的關係


2個傳統的模型最早的解釋了測試的流程,但是都有非常明顯的侷限性:僅僅把測試過程作為編碼之後的一個階段,忽視了測試對需求的分析,系統設計的驗證,如果前面設計錯誤,一直到後期驗收測試才被發現,耗時耗力。(PS:我在曾經的面試中,碰到有測試leader問這個測試模型叫測試的U模型,其實是沒有這個說法的)

W模型:


侷限:仍然不支援迭代,減少了一定錯誤發生率,但是需按照流水線進行設計、編碼和測試。

X模型:是一種比較獨特的複雜模型,可以自行去了解

H模型:


特點:【活動並行】過程完全獨立,並貫穿整個產品週期;結論:軟體測試應儘早地準備和進行,可以根據被測物的不同而分層次進行

----------------------------------------------------------------------------------------

    在瞭解完軟體測試的模型後,來認識下當下流行的“敏捷測試/開發”:

----------------------------------------------------------------------------------------

敏捷測試Agile Testing:敏捷測試是遵循敏捷宣言的一種測試實踐。

敏捷宣言(包含四種核心價值觀和十二條原則):

    個體與互動  重於 過程和工具 

    可用的軟體  重於 完備的文件 

    客戶協作  重於 合同談判 

    響應變化  重於 遵循計劃 

    (在每對比較中,後者並非全無價值,但我們更看重前者)

敏捷宣言的十二條原則就是敏捷過程的特點總結和解釋,具體內容自行了解;

    通過以上測試模型,和敏捷測試,就形成了當下不同公司,但大同小異的測試過程或專案流程;

===============================================================

無意間發現一張【軟體測試三維空間】,更直觀、簡單的解讀了軟體測試:


這個圖也包含了軟體測試的分類(三個維度上的區分);

PS:軟體測試的分類非常多,甚至某個類別就是軟體測試的一個領域,專門的去了解每一個測試的分類是非常有必要的,但是專精於一個分類領域才是明智的。

更準確、快速的掌握軟體測試理論和思維,實際的工作經驗,和書籍都是非常必要的;

其中推薦二本:探索吧!深入理解探索式軟體測試、探索式軟體測試;