黑盒測試
目的:測試用例概述、黑盒測試技術(shù)及分類
測試用例設(shè)計:是將軟件測評的行為活動,做一個科學(xué)化的組織歸納
設(shè)計一個情況,軟件程序在這種情況下,必須能夠正常運行并且達(dá)到程序所設(shè)計的執(zhí)行結(jié)果。
測試用例的好處:
1、 可以避免盲目測試并提高測試效率
2、 令軟件測試的實施重點突出、目的明確
3、 軟件版本更新后,只需少量修正便可進(jìn)性測試,降低工作強度,縮短項目周期。
4、 測試用例的通用化和復(fù)用話則會使軟件測試易于開展,并隨著測試用例的不斷精華其效率也不斷攀升。
黑盒測試
試圖發(fā)現(xiàn)端錯誤:1、功能不正確或遺漏 2、界面錯誤 3、數(shù)據(jù)庫訪問錯誤 4、性能錯誤 5、初始化和終止錯誤等。
方法:1、等價類劃分法 2、邊界值分析法 3、錯誤推測法 4、因果圖法 5、判定表驅(qū)動法 6、正交試驗設(shè)計法 7、功能圖法
依據(jù)用戶需求規(guī)格說明書來設(shè)計測試用例
等價類劃分法
依據(jù)需求規(guī)格說明書進(jìn)行測試
定義:是把程序的輸入劃分成若干部分,然后從每一個部分中選取少數(shù)代表性數(shù)據(jù)作為測試用例。
等價類: 是指某個輸入域的子集合。
有效等價類 指對于程序的規(guī)格說明使合理的、有意義的輸入數(shù)據(jù)結(jié)構(gòu)的集合
檢驗程序是否實現(xiàn)了規(guī)則說明中所規(guī)定的功能和性能
無效等價類? 與有效等價類定義相反
等價類劃分原則:
1、 在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,可以確定一個有效等價類和兩個無效等價類。
2、 在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個有效等價類和一個無效等價類
3、 在輸入條件使要給布爾量的情況下,可以確定一個有效等價類和一個無效等價類。
4、 在規(guī)定了輸入數(shù)據(jù)的一組值(嘉定N個),并且程序要對每一個輸入值,分別處理的情況下,可以確定N個有效等價類和一個無效等價類
5、 在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可以確定要給有效等價類(符合規(guī)則)金和推桿個無效等價類(從不同的角度違反規(guī)則)
6、 在確知已劃分的等價類中,各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步的劃分為更小的等價類。
確定測試用例
根據(jù)已列出的等價類表,按以下不走確定測試用例
1、 為每個等價類規(guī)定一個唯一的編號
2、 設(shè)計一個新的測試用例,使其盡可能多的覆蓋尚未覆蓋的有效等價類。重復(fù)這一步驟,最后使得所有有效等價類均被測試用例所覆蓋
3、 設(shè)計要給新的測試用例,使其覆蓋一個無效等價類,重復(fù)這一步使所有無效等價類均被覆蓋。
邊界值分析法:
是通過選擇等價類邊界的測試用例? ? ? ? 不僅重視輸入條件邊界,而且也必須考慮輸出域邊界
邊界值設(shè)計應(yīng)遵循的原則
1、 如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界的值,以及剛剛超越了這個范圍邊界的值,作為測試輸入數(shù)據(jù)。
2、 如果輸入條件規(guī)定了值得個數(shù),則用最大個數(shù)、最小個數(shù),比最小個數(shù)少1,比最大個數(shù)多1的數(shù)作為測試數(shù)據(jù)
3、 根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則①
4、 根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則②
5、 如果程序的規(guī)則說明給出的輸入域或輸出域是有序集合,則應(yīng)選擇集合的第一個i而元素和最后一個元素作為測試用例
6、 如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)邊界上的值作為測試用例
7、 分析規(guī)格說明,找出其他可能的邊界條件。
錯誤推測法
是基于經(jīng)驗和直覺推測程序中可能存在的各種錯誤,有針對性地設(shè)計測試用例的方法。
基本思想:是列舉出程序中所有可能有的錯誤和容易發(fā)生的特殊情況,根據(jù)他們選擇測試用例
如:程序只能輸入數(shù)字,測試時可以輸入字母進(jìn)行測試。
因果圖法
是從自然語言書寫的程序規(guī)格說明的描述中找出因(輸入條件)和果(輸出或程序狀態(tài)的改變)通過因果轉(zhuǎn)換成判斷表
基本符號 Ci表示原因? Ei表示結(jié)果
各個節(jié)點表示狀態(tài),可取“0”和“1”,0表示某種狀態(tài)不會出現(xiàn),1表示某狀態(tài)出現(xiàn)
恒等? 非 與 或? 上或下與
E(互斥) I(包含)? O(唯一) R(要求) M(屏蔽)
步驟
1、 分析程序規(guī)格說明書的描述中:原因和結(jié)果
2、 分析程序規(guī)格說明描述中語義的內(nèi)容,并將其表示成連接各個原因結(jié)果的“因果圖”
3、 標(biāo)明約束條件
4、 把因果圖轉(zhuǎn)換成判定表
5、 為判定表中每一列表示的情況設(shè)計測試用例
判定表驅(qū)動法
是分析和表達(dá)多邏輯條件下的執(zhí)行不同操作的情況的工具。
可以把復(fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得較明確
判定表組成:
條件樁 條件項
動作樁 動作項
判定表建立
依據(jù)軟件規(guī)格說明
1、 確定規(guī)格個數(shù)
2、 列出所有的條件樁和動作樁
3、 填入條件項
4、 填入動作項,制定初始判定表
5、 簡化,合并相似規(guī)則或者相同的動作。
適合使用判定表設(shè)計測試用例條件
1、 規(guī)格說明以判定表的形式給出,或很容易轉(zhuǎn)換成判定表
2、 條件的排列順序不影響執(zhí)行哪些操作
3、 規(guī)則的排列順序不影響執(zhí)行哪些操作
4、 當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則。
5、 如果某一規(guī)則要執(zhí)行多個操作,這些操作的執(zhí)行無關(guān)緊要。
正交試驗法:
是從大量的試驗數(shù)據(jù)中挑選適量的、代表性的點,從而合理的安排測試的一中科學(xué)的試驗設(shè)計方法。
L8(2的7次方)
8表行的數(shù)據(jù)(試驗次數(shù)) 2表因子的水平數(shù) 7表列的數(shù)目(最多可安排的因子數(shù))
在行數(shù)為MN(M,N為正整數(shù))型的正交表中,試驗次數(shù)(行數(shù))=(每列水平數(shù)-1)的平均值 +1
設(shè)計測試用例的步驟
1、 提取功能說明,構(gòu)造因子—狀態(tài)表
2、 加權(quán)篩選,生產(chǎn)因素分析表
3、 利用正交表構(gòu)造測試數(shù)據(jù)集,正交表的推導(dǎo)依據(jù)Galois理論
優(yōu)點:
1、 節(jié)省測試工作工時
2、 可控制生成的測試用例是數(shù)量
3、 測試用例具有一定覆蓋率
功能圖法:
是用功能圖形象的表示程序的功能說明,并機械地生成功能圖的測試用例。
功能說明:①靜態(tài)說明:描述了條件與條件之間的對應(yīng)關(guān)系
②動態(tài)說明:描述了數(shù)據(jù)的次序或轉(zhuǎn)移的次序
功能圖模型:①狀態(tài)遷移圖:用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù)
由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸入數(shù)據(jù)和后續(xù)狀態(tài)
②邏輯功能模型:用于表示在狀態(tài)中輸入條件和輸出條件之間的對應(yīng)關(guān)系
只適合于靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定。
一種黑盒和白盒的混合設(shè)計
從功能圖生成測試用例的過程
1、 生成局部測試用例
2、 測試路徑生成
3、 測試用例合成
4、 測試用例的合成算法
場景法
通過運用場景來對系統(tǒng)的功能點或業(yè)務(wù)流程進(jìn)行描述,從而提高測試效果
基本流+備用流=場景法
從一個流程開始,通過描述經(jīng)過的路徑來確定的過程,經(jīng)過遍歷所有的基本流和備用流來完成整個場景。
基本流(黑線):
是經(jīng)過用例的最簡單的路徑;無任何差錯,從程序開始直接執(zhí)行到結(jié)束
備選流(不同顏色表示):
一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入到基本流中,也可以起源于另一個備選流,或終于用例,不再加入到基本流中。
