1. 程式人生 > >軟體測試基礎--白盒測試、黑盒測試、自動化測試

軟體測試基礎--白盒測試、黑盒測試、自動化測試

1   白盒測試

        白盒測試也稱為結構測試或者邏輯驅動測試,它是按照程式內部的結構測試程式,通過測試來檢驗產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程式中的每條通路是否能按照預定要求正確工作

         這一方法是吧測試物件看做一個開啟的盒子,測試人員根據程式內部邏輯結構相關資訊,設計或者選擇測試用例,對程式所有邏輯路徑進行測試,通過在不同點檢查程式的狀態,確定實際的狀態是否與預期的狀態一致。

         採用什麼方法對軟體進行測試呢?

         常用的軟體測試方法有兩大類:靜態測試方法和動態測試方法。其中軟體的靜態測試不要求在計算機上實際執行所測程式,主要以一些人工的模擬技術對軟體進行分析和測試;而軟體的動態測試是通過輸入一組預先按照一定的測試準則構造的實際資料來動態執行程式,而達到發現程式錯誤的過程。

2   黑盒測試

         黑盒測試也成為功能測試,它是通過測試來檢驗每個功能是否能正常使用,在測試是,把程式看做是一個不能開啟的盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測試,他只是檢測程式是否按照需求規格說明書的規定正常使用,程式能否能適當地接收輸入資料而產生正確的輸出資訊,黑盒測試試著著眼於程式外部結構,不考慮內部邏輯結構,主要對軟體介面和軟體功能進行測試。

         黑盒測試是以使用者的角度,從輸入資料和輸出資料的對應關係出發進行測試的,很明顯,如果外部特性本身有問題或規格說明的規定有誤,用黑盒測試方法是發現不了的。

          黑盒測試法注重測試軟體的功能需求,主要試圖發現下列幾類錯誤:

  1.            功能不正確或遺漏
  2.            介面錯誤
  3.            資料庫訪問錯誤
  4.            效能錯誤
  5.            初始化和終止錯誤等

從理論上講,黑盒測試只有採用窮舉輸入測試,吧所有可能的輸入作為測試情況考慮,才能查出程式中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但有可能的輸入進行測試。這樣看來,完全測試是不可能的,所以我們要有針對地測試,通過指定測試案例指導測試的實施,保證軟體測試有組織、有步驟以及有計劃地進行。黑盒測試行為必須能夠加以量化,才能真正保證軟體質量,而測試用例就是講測試行為具體量化的方法之一。具體的黑盒測試用例設計方法包括:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法,功能圖法等。

       等價類劃分的方法:是把程式的輸入域劃分成若干部分,然後從每個部分中選取少數代表性資料作為測試用例、每一類的代表測試資料在測試中的作用等價於這一類中的其他值。

         邊界值分析法:是通過選擇等價類邊界的測試用例,邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。

         錯誤推測設計方法:就是基於經驗和直覺推測程式中可能存在的各種錯誤,從而有針對性地設計測試用例的方法。

         因果圖方法:是從用自然語言 書寫的程式規格說明書的描述中找出因(輸入條件)和果(輸出或程式狀態的改變),可以通過因果圖轉換為判定表。

         正交試驗設計法:就是使用已經構造好了的正交表格來安排試驗並進行資料分析的一種方法,目的是用最少的測試用例達到最高的測試覆蓋率。

3   自動化測試

為了更加快速、有效地對軟體進行測試,提高軟體產品的質量,我們必然會利用測試工具,也必然會引入自動化測試。

3.1  自動化測試的定義

        自動化測試就是通過測試工具或其他手段,按照測試工程師的預定計劃對軟體產品進行自動的測試,它是軟體測試的一個重要組成部分,它能夠實現很多手工測試無法完成或者難以實現的一些測試工作。正確、合理地實施自動化測試,能夠快速、全面地對軟體進行測試,從而提高軟體質量,節省經費,縮短產品釋出週期。

         軟體測試自動化涉及到測試流程、測試體系、自動化編譯以及自動化測試等方面的整合。也就是說,要讓測試能夠自動化,不僅是技術、工具問題,更是一個公司和組織文化問題。首先公司要先從資金、管理上給予支援,其次要有專門的測試團隊去建立適合自動化測試的測試流程和測試體系,最後才是把原始碼從受控制庫中取出、編譯、整合、釋出並進行自動化的功能和效能等方面的測試