黑盒測試

黑盒測試又叫功能測試、數據驅動測試或基於需求規格說明書的功能測試。該類測試注重於測試軟件的功能性需求。 採用這種測試方法,測試工程師把測試對象看作一個黑盒子,完全不考慮程序內部的邏輯結構和內部特性,只依據程序的《需求規格說明書》,檢查程序的功能是否符合它的功能說明。測試工程師無需瞭解程序代碼的內部構造,完全模擬軟件產品的最終用戶使用該軟件,檢查軟件產品是否達到了用戶的需求。黑盒測試方法能更好、更真實地從用戶角度來考察被測系統的功能性需求實現情況。在軟件測試的各個階段,如單元測試、集成測試、系統測試及驗收測試等階段中,黑盒測試都發揮着重要作用,尤其在系統測試和確認測試中,其作用是其他測試方法無法取代的。

目的

黑盒測試主要是爲了發現以下錯誤:

  • 是否有功能錯誤,是否有功能遺漏。
  • 是否能夠正確地接收輸入數據併產生正確的輸出結果。
  • 是否有數據結構錯誤或外部信息訪問錯誤。
  • 是否有程序初始化和終止方面的錯誤

主要內容

  • 接受性測試
    黑盒測試是從軟件的接口接受測試輸出結果,具有接受性測試的特點。
  • α/β測試
    測試是項目組內的成員對被測軟件進行的測試,α/β測試是由項目組外的人員參加的測試。α/β測試也適合於黑盒測試。也就是說,當測試發現錯誤後在開發人員修改的同時,項目經理也會對產品計劃做出相應的調整,產品特徵不斷地被修改。
  • 菜單/幫助測試
    在軟件測試過程中,開發人員將修復測試人員發現的錯誤,而且對軟件的有些功能進行修改,同時項目經理也將根據情況調整軟件的特性,因而在軟件開發和測試的過程中,所有的功能都可以進行調整。因此,在軟件產品開發的最後階段,文檔裏發現的問題往往最多。
  • 發行測試
    在正式發行前,產品要經過非常仔細的測試。除了專門的測試人員外,還需要幾千個甚至幾十萬其他用戶與合作者通過使用來對產品進行測試。然後將錯誤信息反饋到技術部門到了發行測試時,如果出現非改不可的錯誤,就必須推遲軟件的發行,在推遲時間內需要重新對軟件產品進行全面的測試,將耗費大量的時間、人力和物力。
  • 迴歸測試
    在此階段,首先要檢查以前找到的錯誤是否已經更正了。迴歸測試可使已更正的錯誤不再重現,並且不會產生新的錯誤。

測試方法

  • 理論上講,黑盒測試只有採用窮舉輸入測試,把所有可能的輸入都作爲測試情況考慮,才能查出程序中所有的錯誤。
  • 實際上完全測試是不可能的,所以我們要進行有針對性的測試。
  • 黑盒測試行爲必須能夠加以量化,才能真正保證軟件質量,而測試用例就是將測試行爲具體量化的方法之一。

常見測試用例設計方法

等價類劃分法

  • 把程序的輸入域劃分成若干部分(子集),然後從每個部分中選取少數代表性數據作爲測試用例。每一類的代表性數據在測試中的作用等價於這一類中的其他值。

  • 可以把全部輸入數據合理劃分爲若干等價類,在每一個等價類中取一個數據作爲測試的輸入條件,就可以用少量代表性的測試數據.取得較好的測試結果.

  • 等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
    有效等價類:指對於程序的規格說明來說是合理的,是有意義的輸入數據構成的集合.
    無效等價類:指對於程序的規格說明來說是不合理的,是無意義的輸入數據構成的集合.
    設計測試用例時,要同時考慮這兩種等價類.因爲,軟件不僅要能接收合理的數據,也要能經受意外的考驗.這樣的測試才能確保軟件具有更高的可靠性。

  • 確定等價類的原則。

    • 在輸入條件規定了取值範圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。
    • 在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類。
    • 在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。 [2]
    • 在規定了輸入數據的一組值(假定n個),並且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。
    • 在規定了輸入數據必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。
    • 在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分爲更小的等價類。

邊界值分析法

  • 邊界值分析是通過選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。是對等價類劃分方法的補充。
  • 首先應確定邊界情況。應當選取正好等於,剛剛大於或剛剛小於邊界的值作爲測試數據。
  • 選擇測試用例的原則:
    • 如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作爲測試輸入數據。輸出同理。
    • 如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作爲測試數據。 輸出同理。
    • 如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作爲測試用例。
    • 如果程序中使用了一個內部數據結構,則應當選擇這個內部數據結構的邊界上的值作爲測試用例。
    • 分析規格說明,找出其它可能的邊界條件。

優缺點

優點:

  • 適用於功能測試、可用性測試及可接受性測試。
  • 對照說明書測試程序功能。
  • 可測試長的、複雜程序的工作邏輯,易被理解。

缺點:

  • 不可能進行完全的、毫無遺漏的輸入測試,有一些軟件Bug或人爲設置的故障通過黑盒測試無法檢測出來。
  • 依賴於規格說明書的正確性。如在規格說明書中規定了多餘的功能,或是漏掉了某些功能,這對於黑盒測試來說是完全無能爲力的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章