論黑箱測試與白盒測試在軟體測試中的不同作用_白盒測試

來源:互聯網
上載者:User

  隨著軟體市場的成熟,人們對軟體作用的期望值也越來越高,我國的軟體企業已越來越意識到軟體測試的重要性,逐漸加大軟體測試在整個軟體開發的系統工程中的比重。

  軟體測試並非傳統意義上產品交付前單一的“找錯”過程,而是貫穿於軟體過程的始終,是一個科學的品質控制過程。而對於任何工程產品都可以使用以下兩種方法之一進行測試,即黑箱測試與白盒測試。

  二、黑箱測試在軟體測試中的作用

  黑箱測試也稱為功能測試、行為測試或資料驅動測試,在測試時,把程式看作一個不能開啟的黑盒,測試人員完全不考慮程式內部的邏輯結構和內部特性,只依據程式的需求規格說明書,檢查程式的功能是否符合它的功能說明,因此黑箱測試是基本測試。例如:我們用C#編寫“計算機”應用程式,我們如果輸入7並按sqrt鍵,就會得到結果2.645751311。使用黑盒子測試方式,不管“求平方根”要經曆多少複雜運算,只關心他的運行結果。

  黑箱測試方法主要有等價類別劃分、邊值分析、因――果圖、錯誤推測等,主要用於軟體確認測試。“黑盒”法著眼於程式外部結構、不考慮內部邏輯結構、針對軟體介面和軟體功能進行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程式中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。黑箱測試的主要缺陷是難于衡量系統的完整性,而白盒測試正好可以彌補這個缺陷。

  “黑盒”表示看不見盒子裡頭的東西,意味著黑箱測試不關心軟體內部設計和程式實現,只關心外部表格現,即通過觀察輸入與輸出即可知道測試的結論。任何人都可以依據軟體需求來執行黑箱測試。黑箱測試注重於測試軟體的功能性需求,著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試,多應用於測試過程的後期。它是一種根據軟體需求,設計文檔,類比客戶情境隨系統進行的實際測試.這種測試技術涵蓋了測試的方方面面,它主要是為發現以下幾類錯誤:是否出現功能錯誤或遺漏;在介面上能否進行正確的輸入與輸出;是否存在資料結構錯誤或外部資料庫訪問錯誤;效能上是否能夠滿足要求;是否有初始化或終止性錯誤。

  所以黑箱測試實際上是檢查以下幾點是否滿足要求:

  1、c正確性 (Correctness):計算結果,命名等方面。

  2、d可用性 (Usability):是否可以滿足軟體的需求說明。

  3、e邊界條件 (Boundary Condition):輸入部分的邊界值,就是使用等價類別劃分,試試最大最小和非法資料等等。

  4、f效能 (Performance):程式的效能取決於兩個因素:運行速度的快慢和需要消耗的系統資源。如果在測試過程中發現效能問題,修複起來是非常艱難的,因為這常常意味著程式的演算法不好,結構不好,或者設計有問題。因此在產品開發的開始階段,就要考慮到軟體的效能問題。

  5、g壓力測試 (Stress): 多使用者情況可以考慮使用壓力測試工具,建議將壓力和效能測試結合起來進行。如果有Server Load Balancer的話還要在伺服器端開啟監測工具 , 查看伺服器 CPU 使用率,記憶體佔用情況,如果有必要可以類比大量資料輸入,對硬碟的影響等等資訊。

  6、h錯誤恢複 (Error Recovery):錯誤處理,頁面資料驗證,包括突然間斷電,輸入錯誤資料等。

  7、i安全性測試 (Security):特別是一些商務網站,或者跟錢有關,或者和公司秘密有關的 web 更是需要這方面的測試。

  8、j 相容性 (Compatibility):不同瀏覽器,不同應用程式版本在實現功能時的表現。

  應用黑箱測試技術,能夠設計出滿足下述標準的測試案例集:

  (1)所設計出的測試案例能夠減少為達到合理測試所需要設計的測試案例總數;

  (2)所設計出的測試案例能夠告訴我們,是否存在某些類型的錯誤,而不僅僅指出與特定測試相關的錯誤是否存在。

  三、白盒測試在軟體測試中的作用

  白盒測試也稱結構測試或邏輯驅動測試,是一種以理解軟體內部結構和程式運行方式為基礎的軟體測試技術,通常需要跟蹤一個輸入經過了哪些處理,這些處理方式是否正確。這種方法是把測試對象看作一個開啟的盒子,它允許測試人員利用程式內部的邏輯結構及有關資訊,設計或選擇測試案例,對程式所有邏輯路徑進行測試。

  白盒測試關注的是被測對象的內部狀況,需要跟蹤原始碼的運行。通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試;在程式不同地方設立檢查點,檢查程式的狀態,以確定實際運行狀態與預期狀態是否一致。白盒測試者必須理解軟體內部設計與程式實現,並且能夠編寫測試驅動程式,一般由開發人員兼任測試人員的角色。在很多測試人員,尤其是初級測試人員認為,白盒測試是只有非常瞭解程式碼的進階測試人員才能做的測試。熟悉代碼結構和功能實現的過程當然對測試有很大的協助,但有些白盒測試是不需要測試人員懂得每一行程式碼的。假如我們有如下程式:

  ......

本文轉載自51Testing軟體測試網,查看全文:http://www.51testing.com/html/35/n-828735.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.