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