黑盒測試
首選來看一下缺陷與錯誤的分布情況
image.png
黑盒測試注重于測試軟件的功能需求,主要視圖發(fā)現(xiàn)下列幾類錯誤
+.功能不正確或遺漏
+.界面錯誤
+.數(shù)據(jù)庫訪問錯誤
+.性能錯誤
+.初始化和終止錯誤等
功能測試用例設(shè)計的原則
-.盡量用80%測試用例覆蓋20%的核心業(yè)務(wù)模塊
-.功能測試用例中包括業(yè)務(wù)流,也包括測試數(shù)據(jù)
-.功能測試用例的設(shè)計應(yīng)注意缺陷群集現(xiàn)象
-.功能測試用例中包括功能的依從性測試用例
測試方法選擇的綜合策略
1.首選進行等價類劃分,包含輸入條件和輸出條件的等價劃分,將無限測試變成有限測試,這是減少工作量和提高測試效率最有效的方法
2.在任何情況下都必須使用邊界值分析方法。經(jīng)驗表明,用這種方法設(shè)計出的測試用例發(fā)現(xiàn)程序錯誤的能力最強。
3.可以用錯誤推測法追加一些測試用例,這需要依靠測試工程師的智慧和經(jīng)驗。
4.對照程序邏輯,檢查已設(shè)計出的測試用例的邏輯覆蓋程度。如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補充足夠的測試用例。
5.如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法和判定表驅(qū)動法。
6.對于參數(shù)配置類的軟件,要用正交實驗法選擇較少的組合方式達(dá)到最佳效果
7.功能圖法也是很好的測試用例設(shè)計方法,我們可以通過不同時期條件的有效性設(shè)計不同的測試數(shù)據(jù)
8.對于業(yè)務(wù)流清晰的系統(tǒng),可以利用場景法貫穿整個測試案例過程,在案例中綜合使用各種測試方法。那下面簡單介紹一下每種測試方法的方法&&&&&&&&&&&&&&&等價類劃分法
1.在輸入條件規(guī)定了取值范圍或者值的個數(shù)的情況下,可以確立一個有效等價類和兩個無效等價類
2.在輸入條件規(guī)定了輸入值的集合或者規(guī)定了‘必須如何’的條件的情況下,可以確立一個有效等價類和一個無效等價類
3.在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類
4.在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類
5.在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)
6.在確知已劃分的等價類中,各元素在程序處理中的方式不同的情況下,則應(yīng)再將等價類進步一地劃分為更小的等價類
邊界值
是產(chǎn)品說明書中有定義或者在使用軟件的過程中確定
邊界值是等價類的補充,需要尋找邊界和次邊界
邊界條件
1.如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界的值基本路徑測試法題目,以及剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。
2.如果輸入條件規(guī)定了值的個數(shù),則應(yīng)用最大個數(shù),最小個數(shù),比最小個數(shù)少1,比最大個數(shù)多1的數(shù)作為測試數(shù)據(jù)
3.根據(jù)規(guī)格說明的每個輸出條件,使用前面的規(guī)則1
4.根據(jù)規(guī)格說明的每個輸出條件,使用前面的規(guī)則2
5.如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例
6.如果程序中使用了內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界上的值作為測試用例
7.分析規(guī)格說明,找出其他可能的邊界條件
次邊界條件
是最終用戶幾乎看不到,但是軟件測試仍有必要檢查。
例如一下ascii值的表格等
錯誤推測
錯誤推測法的基本思想就是列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。例如,設(shè)計一些非法,錯誤,不正確和垃圾數(shù)據(jù)進行輸入測試。輸入和輸出數(shù)據(jù)為0的情況或者輸入表格為空格或者輸入表格只有一行等
因果圖
1.分析程序規(guī)格說明的描述中,那些是原因,那些是結(jié)果。原因常常是輸入條件或是輸入條件的等價類,而結(jié)果是輸出條件
2.分析程序規(guī)格說明的描述中語義的內(nèi)容,并將其表示成連接各個原因與各個結(jié)果的‘因果圖’
3.標(biāo)明約束條件。由于語法或者環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。為表明這些特定的情況,在因果圖上使用若干個標(biāo)準(zhǔn)的符號標(biāo)明約束條件。
4.把因果圖轉(zhuǎn)換成判定表
5.為判定表中的每一列表示的情況設(shè)計測試用例
判定表驅(qū)動
判定表的組成
image.png
條件樁( stub):列出了問題的所有條件。通常任務(wù)列出的條件的次序無關(guān)緊要
動作樁( stub):列出了問題規(guī)定可能采取的操作。這些操作的排序順序沒有約束。
條件項( entry):列出針對它所列出條件的取值,在所有可能情況下的真假值。
動作項( entry):列出在條件項的各種取值情況下應(yīng)采取的動作。
規(guī)則:任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。在判定表中貫穿條件項和動作項的一列就是一條規(guī)則,顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,條件項和動作項就有多少列。
判定表建立規(guī)格
1.確定規(guī)則的個數(shù)。加入有n個條件,每個條件有兩個取值(0,1),故有2的n次方中規(guī)則
2.列出所有的條件樁和動作樁
3.填入條件項
4.填入動作項。制作初始判定表
5.簡化。合并相似規(guī)則或者相同動作。正交試驗法
定義
依據(jù)理論,正交實驗設(shè)計方法是從大量的實驗數(shù)據(jù)中挑選適量的,有代表性的點,從而合理地安排測試的一種科學(xué)的實驗設(shè)計方法。
測試用例設(shè)計步驟
1.提取功能說明,構(gòu)造因子‘---’狀態(tài)表
2.加權(quán)篩選,生成因素分析表。
3.利用正交表構(gòu)造測試數(shù)據(jù)集。
功能圖法
1.生成局部測試用例:在每個狀態(tài)中,從因果圖生成局部測試用例。局部測試庫由原因值(輸入數(shù)據(jù))組合與對應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成。
2.測試路徑生成:利用上面的規(guī)則生成從初始狀態(tài)到最后狀態(tài)的測試路徑。
3.測試用例合成:合成測試路徑與功能圖中每個狀態(tài)的局部測試用例,結(jié)果是視狀態(tài)到最后狀態(tài)的一個狀態(tài)序列,以及每個狀態(tài)中輸入數(shù)據(jù)與對應(yīng)輸出數(shù)據(jù)組合。
4.測試用例的合成算法:采用條件構(gòu)造樹。
場景法
最后來看一下軟件測試的過程
TIM圖片219.png
測試費用質(zhì)量曲線
image.png
來來繼續(xù)看一下白盒測試的方法和技能呀!白盒測試
用例設(shè)計方法
白盒測試用例設(shè)計技術(shù)可分為邏輯覆蓋和路徑覆蓋,邏輯覆蓋又可分為以下幾種,從弱到強:
語句覆蓋(SC):設(shè)計足夠多的測試用例,確保每條語句都被執(zhí)行過。
判定覆蓋(DC):設(shè)計足夠多的測試用例,確保每個判定都分別取真值與假值。
條件覆蓋(CC):設(shè)計足夠多的測試用例,確保每個條件都分別取真值與假值。(一個判定里可能包含多個條件)
判定/條件覆蓋(DCC):設(shè)計足夠多的測試用例,確保每個判定和條件分別取真值和假值。
條件組合覆蓋(CMC):設(shè)計足夠多的測試用例,確保覆蓋每個判定中的各個條件的所有組合情況。(只考慮同一個判定內(nèi)的各條件組合情況)
路徑覆蓋:設(shè)計足夠多的測試用例,確保每條路徑都被執(zhí)行。如果程序復(fù)雜,比如包含循環(huán)的情況,路徑覆蓋的測試用例數(shù)將會是個天文數(shù)字,無法實現(xiàn)。可以采用簡化了的路徑覆蓋,即將循環(huán)看成是一個判定,只考慮循環(huán)被執(zhí)行和未執(zhí)行兩種情況。
靜態(tài)測試
詞法分析與語法分析
1.標(biāo)號交叉引用表。列出在各模塊中出現(xiàn)的全部標(biāo)號,在列表中標(biāo)出標(biāo)號的屬性,包括已說明,未說明,已使用,未使用,表中還包括在模塊以外的全局標(biāo)號。計算標(biāo)號等
2.變量交叉引用表,即變量定義與引用表
3.字程序、宏和函數(shù)表
4.等價表。表中列出在等價語句或值語句中出現(xiàn)的全部變量和標(biāo)號。
5.常數(shù)表。表中列出全部數(shù)字常熟和字符常熟,并指出他們在那些語句中首先被定義
靜態(tài)錯誤分析
1.類型和單位分析
數(shù)據(jù)類型
2.引用分析
3.表達(dá)式分析
1)在表達(dá)式中不正確地使用了括號造成錯誤
2)數(shù)組下標(biāo)越界造成錯誤
3)除數(shù)為零造成錯誤
4)對負(fù)數(shù)開平方,或?qū)Ζ星笳性斐慑e誤
4.接口分析
形參與實參在類型,數(shù)量,維數(shù),順序,使用上的一致性基本路徑測試法題目,檢查全局變量和公共數(shù)據(jù)區(qū)在使用上的一致性
代碼走查
1.代碼走查方式
1)桌面檢查
2)代碼審查
通用代碼審查錯誤
*1.數(shù)據(jù)引用錯誤