黑盒測試(Black-box Testing),黑盒測試又稱為“功能測試”,是將測試對象看做一個黑盒,在并不考慮軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程的基礎(chǔ)上對軟件產(chǎn)品進行功能測試。黑盒測試注重軟件產(chǎn)品的“功能性需求”。
整個測試過程中,每個人接觸最多的應該就是黑盒測試的用例設(shè)計。
平時我們需要結(jié)合實際項目,挑選使用合適的用例設(shè)計方法,盡量將每個用例設(shè)計好,在這里給大家介紹一些常見的黑盒測試用例設(shè)計方法。
1)等價類劃分:等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試。因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù)。取得較好的測試結(jié)果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
例如,我們要測試一個用戶名是否合法,用戶名的定義為:8位數(shù)字組成的字符。
我們可以先劃分子集:空用戶名,1-7位數(shù)字,8位數(shù)字,9位或以上數(shù)字,非數(shù)字。
然后從每個子集選出若干個有代表性的值:
空用戶名:“”(無效等價類實例,指對于軟件規(guī)格說明而言,沒有意義的、不合理的輸入)
1-7位數(shù)字:"234"(無效等價類實例)
8位數(shù)字:"00000000"(有效等價類實例,能檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能)
9位或以上數(shù)字:"1234567890" (無效等價類實例)
非數(shù)字:"abc&!!!"(無效等價類實例)
他們5個,就是用等價類劃分選出的測試用例。實際上,對于1-7位數(shù)字的子集來說,選“234”和“11111”沒有本質(zhì)的區(qū)別。
等價類的劃分,最關(guān)鍵的是子集的劃分。實際上,非數(shù)字還可以繼續(xù)劃分子集:字母,特殊字符。
2)邊界值分析法:是對等價類劃分方法的補充。測試工作經(jīng)驗告訴我,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。
使用邊界值分析方法設(shè)計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。
3)錯誤猜測法:基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設(shè)計測試用例的方法。
錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤。 以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等, 這些就是經(jīng)驗的總結(jié)。 還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況。 輸入表格為空格或輸入表格只有一行。 這些都是容易發(fā)生錯誤的情況。 可選擇這些情況下的例子作為測試用例。
4)因果圖方法:前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等。 考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況。 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多。 因此必須考慮采用一種適合于描述對于多種條件的組合,相應產(chǎn)生多個動作的形式來考慮設(shè)計測試用例。 這就需要利用因果圖(邏輯模型)。 因果圖方法最終生成的就是判定表。 它適合于檢查程序輸入條件的各種組合情況。
5)正交表分析法:可能因為大量的參數(shù)的組合而引起測試用例數(shù)量上的激增,同時,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數(shù)量的測試,就可以通過正交表來進行縮減一些用例,從而達到盡量少的用例覆蓋盡量大的范圍的可能性。
6)場景分析方法:指根據(jù)用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執(zhí)行的深度和可行性更好。
7)狀態(tài)圖法:通過輸入條件和系統(tǒng)需求說明得到被測系統(tǒng)的所有狀態(tài),通過輸入條件和狀態(tài)得出輸出條件;通過輸入條件、輸出條件和狀態(tài)得出被測系統(tǒng)的測試用例。
8)大綱法:大綱法是一種著眼于需求的方法,為了列出各種測試條件,就將需求轉(zhuǎn)換為大綱的形式。大綱表示為樹狀結(jié)構(gòu),在根和每個葉子結(jié)點之間存在唯 一的路徑。大綱中的每條路徑定義了一個特定的輸入條件集合,用于定義測試用例。樹中葉子的數(shù)目或大綱中的路徑給出了測試所有功能所需測試用例的大致數(shù)量。