黑盒測試的7種測試方法

2021-01-05 電子產品世界

黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼於程序外部結構,不考慮內部邏輯結構,主要針對軟體界面和軟體功能進行測試。

本文引用地址:http://www.eepw.com.cn/article/201807/383627.htm

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

黑盒測試有7種測試方法分別是等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、功能圖法、正交實驗法。下面將一一介紹。

等價類劃分法

等價類劃分是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然後從每一個子集中選取少數具有代表性的數據作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。

1、劃分等價類:

等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對於揭露程序中的錯誤都是等效的。併合理地假定:測試某等價類的代表值就等於對這一類其它值的測試。因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件,就可以用少量代表性的測試數據。取得較好的測試結果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。

有效等價類:是指對於程序的規格說明來說是合理的,有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明中所規定的功能和性能。

無效等價類:與有效等價類的定義恰巧相反。設計測試用例時,要同時考慮這兩種等價類。因為,軟體不僅要能接收合理的數據,也要能經受意外的考驗。這樣的測試才能確保軟體具有更高的可靠性。

2、劃分等價類的方法:

下面給出六條確定等價類的原則。

①在輸入條件規定了取值範圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。

②在輸入條件規定了輸入值的集合或者規定了「必須如何」的條件的情況下,可確立一個有效等價類和一個無效等價類。

③在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。

④在規定了輸入數據的一組值(假定n個),並且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。

⑤在規定了輸入數據必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。

⑥在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。

3、設計測試用例:

在確立了等價類後,可建立等價類表,列出所有劃分出的等價類:輸入條件 有效等價類 無效等價類

4、設計原則:

然後從劃分出的等價類中按以下三個原則設計測試用例:

①為每一個等價類規定一個唯一的編號。

②設計一個新的測試用例,使其儘可能多地覆蓋尚未被覆蓋地有效等價類,重複這一步。直到所有的有效等價類都被覆蓋為止。

③設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋為止。

邊界值分析法

邊界值分析方法是對等價類劃分方法的補充。

(1)邊界值分析方法的考慮:

長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。

(2)基於邊界值分析方法選擇測試用例的原則:

1、如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作為測試輸入數據。

2、如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試數據。

3、根據規格說明的每個輸出條件,使用前面的原則1。

4、根據規格說明的每個輸出條件,應用前面的原則2。

5、如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作為測試用例。

6、如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作為測試用例。

7、分析規格說明,找出其它可能的邊界條件。

錯誤推測法

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

錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。例如,在單元測試時曾列出的許多在模塊中常見的錯誤。以前產品測試中曾經發現的錯誤等,這些就是經驗的總結。還有,輸入數據和輸出數據為0的情況。輸入表格為空格或輸入表格只有一行。這些都是容易發生錯誤的情況。可選擇這些情況下的例子作為測試用例。

因果圖法

前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯繫, 相互組合等。 考慮輸入條件之間的相互組合,可能會產生一些新的情況。但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多。因此必須考慮採用一種適合於描述對於多種條件的組合,相應產生多個動作的形式來考慮設計測試用例。這就需要利用因果圖(邏輯模型)。

因果圖方法最終生成的就是判定表。它適合於檢查程序輸入條件的各種組合情況。

利用因果圖生成測試用例的基本步驟:

(1)分析軟體規格說明描述中,那些是原因(即輸入條件或輸入條件的等價類),那些是結果(即輸出條件),並給每個原因和結果賦予一個標識符。

(2)分析軟體規格說明描述中的語義。找出原因與結果之間, 原因與原因之間對應的關係。 根據這些關係,畫出因果圖。

(3)由於語法或環境限制,有些原因與原因之間,原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。

(4)把因果圖轉換為判定表。

(5)把判定表的每一列拿出來作為依據,設計測試用例。從因果圖生成的測試用例(局部,組合關係下的)包括了所有輸入數據的取TRUE與取FALSE的情況,構成的測試用例數目達到最少,且測試用例數目隨輸入數據數目的增加而線性地增加。

判斷表驅動法

1、條件樁:列出問題所有條件。通常認為列出的條件的次序不重要。

2、動作樁:列出問題規定可能採取的操作。這些操作的排列順序沒有約束。

3、條件項:列出針對它所列條件的取值,在所有可能的情況下的真假值。

4、動作項:列出針對它所列條件的取值,在所有可能情況下的真假值。

5、規則:任何一個條件組合的特定取值及其相應要執行的操作。在判定表中貫穿條件項和動作項的一列就是一條規則。顯然,判定表中列出多少組條件取值,也就有多少條規則,條件項和動作項就有多少列。

判斷表建立依據和步驟:

1、確定規則的個數。假如有N個條件,每個條件有兩個取值(0、1),故2N種規則。

2、列出所有的條件樁和動作樁。

3、填入條件項。

4、填入動作項。制定初始判定表。

5、簡化。合併相似規則或者相同動作。

適合使用規定判定表設計用例的條件:

1、規則說明以判定表的形式給出,或很容易轉換成判定表。

2、條件的排序順序不影響執行那些操作。

3、規則的排列順序不影響執行那些操作。

4、當某一規則的條件已經滿足,並確定要執行的操作後,不必檢驗別的規則。

5、如果某一規則要執行多個操作,這些操作的執行順序無關緊要。

功能圖法

用功能圖形象地表示程序的功能說明,機械的生成功能圖的用例。功能圖是一個黑盒、白盒混合用例設計方法。

功能圖由狀態遷移圖和邏輯功能模型構成:

1、狀態遷移圖用於表示輸入數據序列及其相應的輸入數據。在狀態遷移圖中,有輸入數據和當前狀態決定輸出數據和後續狀態。

2、邏輯功能模型用於表示在狀態中輸入條件和輸出條件之間的對應關係。邏輯功能模型只適合於描述靜態說明,輸出數據僅由輸入數據決定。測試用例則由測試中經過的一系列狀態和每個狀態中必須依靠輸入/輸出數據滿足的一對條件組成。

功能圖方法中要用到邏輯覆蓋和路徑測試的概念和方法。要求設計人員對程序邏輯結構有清楚的了解。

生成用例:

1、生成局部測試用例:在每個狀態中,從因果圖生成局部測試用例。局部測試庫有原因值(輸入數據)組合與對應的結果值(輸出數據或狀態)構成。

2、測試路徑生成:利用上面的規則生成從初始化狀態到最後狀態的測試路徑。

3、測試用例合成:合成測試路徑與功能圖中每個狀態的局部測試用例。結果是視狀態到最後狀態的一個狀態序列,以及每個狀態中輸入數據與對應輸出數據組合。

4、測試用例的合成算法:採用條件構造樹。

正交試驗法

從大量的實驗數據中挑選適量的、有代表性的點,合理安排測試的設計方法。

1、提取功能說明,構造因子--狀態表把影響實驗指標的條件稱為因子,而影響實驗因子的條件叫因子的狀態。利用正交實驗設計方法來設計測試用例時,首先要根據被測試軟體的規格說明書找出影響其功能實現的操作對象和外部因素,把他們當作因子;而把各個因子的取值當作狀態。對軟體需求規格說明中的功能要求進行劃分,把整體的、概要性的功能要求進行層層分解與展開,分解成具體的有相對獨立性的、基本的功能要求。這樣就可以把被測試軟體中所有的因子都確定下來,並為確定每個因子的權值提供參考的依據。確定因子與狀態是設計測試用例的關鍵。因此要求儘可能全面的、正確的確定取值,以確保測試用例的設計作到完整與有效。

2、加權篩選,生成因素分析表對因子與狀態的選擇可按其重要程度分別加權。可根據各個因子及狀態的作用大小、出現頻率的大小以及測試的需要,確定權值的大小。

3、利用正交表構造測試數據集利用正交實驗設計方法設計測試用例,比使用等價類劃分、邊界值分析、因果圖等方法有以下優點:節省測試工作工時;可控制生成的測試用例數量;測試用例具有一定的覆蓋率。

測試方法的綜合策略:

1、首先進行等價劃分,包括輸入、輸出條件的等價劃分,將無限測試變成有限測試。

2、使用邊界值分析法。

3、使用錯誤推測發,追加一些用例。

4、對照程序邏輯,檢查用例設計的邏輯覆蓋,力求達到覆蓋標準。

5、程序功能說明中有輸入條件組合,就可選用因果圖和判定表驅動法。

6、對於參數配置類軟體,用正交試驗法選擇較少組合到達最佳效果。

7、功能圖是用例設計的好方法,通過不同時期條件的有效性設計不同的測試數據。對應業務流程清晰的系統,用場景法貫穿測試過程,在案例中綜合使用各種測試方法。

相關焦點

  • 北京黑盒測試學費
    北京黑盒測試學費,尚腦教育六大優勢:一講師優勢於晶老師,尚腦軟體開發與測試課程的創始人,曾任職於跨國集團公司Symbio和Nielsen,十三年來為國家培養了1000多名師資,3000多軟體測試高端人才。黑盒測試注重於測試軟體的功能性需求,也即黑盒測試使軟體工程師派生出執行程序所有功能需求的輸入條件。
  • 黑盒測試方法揭密
    一、黑盒測試在快速應用開發(rad)環境中的重要作用本文引用地址:http://www.eepw.com.cn/article/192849.htm軟體測試方法一般分為兩種:白盒測試與黑盒測試。其中,白盒測試又稱為結構測試、邏輯驅動測試或基於程序本身的測試,著重於程序的內部結構及算法,通常不關心功能與性能指標。
  • 軟體測試的種類:白盒測試和黑盒測試
    1.白盒測試白盒測試,又稱結構測試,主要用於單元測試階段。它的前提是可以把程序看成裝在一個透明的白箱子裡,測試者完全知道程序的結構和處理算法。這種方法按照程序內部邏輯設計測試用例,檢測程序中的主要執行通路是否都能按預定要求正常工作。
  • 黑盒白盒軟體測試是什麼意思?兩種測試方法有哪些優缺點
    軟體測試是軟體開發過程中必不可少的階段,對於軟體測試人員來說,本職工作就是按照測試方法和測試工具查找程序bug的過程。說到測試方法,相信很多小夥伴對黑盒測試和白盒測試並不陌生,也有通俗一點的說法就是這兩種測試方法一個看得到代碼,一個看不到代碼。那麼黑盒白盒軟體測試究竟是什麼意思,對軟體測試工作有什麼影響呢?
  • 軟體測試中黑盒測試和白盒測試的詳細講解
    本篇將介紹關於軟體測試的黑盒測試和白盒測試知識的分享,有興趣的朋友可以了解一下!眾所周知,軟體測試是為了便於程式設計師對必要的有要求的軟體進行相關的運行和闡明,判辯設計的規範以及最後運行成功後的審查編碼的合格性。這一步的成功也就是設計的成功的第一步。我們將軟體的測試分為兩個模塊來完成,一方面是程序的編碼部分設計與軟體單元測試的部分,另一個方面就是對整個設計的全面檢測了。
  • 項目測試基礎:黑盒測試相關知識筆記
    1、軟體測試方法分類靜態測試:主要指測試程序不在機器上運行,而是採用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。人工檢測:靠人工審查程序或評審如啊你就按,包括代碼檢查、靜態結構分析、代碼質量度量等。
  • 「測試」黑盒測試、白盒測試的簡單介紹
    測試分為三種 1. 黑盒測試(將程序當做一個黑盒子,只測試外部排版功能,不考慮程序的內部結構)2. 白盒測試(不考慮外部結構,對程序內部進行測試,要求需要看懂代碼 java的白盒測試需要看得懂java)3.
  • 關於軟體工程的白盒和黑盒測試
    白盒測試是一種測試用例設計方法,盒子指的是被測試的軟體,而白盒指的盒子是透明可見的,我們可以清楚盒子內部的東西以及它們是如何運作。「白盒」法採用的是窮舉路徑測試,在使用這一方法之前,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。1.
  • 遊戲測試白盒和黑盒什麼意思
    遊戲測試白盒和黑盒什麼意思?很多遊戲小白不是很明白,那麼就和小編來看看下面這篇關於遊戲測試黑盒白盒什麼意思的解答,希望對小夥伴們有所幫助。遊戲測試白盒和黑盒什麼意思  白盒測試  是與黑盒測試相對應的,這種方法是把測試對象看作一個打開的透明盒子。
  • 降低5G測試成本的五種方法
    以下五種策略可以幫助OEM應對5G設備面臨的這些新挑戰並降低測試成本。BR6EETC-電子工程專輯4.測試流程自動化測試流程自動化是改善5G設備測試的另一種有價值方法,由於5G mm毫米波的OTA測試設置較為複雜,因此這種方法對於5G毫米波尤為重要。首先,軟體測試自動化程序不僅需要控制被測設備和測試設備,還需要控制用於OTA毫米波測試的OTA測試室。
  • 黑盒測試方法哪些
    (2)、邊界值分析方法 (3)、因果圖方法。(4)、正交實驗設計方法。(5)、功能圖分析方法。(6)、錯誤推測法。(7)、需求文檔轉化法 (8)、隨機測試。則可劃分出一個有效等價類和兩個無效等價類試若規定了輸入數據必須遵循的原則,則可以劃分出一個有效等價類和若干個無效等價類若輸入條件中規定了輸入數據的一組取值,而且軟體對不同的輸入值對應有不同的處理,則每個允許值構成一個有 效等價類,其他值則構成一個無效等價類若輸入要求為整型數,則劃分出正整數、零、負整數三個有效等價類,而小數為無效等價類邊界值分析方法
  • 黑盒測試和白盒測試的基本原理/區別是什麼?
    首先我們來看,白盒測試跟黑盒測試,對於這兩個概念,我在網上也經常看到有人提出類似的問題,那我今天就來寫一篇關於兩者之間的原理與區別VS。因為有很多朋友是剛剛接觸軟體測試行業的,多多少少都會有聽過白盒測試、黑盒測試。在公司裡面,或者經常聽到有人說你是做黑盒測試還是做白盒測試?或者白盒測試包括哪一些範疇呢?黑盒測試又包括哪一些範疇。
  • 黑盒測試的測試用例設計方法「樂搏TestPro」
    是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然後從每一個子集中選取少數具有代表性的數據作為測試用例.該方法是一種重要的,常用的黑盒測試用例設計方法.  使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據.
  • 看完這篇黑盒測試用例編寫教程,我豁然開朗
    總體編寫思路:黑盒測試用例(優先)+ 白盒測試用例(補充)=完整測試用例總體編寫策略:對於測試用例編寫來說,常用的四種方法基本就夠用了,7) 對業務和程序有更深的理解之後,可以充分發揮發散思維和探索式想法;大家不要誤解探索式測試就是漫無目的的測試,其實探索式測試有非常詳細的測試指導思路。
  • 入門遊戲首選 AMD黑盒5400+全方位測試
    ● 默認主頻高達2.8GHz 黑盒5400+規格剖析  與默認主頻為2.6GHz的黑盒5000+所不同的是,黑盒5400+的默認主頻再次得到提升,達到了驚人的2.8GHz,要知道這個主頻曾經是AMD旗艦
  • 什麼是白盒測試和黑盒測試?
    有個網友發私信吐槽,前幾天和一個合作的軟體外包公司開會,人家問需不需提供白盒測試報告,他不懂啥意思,覺得測試報告肯定是需要的,於是就說要,結果今天給了報價,發現這一項要好幾萬。例如這個「白盒測試」,還有一個對應的詞是「黑盒測試」,啥意思呢?比如你家新買的電視機,把電視機和遙控器上的所有按鍵都按一遍,看看每個按鍵是否能達到預期的效果,這個就是黑盒測試了。而如果把電視給完全拆開,用一大堆專業的檢測工具,去檢測拆出來的每一個零件是不是能正常工作,這就是白盒測試了。
  • 22種測試類型
    黑盒測試不基於內部設計和代碼的任何知識集成測試一個應用系統的各個部件的聯合測試,以決定他們能否在一起共同工作。部件可以是代碼塊、獨立的應用、網絡上的客戶端或伺服器端程序。這種類型的測試尤其與客戶伺服器和分布式系統有關。功能測試用於測試應用系統的功能需求的黑盒測試方法。
  • 功能(黑盒)測試方法實戰:如何從代碼角度編寫測試用例?
    黑盒測試僅關注輸入和輸出,將程序看成一個黑盒子。在不遺漏需求的情況下,打開這個黑盒子,從代碼實現的角度進行分析,可以更好的理解測試用例,幫助我們完善測試用例設計,更好地提升測試效果。各子函數的具體實現在此不表,後面會結合測試點進行詳細的闡述。  二、測試驗證  1. 臨界測試:錄入 空多項式 運行程序,可以看到輸出數據發生了混亂。
  • 打開測試黑盒,從代碼角度編寫測試用例!
    關注我,每周分享軟體測試技術乾貨、面試經驗,想要進入軟體測試學習交流群的可以直接私信我哦~~黑盒測試僅關注輸入和輸出,將程序看成一個黑盒子。在不遺漏需求的情況下,打開這個黑盒子,從代碼實現的角度進行分析,可以更好的理解測試用例,幫助我們完善測試用例設計,更好地提升測試效果。
  • 功能測試、性能測試、自動化測試區別
    1、功能測試根據產品特性、操作描述和用戶方案,測試一個產品的特性和可操作行為以確定它們滿足設計需求。功能測試又稱為黑盒測試,是把測試對象看作一個黑盒子。利用黑盒測試法進行動態測試時,需要測試軟體產品的功能,不需測試軟體產品的內部結構和處理過程。