天天看點

軟體測試之黑盒測試

測試方法選擇的綜合政策:

首先進行等價類劃分,包括輸入條件和輸出條件的等價劃分,将無限測試變成有限測試,這是減少工作量和提高測試效率最有效的方法

在任何情況下,都必須使用邊界值分析法,經驗表明,用這種方法設計出的用例,發現程式錯誤的能力最強

可以用錯誤推測法追加一些用例,這需要依靠測試工程師的經驗

對照程式邏輯,檢查出已設計出的測試用例的邏輯覆寫程度,如果沒有足夠覆寫,應當再補充足夠的測試用例

如果程式說明中有輸入條件的組合情況,則一開始就可以選用因果圖或判定表驅動法設計測試用例

對于參數配置類型的軟體,要用正交試驗法選擇較少的組合方式,達到最佳效果

對于業務流清晰的系統,可利用場景法貫穿整個測試案例過程,在案例中綜合使用各種設計方法

黑盒測試用例設計方法:

等價類劃分

邊界值分析法

決策表法

因果圖

錯誤推測法

正交試驗法

場景法

等價劃分類:

将不能窮舉的測試過程進行合理分類,進而保證設計出來的測試用例具有完整性和代表性

把所有可能的輸入資料(有效的和無效的)劃分成若幹個等價的子集(稱為等價類),使得每個子集中的一個典型值在測試中的作用與這一子集中所有其它值的作用相同

有效等價類:

        對于程式的需求規格說明書來說是合理的,有意義的的輸入資料組成的集合。利用有效性等價類可以檢驗程式是否實作了規格說明書中所要求的功能或性能。

        無效等價類:

        與有效等價類正好相反,無效等價類指對程式的規格說明是不合理的或無意義的資料所構成的集合。無效等價類至少應該有一個,也可能有多個。

        如何劃分等價類:

        首先從程式的規格說明書種找出各個輸入條件,在為每個輸入條件劃分兩個或多個等價類,形成若幹的互不相交的子集

        确定等價類劃分法設計測試用例通常分兩步進行:

确定等價類,列出等價類表。

确定測試用例。

等價劃分類的原則:

按區間劃分:    在輸入條件規定了取值範圍或值的個數的情況下,則可以确立一個有效等價類和兩個無效等價類。如:在成績表中輸入是學生成績,範圍是0~100。

(~,0)、[0,100]、(100,~)

按數值劃分:在輸入條件規定了輸入值的集合或者規定了"必須如何"的條件的情況下,可确立一個有效等價類和一個無效等價類;     如:學生成績在0~100分之間,但是必須大于等于60分才能記為及格。 [0,60),[60,100]

按數值集合劃分:在輸入條件是一個布爾量的情況下,可确定一個有效等價類和一個無效等價類。

(true or false)(奇數 和 偶數)

按限制條件或規則劃分:    在規定了輸入資料的一組值(假定n個),并且程式要對每一個輸入值分别處理的情況下,可确立n個有效等價類和一個無效等價類。

例:輸入條件說明學曆可為:專科、大學、碩士、博士四種之一,則分别取這四個值作為四個有效等價類,另外把四種學曆之外的任何學曆作為無效等價類。

有效等價類:專科、大學、碩士、博士     無效等價類:國小、國中、高中

按限制條件或規則劃分:    在規定了輸入資料必須遵守的規則的情況下,可确立一個有效等價類(符合規則)和若幹個無效等價類(從不同角度違反規則)     比如:過馬路時,遇到"紅燈禁行"     有效等價類:所有車輛和行人都停下來(符合規則)     無效等價類:車輛沒有停下來(不符合規則)              行人沒有停下來(不符合規則)

細分等價類:在确知已劃分的等價類中各元素在程式進行中的方式不同的情況下,則應再将該等價類進一步的劃分為更小的等價類。 例:公司招聘員工,基本學曆要求專科及以上,該機關學曆與工資挂鈎,當學曆高于碩士時,則基本工資才可以為4000元。

.        

    确定測試用例:

為每一個等價類規定一個唯一的編号

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

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

邊界值分析:

        對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來等價類的邊界。

采用此方法的原因:故障往往出現在輸入變量的邊界值附近。

使用邊界值分析法設計測試用例,首先應确定邊界情況。通常輸入和輸出等價類的邊界,就是應着重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界值的值作為測試資料,而不是選取等價類中的典型值或則任意值作為測試資料

與等價類劃分的差別:

邊界值分析不是從某等價類中随便挑選一個作為代表,而是是則會個等價類的每一個邊界都要作為測試條件。

邊界值分析不僅考慮輸入條件,還要考慮輸出空間産生的測試情況

邊界值分析原則:

如果條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作為測試輸入資料     例如,如果程式的規格說明中規定:"重量在10公斤至50公斤範圍内的郵件,其郵費計算公式為……"。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等

如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少1,比最大個數多1的數作為測試資料     比如,一個輸入檔案應包括1~255個記錄,則測試用例可取1和255,還應取0及256等

将規則1)和2)應用于輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。     例1:某程式的規格說明要求計算出"每月保險金扣除額為0至1165.25元", 其測試用例可取0.00及1165.24、還可取一0.01及1165.26等     例2:一程式屬于情報檢索系統,要求每次"最少顯示1條、最多顯示4條情報摘要" 這時我們應考慮的測試用例包括1和4,還應包括0和5等

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

如果程式中使用了一個内部資料結構,則應當選擇這個内部資料結構的邊界上的值作為測試用例

例題1

軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試

健壯性測試:作為邊界值分析的一個簡單的擴充,他出了對變量的5個邊界值分析取值外,還需要增加一個略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過極限值時系統的情況。是以,對于有n個變量的函數采用健壯性測試需要6n+1個測試用例。

決策表法:

(判定表驅動法):

所有的黑盒測試方法中,基于判定表的測試是最為嚴格、最具有邏輯性的測試方法

判定表的概念:判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。

判定表的優點:能夠将複雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。是以,利用判定表能夠設計出完整的測試用例集合。

軟體測試之黑盒測試

情況的種類為2^n; n為條件的個數

判定表由4部分組成,即條件樁、動作樁、條件項、動作項,及規則 條件樁:列出了問題的所有條件,通常認為列出的條件的次序無關緊要 動作樁:列出了問題規定可能采取的操作,這些操作的排列順序沒有限制 條件項:列出針對它所列條件的取值,在所有可能情況下的真假值 動作項:列出條件項的各種取值情況下應該采取的動作 規則:任何一個條件組合的特定取值及其相應要執行的操作。在判定表中貫穿條件項和動作項的一列就是一條規則。

使用範圍:

最嚴格,最具有邏輯性的測試方法

程式中,如果輸入輸出比較多,輸入之間和輸出之間互相制約的條件比較多,在這種情況下應用決策表很合适if-then-else邏輯很突出——輸入變量之間存在邏輯關系——涉及輸入變量子集的計算——輸入和輸出之間存在因果關系

優點:它能把複雜的問題按各種可能的情況一一列舉出來,簡明而易于了解,也可避免遺漏。

缺點:不能表達重複執行的動作,例如循環結構。

構造判定表:

确定規則的個數。有n個條件的判定表有2n個規則(每個條件取真、假值)

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

填入條件項。

填入動作項,得到初始判定表

簡化決策表,合并相似規則

若表中有兩條以上規則具有相同的動作,并且在條件項之間存在極為相似的關系,便可以合并。 合并後的條件項用符号"-"表示,說明執行的動作與該條件的取值無關,稱為無關條件。

合并示例:

軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試

因果圖(邏輯模型):

定義:一種利用圖解法分析輸入的各種組合情況,進而設計測試用例的方法,它适合于檢查程式輸入條件的各種組合情況。

因果圖法最終生成的還是判定表,采用因果圖法設計測試用例的步驟方法如下:

分析軟體規格說明中哪些是原因(即輸入條件或輸入條件的等價類),哪些是結果(即輸出條件),并給每個原因和結果賦予一個辨別符。

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

由于文法或環境的限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記号表明限制或限制條件。

把因果圖轉換為決策表。

根據決策表中的每一列設計測試用例。

因果圖法的優點:

考慮到了輸入情況的各種組合以及各個輸入情況之間的互相制約關系。

能夠幫助測試人員按照一定的步驟,高效率的開發測試用例。

因果圖法是将自然語言規格說明轉化成形式語言規格說明的一種嚴格的方法,可以指出規格說明存在的不完整性和二義性

應用場景:

    當軟體的輸入條件過多時,可以考慮輸入的所有排列組合情況,考慮條件之間和條件結果之間關系,防止遺漏 局限性:

    測試用例數目可能會很大,不便于維護

軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試

例題1:

軟體測試之黑盒測試
軟體測試之黑盒測試

例題2

軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試

定義:基于經驗和直覺推測程式中所有可能存在的各種錯誤, 進而有針對性的設計測試用例的方法。

基本思想:列舉出程式中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。比如設計一些非法的、錯誤的、不正确和垃圾資料進行輸入測試。比如以前測試中曾經發現的錯誤,例如輸入資料和輸出資料為0的情況

    舉例:

在單元測試時曾列出的許多在子產品中常見的錯誤、以前産品測試中曾經發現的錯誤等,這些就是經驗的總結。

還有,輸入資料和輸出資料為0的情況、輸入表格為空格或輸入表格隻有一行等。這些都是容易發生錯誤的情況,可選擇這些情況下的例子作為測試用例。

執行個體:

測試一個對線性表(比如數組)進行排序的程式,可推測列出以下幾項需要特别測試的情況: 輸入的線性表為空表 表中隻含有一個元素 輸入表中所有元素已排好序 輸入表已按逆序排好 輸入表中部分或全部元素相同

'聊天視窗功能

a。輸入特殊字元(全角,半角)後,視窗是否能夠正常顯示

b。輸入空格,是否能夠過濾,是否會算入長度計算

c。輸入html字元

d。輸入腳本語言函數

e。在需要密碼驗證,或者需要二次輸入确認的地方,通過複制粘貼第一次的輸入内容是否能夠通過

查詢功能

a。無條件查詢

b。是否支援模糊查詢

c。查詢的關鍵字之間是否可用連接配接符

d。輸入正确的查詢條件以前加上空格,看是否能正确地查出相應的資料

登入功能

a。輸入的資料前存在空格,是否能夠正常登入

b。輸入的密碼是否能夠加密顯示

c。使用者在登出之後是否能夠再登入成功

    為什麼需要正交實驗設計方法:

利用因果圖來設計測試用例時, 作為輸入條件的原因與輸出結果之間的因果關系,有時很難從軟體需求規格說明中得到。

往往因果關系非常龐大,以至于據此因果圖而得到的測試用例數目多的驚人,給軟體測試帶來沉重的負擔,為了有效地,合理地減少測試的工時與費用,可利用正交實驗設計方法進行測試用例的設計。

定義: 正交實驗設計方法是依據galois理論,從大量的(實驗)資料(測試例)中挑選适量的、有代表性的點(例),進而合理地安排實驗(測試)的一種科學實驗設計方法.類似的方法有:聚類分析方法,因子方法方法等

名額:通常把判斷試驗結果優劣的标準叫做試驗的名額

因子:影響實驗名額的條件稱為因子。

因子的狀态:影響實驗因子的條件

正交表示l8(2^7)

正交試驗法步驟:

軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試

    定義:現在的軟體都是用事件來觸發流程的,事件觸發時的情景并成了場景,而同一事件不同的觸發順序和處理結果就形成事件流。

    用例場景用來描述流經用例的路徑,從用例開始到結束,周遊這條路徑上所有基本流和備選流

    基本流用直黑線表示,備選流用不同的彩色表示

軟體測試之黑盒測試
軟體測試之黑盒測試

經典案例:

軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試
軟體測試之黑盒測試

繼續閱讀