項目的生命周期和測試
1.軟件開發模型與生命周期
1.1 軟件開發模型
-
瀑布模型
-
快速原型模型
-
螺旋模型
注意: 軟件測試與軟件的開發模式有著緊密的聯系,作為一名測試人員,應該充分理解軟件的開發模式,以便找準自己在其中的位置,從而發揮自身的價值
1.1.1瀑布模型
# 1.瀑布模型: 如下圖
# (1).瀑布模型的特點
1).是線性模型的一種,每一個階段只執行一次。
2).文檔驅動。
# (2).瀑布模型的優缺點
優點:
1).開發的各個階段比較清晰,當前階段完成后,只需關注后續階段。
缺點:
1).不響應需求的變化。
2).風險往往延至后期才顯露,失去及早糾正的機會。

1.1.2.快速原型模型
# 2.快速原型模型
在開發真實系統之前,構造一個原型,在該原型的基礎上,逐漸完成整個系統的開發工作。
# (1).快速原型模型的特點
1).快速的構建軟件的原型
2).支持用戶參與
# 優缺點:
優點: 克服瀑布模型的缺點,減少由于軟件需求不明確帶來的項目開發風險。
缺點: 不適合大型系統的開發(適合開發小型的、靈活性高的系統)。

生命周期

1.1.3螺旋模型
# 3.螺旋模型(了解)
# (1).螺旋模型特點: 引進了風險分析活動
# (2).螺旋模型的優缺點:
優點: 螺旋模型很大程度上是一種風險驅動的方法體系。
缺點: 采用螺旋模型需要具有相當豐富的風險評估經驗和專門知識。

2 測試模型
2.1軟件測試模型
-
V模型(重點)
-
W(雙V)模型(重點)
2.1.1V模型(背下來)
# 1.V模型
# (1).V模型介紹:
- V模型是最具有代表意義的測試模型,最早是由Paul Rook在20世紀80年代后期提出,由英國國家計算機中心文獻中發布,旨在改進軟件開發的效率和效果;
- V模型本身是軟件開發中瀑布模型的變種,它反映了測試活動與分析和設計的關系。
- V模型標明了測試過程中本身存在的不同階段,從左到右,描述了開發過程和測試過程間的階段對應關系。
# (2).V模型的優缺點
優點: 測試V模型即包含了底層測試又包含了高層測試;
缺點: 當需求變更時將會導致返工量非常大,模型靈活性比較低。
# V模型示意圖:

2.1.2W模型(背下來)
# 2.W模型
# (1).W模型介紹:測試伴隨著整個軟件開發周期,并且測試的對象不僅僅是程序,需求和設計同樣要測試。
# (2).W模型的優缺點:
優點:
1).強調測試伴隨著整個軟件開發周期,而且測試的對象不僅僅是程序,還包括需求和設計。
2).更早地介入測試,能盡早得發現缺陷進行修復。
缺點: 對于測試技術要求高,實踐起來困難。
# W模型示意圖如下:
# 不同階段軟件缺陷修復費用如下圖:


3 質量模型
軟件質量,就是軟件與明確地和隱含地定義的需求相一致的程度。
ISO 9126軟件質量模型是評價軟件質量的國際標準,這個模型是軟件質量標準的核心,對于大部分的軟件, 都可以考慮從這這6個特性和27個子特性去測試、評價一個軟件。

4.軟件測試分類
4.1軟件測試分類總覽
# 軟件測試根據不同的方式進行分類如下圖:

4.2 按測試階段劃分
# 1.單元測試
單元測試, 又稱模塊測試,針對軟件設計中的最小單位-程序模塊,進行正確性檢查的測試工作。單元測試需要從程序內部結構出發設計測試用例。多個模塊可以平行地獨立進行單元測試。
單元定義:C中指一個函數,Java中指一個類。

# 2.集成測試
集成測試, 又叫組裝測試,通常在單元測試的基礎上,將所有程序模塊進行有序的、遞增的測試。

# 3.系統測試
系統測試, 指的是將整個軟件系統看為一個整體進行測試,測試的依據是軟件需求說明書.
# 4.驗收測試
驗收測試, 用來檢驗軟件是否符合用戶需求的測試.
驗收測試又細分為一下分類:
(1).α測試:
Alpha 是內測版本
通常只在軟件開發者內部交流
一般而言, 該版本軟件的bug較多,普通用戶最好不要安裝
(2).β測試:
Beta是公測版本,是對所有用戶開放的測試版本
這一版本通常由軟件公司免費發布, 用戶可從相關的站點下載
通過一些專業愛好者的測試, 將結果反饋給開發者, 開發者們再進行有針對性的修改
(3).γ測試:
Gamma版本,指的是軟件版本正式發行的候選版。該版本已經相當成熟了, 與即將發行的正式版相差無幾, 成為正式發布的候選版本
4.3 按是否查看源代碼劃分
軟件測試分類中按照是否查看源代碼劃分可以分為以下幾類:
- 黑盒測試
- 白盒測試
- 灰盒測試
# 1.黑盒測試
黑盒測試, 又稱數據驅動測試,完全不考慮程序內部結構和內部特性,注重于測試軟件的功能需求,只關心軟件的輸入數據和 輸出數據。

# 2.白盒測試
白盒測試, 指的是把盒子打開,去研究里面的源代碼和程序結構。

# 3.灰盒測試
灰盒測試,是介于白盒測試與黑盒測試之間的一種測試,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。
4.4 按是否運行劃分
(1).靜態測試:指不實際運行被測軟件,而只是靜態地檢查程序代碼、界面或文檔中可能存在的錯誤過程。
(2).動態測試:是指實際運行被測程序,輸入相應的測試數據,檢查實際輸出結果和預期結果是否相符的過程。
4.5 按照是否自動化劃分
人工測試: 也叫做手工測試,測試人員手動去進行的測試
自動化測試: 利用代碼或者工具幫助人工進行測試
4.6 更多分類
冒煙測試: 冒煙測試就是對系統進行最基本功能的測試,保證基本的功能和流程能走通
回歸測試: 當修復一個BUG后,把之前的測試用例在新的代碼下進行再次測試
隨機測試: 隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試用例沒有覆蓋到的部分
探索性測試: 探索性測試意味著同時設計測試和執行測試。測試人員通過測試來不斷學習被測系統。

浙公網安備 33010602011771號