版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1491702
章五 帶上眼罩測試軟體
一、等價類劃分
選擇測試用例是軟體測試員最重要的任務。選擇測試用例的方法是等價類劃分(equivalence partitioning),有時稱為等價分類(equivanlence classing)。等價類劃分是指分步驟地把海量的測試用例集減得很少,但過程同樣有效。
注意:一個等價類或者等價劃分是指測試相同目标或者暴露相同軟體缺陷的一組測試用例。
如果為了減少測試用例的數量過度劃分等價類,就有漏掉那些困難暴露軟體缺陷的測試的風險。
等價類劃分可能主觀。測試同一個複雜程式的兩個軟體測試員可能會得出兩組不同的等價劃分間。隻要審查等價劃分的人認為它們足以覆寫整個測試用例即可。
二、資料測試
軟體最簡單的劃分:資料和程式。
資料包括鍵盤輸入、滑鼠單擊、磁盤檔案、列印輸出等。
程式是指可執行的流程、轉換、邏輯和運算。
軟體測試常用的一個方法是把測試工作按同樣的形式劃分。
對資料進行軟體測試,就是在檢查使用者輸入的資訊、傳回的結果以及中間計算結果是否正确。
使所有資料得以測試的技巧是,根據一些關鍵的原則進行等價類劃分,以合理減少測試用例,這些關鍵的原則是:邊界條件、次邊界條件、空值和無效資料。
1、邊界條件(boundary condition)
描述邊界條件是測試的最佳方式。邊界條件是特殊情況,程式設計從根本上說在邊界上容易産生問題。
2、邊界條件類型
邊界條件是指軟體運作在計劃操作界限的邊界的情況。
每一個軟體測試問題各不相同,可能包含各種不同的資料以及其獨特的邊界。
3、測試邊界
提出邊界條件時,一定要測試臨近邊界的有效資料,測試最後一個可能有效的資料,同時測試剛超過邊界的無效資料。
越界測試的做法通常是簡單地對于最大值加一或者很小的數,以及對于最小值減一或者很小的數。
注意:在軟體的每一個部分不斷尋找邊界是極為重要的,尋找做得越多,邊界就會發現得越多,可能找出的軟體缺陷也就越多。
注意:緩沖區溢出(buffer overrun)是由邊界條件缺陷引起的,它是造成軟體安全問題的頭号原因。
4、次邊界條件
普通邊界條件是很容易找到的,它們在産品說明書中有定義,或者在使用軟體的過程中明顯。有些邊界在軟體内部,最終使用者幾乎看不到,但軟體測試員仍有必要進行檢查,這樣的邊界條件稱為次邊界條件(sub-boundary conditions)或者内部邊界條件(internal boundary conditions)。
尋找次邊界條件不要求軟體測試員成為程式員或者具有閱讀源代碼的能力,但是确實要求大體了解軟體的工作方式。是以軟體測試員應該和開發小組的程式員交流這方面問題。
(1)在建立等價劃分時,要考慮等價劃分中是否需要包含2的幂的邊界條件。
(2)另一種可能的軟體缺陷來源是當軟體要求輸入時——比如在文本框中——不是沒有輸入正确的資訊,而是根本沒有輸入任何内容,可能單單按了Enter鍵。
好的軟體會處理這種情況,它通常将輸入内容預設為邊界内的最小合法值,或者在合法劃分中間的某個合理值,或者傳回錯誤提示資訊。
理想情況是軟體取某個合法的寬度和高度作為預設值來處理。如果沒有這樣做,就應該傳回錯誤提示資訊作為執行結果。
技巧:一定要考慮建立處理預設值、空白、空值、零值或者無輸入等條件的等價劃分。
(3)非法、錯誤、不正确和垃圾資料
資料測試的最後一種類型是垃圾資料。這是失效性測試的對象。
經過邊界測試、次邊界測試和預設值測試等通過性測試證明軟體能夠工作之後,就該進行垃圾資料測試了。
非法、錯誤、不正确和垃圾資料測試是很有意思的。如果軟體要求輸入數字,就輸入字母;如果軟體隻接受正數,就輸入負數;如果軟體對日期敏感,就看它在公元3000年是否能正常工作;假裝有“肥胖的手指”,同時按下多個鍵。
此類測試沒有實際的規則,隻是設法破壞軟體。要發揮創造力,要會走偏門。