1. 程式人生 > >軟體工程之軟體測試

軟體工程之軟體測試

【前言】

一個好的軟體一定離不開軟體測試,只有在測試的過程中發現儘可能多的錯誤,才能保證軟體是否是真的好。我認為軟體測試是軟體開發過程最重要的一環。

對於本章我將以下圖來講。

一、目的和原則

測試的目的是為了發現儘可能多的缺陷,不是為了說明軟體中沒有缺陷。成功的測試在於發現了迄今尚未發現的缺陷,它能有效地揭示潛伏在軟體裡的缺陷。

據統計測試工作量要佔軟體開發總成的40%到50%以上。

1.目的:

(1)測試是程式的執行過程,目的在於發現錯誤。

(2)一個好的測試用例在於能發現至今未發現的錯誤

(3)一個成功的測試是發現了至今未發現的錯誤的測試

2.原則:

儘早地和不斷地進行軟體測試

由測試輸入資料和對應地預期輸出結果這兩部分組成

程式設計師應避免檢查自己地程式

二、黑白盒測試

1.黑盒測試:

主要檢查所有功能。

黑盒測試著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試。

最大的侷限就是隻能測試功能是否正確,但是無法檢測錯在哪裡。黑盒測試是以使用者的角度。

(測試方法)

  • 等價類劃分

  • 邊界值分析

  • 錯誤推測發

  • 因果圖

2.白盒測試:

全面瞭解程式內部邏輯結構、對所有邏輯路徑進行測試。跟黑盒測試正好相反,可以清楚的看到加工的結構,可以看清程式的主要邏輯,一 一進行測試。

(測試方法)

靜態測試:

不要求在計算機上實際執行所測程式,主要以一些人工的模擬技術對軟體進行分析和測試

動態測試:

通過輸入一組預先按照一定的測試準則構造的例項資料來動態執行程式,而達到發現程式錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。

三、軟體測試策略

測試過程按4個步驟進行,即單元測試,組裝測試、確認測試和系統測試。

1.單元測試

單元測試又稱為模組測試,是針對軟體設計的最小單位——程式模組,進行正確性檢驗的測試工作。

2.組裝測試

通常,把模組組裝成為系統的方式有兩種:一次性組裝方式    和   增殖式組裝方式

     (1)自頂向下的增殖方式

     (2)自底向上的增殖方式

     (3)混合增殖式測試

3.確認測試

確認測試又稱有效性測試。任務是驗證軟體的功能和效能及其它特性是否與使用者的要求一致。

4.系統測試

是將通過確認測試的軟體,作為整個基於計算機系統的一個元素,與計算機硬體、外設、某些支援軟體、資料和人員等其它系統元素結合在一起,在實際執行環境下,對計算機系統進行一系列的組裝測試和確認測試。

α測試和β測試

α測試是由一個使用者在開發環境下進行的測試,也可以是公司內部的使用者在模擬實際操作環境下進行的測試

β測試是由軟體的多個使用者在實際使用環境下進行的測試。這些使用者返有關錯誤資訊給開發者

四、測試種類

功能測試、可靠性測試、強度測試(敏感式測試)、效能測試、恢復測試、啟動/停止測試、配置測試、安全性測試、可使用性測試、可支援性測試、安裝測試、過程測試、互連測試、相容性測試、容量測試、文件測試。

五、除錯

原則:

(1).用頭腦去分析思考與錯誤徵兆有關的資訊

(2).避開死衚衕。

(3).只把除錯工具當做輔助助手手段來使用。

(4).避免用試探法,最多隻能把它當做最後手段。

(5)修改錯誤的原則

(6)在出現錯誤的地方,很可能還有別的錯誤。

(7)當修正一個錯誤的同時有可能會引入新的錯誤。