軟體工程——測試

來源:互聯網
上載者:User

 

單元測試 (白盒測試)

1模組介面:  

內部檢查:傳輸參數的數目、屬性、單位、次序是否匹配;全程變數的定義是否一致;只做輸入的變元有無被修改,等等  

內部檢查:開啟、結束、關閉檔案的操作;檔案和屬性;I\O錯誤處理;輸出拼字,等等

2局部資料結構:  

資料說明;初始化與預設值的設定;變數名拼字;資料類型的相容性;上\下溢出及地址異常,等等。

3重要的執行通路:

 由於窮盡測試的不可能,故通常針對最常見的錯誤設計測試方案。

較常見的錯誤有:  計算次序問題;  不同類型混合運算;  初值設定錯誤;  精度問題;  運算式錯誤  迴圈終止條件錯誤;

4出錯處理通路:

 預見出現錯誤的條件,設定處理。

較常見的問題有:  

輸出的錯誤資訊難以理解,

不能確定錯誤位置

描述的錯誤與實際錯誤不符  

處理之前系統已經幹預  

處理不正確

5邊界條件——單元測試中最後,也可能是最重要的任務,因為軟體常在其邊界失效。

單元測試的主要手段:

1代碼審查  

走讀 walk_through:

例如 Lucent Technologies 的測試策略,是由三人一組(包括author,reader,和recorder),逐行檢查原始碼。  預演由人扮演computer,類比執行情況

優點:一次審查科發現多個錯誤,不必改一個測一個。

2製作測試軟體:  

Stub(存根)和Driver(驅動)軟體的編寫,屬額外開支。模組高內聚可簡化這一過程。

 

 

設計測試方案

任務:

1預定要測試的功能

2設計輸入的測試資料

3列出預期結果

主要技術:

1邏輯覆蓋(Logical coverage)——適用於白盒測試  覆蓋程度由弱到強依次為:  

(1)語句覆蓋(Statement coverage):每個語句至少執行依次。  

(2)判定覆蓋(Branch coverage):再(1)的基礎上,每個判定的每個分支至少執行依次。  

(3)條件覆蓋(Condition coverage):在(1)的基礎上,使每個判定運算式的每個條件都取到各種可能的結果。  

(4)判定/條件覆蓋:即判定覆蓋∩條件覆蓋  

(5)條件組合覆蓋:每個判定運算式中條件的各種肯能組合都至少出現依次。  

(6)點覆蓋=語句覆蓋  

(7)邊覆蓋=判定覆蓋  

(8)路徑覆蓋(Path coverage):每條可能的路徑都至少執行依次,若圖中有環,則每個環至少經過依次。  

(9)路徑覆蓋/條件組合覆蓋

 

2等價劃分(Equivalence Partitioning)——適用於黑箱測試  

是一種很常用的測試方法。其對測試資料的選擇是基於對程式功能的分析,按照程式輸入要求和輸出要求,選擇若干資料進行測試功能的過程。

(1)劃分經驗

當規定了輸入範圍時:無效類【 有效類 】無效類 當規定了一組輸入值,且對不同值做不同處理時。

  例:教工分房方案中,按教授、副教授、講師、助教分別計分=》有效類4個;無效類1個(4個有效類之外)

當規定了輸入的規則時:例:PASCAL 語言規定,每個語言以“;”結束=》有效類1個;無效類若干(以“,”結束、以“:”結束、以空格結束等等)

當輸入為整型時:有效類可分為Z+、0、Z- 三種

當處理表格時:有效類可分為空白表、含一項的表、含多項的表等

(2)設計步驟

設計一個新方案以儘可能多地覆蓋尚未被覆蓋的有效等價類別;重複這一步驟直到所有有效類都被覆蓋為止。

設計一個新方案以覆蓋一個且僅一個尚未被覆蓋的無效等價類別;重複這一步驟直到所有無效類都背覆蓋為止。(通常程式執行一個錯誤後即不繼續檢查其他錯誤)

 

3邊界值分析(Boundary Value Analysis)

注意:  (1)程式最容易在邊界發生錯誤;  (2)通常與等價劃分結合進行。

 

4錯誤推測(Failure Prediction)

思路:  (1)列出可能有的錯誤;  (2)列出容易發生錯誤的特殊情況。

以此為基礎設計測試方案

根據:經驗、直覺

5實用策略(Practical Strategies) 黑盒設計+白盒補充

(1)在任何情況下都應首先實用邊界值分析的方法;

(2)必要時用等價劃分法補充;

(3)必要時再用錯誤推測法補充;

(4)對照程式邏輯,檢查測試方案。可根據對程式可靠性的要求採用不同的邏輯覆蓋標準,必要時補充一些測試方案。

註:即使用上述綜合策略設計測試方案,仍不能保證發現一切錯誤。例如Lucent公司經過包括逐行檢查原始碼在內的多方面測試之後,其軟體能達標啟動並執行成功率為 80%,可想而知,沒有經過測試的軟體運行成功率更低。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.