軟體測試相關簡要記錄

nomasp發表於2015-06-26

軟體測試

編碼和測試統稱為實現。

通常在編寫出每個模組之後就對程式做必要的測試,這叫做單元測試。模板的編寫者和測試者是同一個人。

之後會進行其他綜合測試,由專門的測試人員承擔這份工作,也就是軟體測試工程師。

軟體測試的工作量往往佔軟體開發總工作量的40%以上。

編碼

對於編碼有如下要求:

1)程式內部的文件

2)資料說明

3)語句構造

4)輸入輸出

5)效率:程式執行時間、儲存器效率、輸入輸出的效率

軟體測試基礎

一、軟體測試的目標

1)測試是為了發現程式中的錯誤而執行程式的過程

2)好的測試方案極可能發現迄今為止尚未發現的錯誤的測試方案

3)成功的測試是發現了至今為止尚未發現的錯誤的測試

注:測試只能查詢出程式中的錯誤,而不能證明測試中沒有錯誤。

二、軟體測試準則

1)所有的測試都應該能追溯到使用者需求

2)應該遠在測試開始之前就制定出測試計劃

3)把Pareto原理(測試發現的錯誤中的80%很可能是程式中20%的模組造成的)應用到軟體測試中

4)應該從“小規模”測試開始,並逐步進行“大規模”測試

5)窮舉測試是不可能的

6)應該由第三方從事測試工作

三、測試方法

白盒測試和黑盒測試,先進行白盒測試,後進行黑盒測試。(隨後會有補充)

四、測試步驟

1)模組測試(又被稱為單元測試)

2)子系統測試(將經過單元測試的模組放到一起形成一個子系統)

3)系統測試(將經過測試的子系統裝配成一個完整的系統來測試)

4)驗收測試(將軟體系統作為一個單一的整體,它是使用者積極參與下進行的,驗收測試也被稱為確認測試)

5)平行執行(將新舊系統同時執行進行比較,目的是:1,可以在準生產環節中執行新系統而不冒風險;2,使用者能有一個熟悉新系統的過程;3,可以驗證使用者指南和使用手冊之類的文件;4,能夠以準生產模式對新系統進行全負荷測試,可以用測試結果驗證效能指標)

五、測試階段的資訊流

輸入的資訊由兩大類:

1)軟體配置,包括需求說明書、設計說明書和源程式說明書清單等

2)測試配置,包括測試計劃和測試方案,所謂測試方案不僅僅是測試時使用的輸入資料(稱為測試用例),還應該包括每組輸入資料預定要檢驗的功能,以及每組資料預期應該取得的正確輸出

(測試配置是軟體配置的一個子集,也就是說最終交出的軟體配置應該包括測試配置和測試的實際結果和測試的記錄)

單元測試

一、測試重點

1)模組介面

包括:引數的數目、次序、屬性或單位系統與變元是否一致;是否修改了只作輸入用的變元;全域性變數的定義和用法在各個模組中是否一致

2)區域性資料結構

常有區域性資料說明、初始化、預設值等方面的錯誤

3)重要的執行通路

4)出錯處理通路

錯誤常在:1 對錯誤的描述是難以理解的;2 記下的錯誤與實際遇到的錯誤不同;3 在對錯誤進行處理之前,錯誤條件已經引起系統干預;4 對錯誤的處理不正確;5 描述錯誤的資訊不足以幫助確定造成錯誤的位置

5)邊界條件

二、程式碼審查

三、計算機測試

為每個單元測試開發驅動軟體和(或)存根軟體

整合測試

一、自頂向下整合

二、自底向上整合

三、在軟體結構的較上層使用自頂向下方法與軟體結構中較下層使用的自底向上方法相結合。

四、迴歸測試

確認測試

確認測試也稱為驗收測試,它的目的是驗證軟體的有效性。

驗證(verification)是指保證軟體正確的實現了某個特定要求的一系列活動。

確認(validation)是指保證軟體確實滿足了使用者需求進行的一系列活動。

軟體有效性的定義:如果軟體的功能和效能如同使用者所合理期待的那樣,軟體就是有效的。

一、軟體測試的兩種可能結果:

1)功能和效能與使用者要求一致,軟體是可以接受的。

2)功能和效能與使用者要求有差距。

二、軟體配置複查

三、Alpha和Beta測試

Alpha測試由使用者在開發者的場所進行,並且在開發者對使用者的“指導”下進行測試。開發者負責記錄發現的錯誤和使用中遇到的問題。也就是說Alpha測試是在受控的環境中進行的。

Beta測試由軟體的終端使用者在一個或多個客戶場所進行。開發者通常不在場,也就是說是不受控的環境。使用者記錄在Beta測試中遇到的一切問題(真實的或想象的),並定期將這些報告給開發者。

也就是說,作為計算機/軟體的使用者而言,我們平常接觸最多的Beta版的軟體,而Alpha版的軟體除了自己開發/測試的基本不會遇到。

白盒測試技術

一、邏輯覆蓋

1)語句覆蓋

2)判定覆蓋

3)條件覆蓋

4)判定/條件覆蓋

5)條件組合覆蓋

6)點覆蓋

7)邊覆蓋

8)路徑覆蓋

二、控制結構測試

1)基本路徑測試

主要是:1 根據過程設計結果畫出相應的流圖;2 計算流圖的環形複雜度,環形複雜度定量度量程式的邏輯複雜性;3 確定線性獨立的基本集合;4 設計可強制執行基本集合中每條路徑的測試用例

環形複雜度計算方式:V(G)=P+1,P是流圖中判定(if等)結點的數目。

2)條件測試

3)迴圈測試

主要包括:簡單迴圈,巢狀迴圈,串接迴圈(也就是兩個迴圈並列,而非包含關係,包含關係時為巢狀迴圈)

黑盒測試

一、黑盒測試力圖解決的問題:

1)功能不正確或遺漏了功能
2)介面錯誤
3)資料結構錯誤或外部資料庫訪問錯誤
4)效能錯誤
5)初始化和終止錯誤

二、設計黑盒測試時應考慮的問題:

1)怎樣測試功能的有效性?
2)哪些型別的輸入可構成好測試用例?
3)系統是否對特定的輸入值特別敏感?
4)怎樣劃定資料類的邊界?
5)系統能夠承受什麼樣的資料率和資料量?
6)資料的特定組合將對系統執行產生什麼樣影響?

三、等價劃分

將輸入域劃分成若干個資料類,據此匯出測試用例。

四、邊界值複習

五、錯誤推測

除錯

一、除錯途徑

1)蠻幹法
2)回溯法
3)原因排除法

軟體可靠性

軟體可靠性是程式在給定的時間間隔內,按照規格說明書的規定成功地執行的概率

錯誤的含義是開發人員造成的軟體差錯(Bug)

故障的含義是由錯誤引起的軟體的不正確行為

一、估算平均無故障時間的方法

1)符號

ET

E_T
——測試之前程式中錯誤總數
IT
I_T
——程式長度(機器指令總數)
τ
\tau
——測試(包括除錯)時間
Ed(τ)
E_d(\tau)
——在0至τ
\tau
期間發現的錯誤數
Ec(τ)
E_c(\tau)
——在0至τ
\tau
期間改正的錯誤數

2)估計錯誤總數

植入錯誤發和分別測試法

相關文章