黑盒測試

1、概念數據庫

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

  黑盒測試是以用戶的角度,從輸入數據與輸出數據的的對應關係出發進行測試,很明顯,若是外部設計自己存在問題,或者需求規格說明的規定有誤,黑盒測試是發現不了的。windows

 

2、做用安全

  黑盒測試法注重於測試軟件的功能需求,主要試圖發現下列幾類錯誤。編程語言

    功能不正確或者遺漏工具

    界面錯誤性能

    輸入和輸出錯誤單元測試

    數據庫訪問錯誤測試

    性能錯誤spa

    初始化和終止錯誤

 

3、測試方法

  從理論上講,黑盒測試只採用窮舉測試,把全部可能的輸入都做爲測試狀況考慮,才能查出程序中全部的錯誤。實際上測試狀況有無窮多個,不只要測試合法的輸入,並且還要對那些不合法但可能的輸入進行測試。這樣看來,安全測試是不可能的,因此咱們要進行有針對性的測試,經過制定測試案例指導測試的實施,有組織,有計劃,按步驟的進行。

  黑盒測試行爲必須可以加以量化,才能保證軟件質量,而測試用例就是將測試具體量化的方法之一。具體的黑盒測試用例設計方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、斷定表驅動法、正交實驗設計法、功能圖法、場景法等。

1.等價類劃分法

  等價類劃分法是把程序的輸入分爲若干類(子集),而後每一類中選取少數表明性數據做爲測試用例。每一類的表明性數據在測試中的做用等價於這一類中的其餘值。該方法事一種重要且經常使用的測試用例設計方法。

  劃分等價類

    等價類是指某個輸入域的集合。在該子集中,各個輸入對於揭露程序中的錯誤是等價的,併合理的假定:測試某等價類的值,就表明測試這個等價類,因此把所有輸入劃分爲若干個等價類,在沒一個等價類中選取一個數據做爲測試用例,就能夠用少許表明性的測試數據取得較好的測試結果,等價類劃分有兩種不一樣的狀況:有效等價類和無效等價類 。

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

    無效等價類:是指對程序來講不合理、無心義的輸入數據的集合。

2.邊界值分析法

  邊界值分析是經過選擇等價類邊界的測試用例。邊界值分析法不只考慮輸入數據的邊界,並且也必須考慮輸出域的邊界。它是對等價類劃分法的補充。

3.錯誤推測法

   錯誤推測法是基於經驗和直覺推測程序中全部可能出現的各類錯誤,從而針對錯誤設計測試用例的方法。

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

4.因果圖法

   等價類劃分法和邊界值法都是着重考慮輸入條件,但未考慮輸入條件之間的聯繫及相互組合等。考慮輸入條件的之間的相互結合,可能會產生一些新的狀況,但要檢查輸入條件的結合不是一件容易的事情,即便把全部輸入條件劃分紅等價類,他們之間的結合狀況也至關多,所以必須考慮採用一種適合於描述對於多種條件的組合,相應產生多個動做的形式考慮設計測試用例,這就須要利用因果圖(邏輯模型)。

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

  正交試驗設計

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

  場景法

  軟件幾乎都是用事件觸發來控制流程的,事件觸發的情景
  基本流和備選流
基本流和備選流
便造成了場景,而同一事件不一樣的觸發順序和處理結果就造成事件流。這種在軟件設計方面的思想也能夠引入到軟件測試中,能夠比較生動地描繪出事件觸發時的情景,有利於測試設計者設計測試用例,同時使測試用例更容易理解和執行。
 
4、測試流程
測試計劃——測試設計——測試開發——測試執行——測試評估
測試計劃
  首先,根據用戶需求報告中關於功能要求和性能指標的規格說明書,定義相應的測試需求報告,即制定黑盒測試的最高標準,之後全部的測試工做都將圍繞着測試需求進行,符合測試需求的的應用程序便是合格的,反之便是不合格的;同時,還要適當選擇測試內容,合理安排測試人員、測試時間及測試資源等。
測試設計
  將測試計劃階段制定的測試需求分解、細化爲若干個可執行的測試過程,併爲每一個測試過程選擇適當的測試用例,測試用例選擇的好壞將直接影響到測試結果的有效性。
測試開發
   創建可重複使用的自動測試過程。
測試執行
  執行測試開發階段創建的自動測試過程,並對所發現的缺陷進行跟蹤管理。測試執行通常由單元測試、組合測試、集成測試、系統聯調及迴歸測試等步驟組成,測試人員應本着科學的態度,一步一個腳印的測試。
測試評估
  結合量化的測試覆蓋域及缺陷跟蹤報告,對於應用軟件的質量和開發團隊的工做進度及工做效率進行評估評價。
 
5、黑盒測試的優勢
  1.基本上不用人管着,若是程序中止運行了通常就是被測試程序crash了。
  2.設計完測試用例以後,下來的工做就是爽了,固然更苦悶的是肯定crash緣由。
 
6、缺點
  1.結果取決於測試用例的設計,測試用例的設計部分優點來源於經驗,OUSPG的東西很值得借鑑
  2.沒有狀態轉換的概念,一些成功的例子基本上都是針對PDU來作的,還作不到針對被測試程序的狀態轉換來實現
  3.就沒有狀態概念的測試來講,尋找和肯定形成程序crash的測試用例是個麻煩事情,必須把周圍可能的測試用例單獨確認一遍。而就有狀態的測試來講,就更麻煩,尤爲不是一個單獨的testcase形成是問題。這些在堆的問題中變現更爲突出。
 
7、工具選擇
  這裏介紹一個較爲經典的自動化測試工具,即Mercury公司的WinRunner。
  WinRunner是一種用於檢測程序可否正常運行的企業級功能測試工具。經過自動捕捉、檢測和模擬用戶交互操做,WinRunner能識別絕大多數軟件功能缺陷,從而確保那些跨越了多個功能點和數據庫的應用程序在發佈時儘可能不出現功能性故障。
  WinRunner的特色在於:與傳統的手工測試相比,它能快速、批量地完成功能點測試;能針對相同測試腳本,執行相同的動做,從而消除人工測試所帶來的理解上的偏差;此外,它還能重複執行相同動做,測試工做中最枯燥的部分可交由機器完成;它支持程序風格的測試腳本,一個高素質的測試工程師能借助它完成流程極爲複雜的測試,經過使用通配符、宏、條件語句、循環語句等,還能較好地完成測試腳本的重用;它針對於大多數編程語言和windows技術,提供了較好的集成、支持環境、這對於windows平臺的應用程序實施功能測試而言帶來了極大的便利。
 
8、工做流程
   識別GUI
    在WinRunner中,咱們可使用GUI Spy來識別各類GUI對象,識別後,WinRunner會將其存儲到GUI Map File中。它提供兩種GUI Map File模式: Global GUI Map File和GUI Map File per Test。起最大區別是後者對每一個測試腳本產生一個GUI文件,它能自動創建、存儲、加載,推薦初學者選用這種模式。可是這種模式不易於描述對象的改變,其效率比較低,所以對於一個有經驗的測試人員來講前者不失爲一種更好的選擇,它只產生一個共享的GUI文件,這使得測試腳本更容易維護,且效率更高。
   創建測試腳本
    在創建測試腳本時,通常先進行錄製,而後在錄製造成的腳本中手工加入須要的TSL(與c語言相似的測試腳本語言)。錄製腳本有兩種模式:Context Sensitive和Analog,選擇依據主要在因而否對鼠標軌跡進行模擬,在須要回放時通常選用Analog。在錄製過程當中這兩種模式能夠經過F2鍵相互切換。
   腳本除錯
    在WinRunner中有專門一個Debug Toolbar用於測試腳本除錯。可使用step、pause、breakpoint等來控制和追蹤測試腳本和查看各類變量值。
   測試腳本
    當應用程序有新版本發佈時,咱們會對應用程序的各類功能包括新增功能進行測試,這時固然不可能再來從新錄製和編寫全部的測試腳本。咱們可使用已有的腳本,批量運行這些測試腳本測試舊的功能點是否正常工做。可使用一個call命令來加載各測試腳本。還可在call命令中加各類TSL腳原本增長批量能力。
   分析測試結果
    經過分析能夠發現應用程序的各類功能性缺陷。當運行完某個測試腳本後,會產生一個策劃報告,從這個測試報告中咱們能發現程序的功能性缺陷,能看到實際結果和指望結果之間的差別,以及在測試工程中產生的各種對話框等。
   回報缺陷
    在分析完測試報告後,按照測試流程要回報應用程序的各類缺陷,而後將這些確信啊發給指定人,以便進行修復和修護。
 
9、經常使用方法
  功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到用戶要求的功能。經常使用的測試方法以下:
   一、頁面連接檢查:每個連接是否都有對應的頁面,而且頁面之間切換正確。
   二、相關性檢查:刪除/增長一項會不會對其餘項產生影響,若是產生影響,這些影響是否都正確。
   三、檢查按鈕的功能性是否正確:如update,cancel,delete,save等功能是否正確。
   四、字符串長度檢查:輸入超出需求所說明的字符串長度的內容,看系統是否檢查字符串長度,會不會出錯。
   五、字符類型檢查:在應該輸入指定內容的地方輸入其餘類型的內容(如在應該輸入整型的地方輸入其餘字符類型),看系統是否檢查字符類型,會否報錯。
   六、標點符號檢查:輸入內容包括各類標點符號,特別是空格,各類引號,回車鍵等,看系統處理是否正確。
   七、中文字符處理:在能夠輸入中文的系統輸入中文,看會否出現亂碼或出錯。
   八、檢查帶出信息的完整性:在查看信息和update信息時,查看所填寫的信息是否是所有帶出.,帶出信息和添加的是否一致。
   九、信息重複: 在一些須要命名,且名字應該惟一的信息輸入重複的名字或ID,看系統有沒有處理,會否報錯,重名包括是否區分大小寫,以及在輸入內容的先後輸入空格,系統是否做出正確處理。
   十、檢查刪除功能:在一些能夠一次刪除多個信息的地方,不選擇任何信息,按」delete」,看系統如何處理,會否出錯;而後選擇一個和多個信息,進行刪除,看是否正確處理。
   十一、檢查添加和修改是否一致: 檢查添加和修改信息的要求是否一致,例如添加要求必填的項,修改也應該必填;添加規定爲整型的項,修改也必須爲整型。
   十二、檢查修改重名:修改時把不能重名的項改成已存在的內容,看會否處理,報錯.同時,也要注意,會不會報和本身重名的錯。
   1三、 重複提交表單:一條已經成功提交的紀錄,back後再提交,看看系統是否作了處理。
   1四、檢查屢次使用back鍵的狀況: 在有back的地方,back,回到原來頁面,再back,重複屢次,看會否出錯。
   1五、search檢查: 在有search功能的地方輸入系統存在和不存在的內容,看search結果是否正確.若是能夠輸入多個search條件,能夠同時添加合理和不合理的條件,看系統處理是否正確。
   16.、輸入信息位置: 注意在光標停留的地方輸入信息時,光標和所輸入的信息會否跳到別的地方。
   1七、上傳下載文件檢查:上傳下載文件的功能是否實現,上傳文件是否能打開。對上傳文件的格式有何規定,系統是否有解釋信息,並檢查系統是否可以作到。
   1八、必填項檢查:應該填寫的項沒有填寫時系統是否都作了處理,對必填項是否有提示信息,如在必填項前加*。
   1九、快捷鍵檢查:是否支持經常使用快捷鍵,如Ctrl+C Ctrl+V Backspace等,對一些不容許輸入信息的字段,如選人,選日期對快捷方式是否也作了限制。
   20、回車鍵檢查: 在輸入結束後直接按回車鍵,看系統處理如何,會否報錯。
相關文章
相關標籤/搜索