2014-02-28 29 views
1

我一直在閱讀白盒和黑盒測試。Whitebox和Blackbox測試

如果我不是錯:

白箱測試的軟件程序的執行,但黑箱測試輸入和輸出。

有人可以請給我一個這兩種情況下的簡單代碼的例子嗎?

預先感謝您。

那麼,這裏的代碼是黑箱測試?

class Schalter 
    { 
    private boolean 
    { 
     private boolean _istAn; 
     public Schalter(boolean anfangsAn) 
     { 
      _istAn = anfangsAn;   
     }  
     public boolean istAn() 
     { 
      return _istAn; 
     } 
     public void umschalten() 
     { 
     _istAn = !_istAn; 
     } 
    } 

回答

8

Blackbox - >你真的只是檢查你是否得到正確的輸出,你輸入你的程序的輸入。

假設你有一個提示,要求你輸入2位數來得到數字的總和。

進入2號:2 5 輸出:2 + 5 = 7

這就是全部是黑盒子真的。


你想查看它是如何發生的白色方塊。

你可以做這將是像

int adder(int firstNum, int secondNum) 
{ 
    return firstNum + secondNum; 
} 

這是效率比正常的事情這樣說:

int adder(int firstNum, int secondNum) 
{ 
    int temp; 
    for(int i = 0; i < (firstNum + secondNum + 1); i++) 
     temp = i; 
    return temp; 
} 

在白盒測試,你會看你的代碼,並找出這更有效率和/或更易於閱讀。顯然,第一個是因爲:

  1. 的代碼更簡單,更容易理解
  2. 先不涉及循環找到答案這需要更多的處理時間比第一
  3. 第一個沒有按」創建不需要的額外變量。這意味着需要更少的內存來跟蹤數據。

這是一個簡單和武斷例子,但是當你到更大的項目,當你做單元測試,以找出是否你的代碼的小片段的作品,你會做很多白盒測試和你通常會做當您啓動代碼的小片段集成到更大的項目檢查,如果你仍然得到給定輸入正確的輸出黑箱測試。

另一種方式來看待它,你可以使用黑箱測試,看看你都拿到不錯的輸出,如果是的話,你可以去和做白盒測試,看看你做錯了在你的代碼。

+0

一個很好的答案爲學習者喜歡我 –

3

黑箱測試是測試的方式,你不關心程序如何操作輸入;你只是檢查輸出是否對指定的輸入有效。

白盒測試是當你關心程序是如何操縱輸入,以及輸出測試的方式。

我想一個例子是,如果你正在編寫排序算法的測試。黑盒測試只會檢查輸出是否按照您的預期排序。白盒測試可能會檢查排序是否爲stable,因爲這取決於排序算法的實現。例如,合併排序是穩定的,而Quicksort的典型就地版本不是(儘管存在穩定版本)。

+0

解禁@ SY7請發表你的問題你的代碼;發佈評論時很難閱讀。 –

2

看簡單的話,白盒測試是一個測試,你知道軟件或任何應用程序的內部路徑和編碼。在白盒測試中設計測試用例需要編程技巧。白盒測試可以單位測試,集成測試和系統測試來進行。

黑盒測試您只需要SRS(軟件需求規格)來了解系統的作用和客戶的要求。這裏測試人員的編程技能沒有經過測試。通常在手動測試BlackBox方法之後。黑盒測試在幾乎所有層面做即單位測試,集成測試,系統測試和驗收測試