軟件測試 forthday(基於缺陷模式的軟件測試)

一、缺陷模式

1.該模式下的缺陷是符合實際的。該模式定義的缺陷在實際工程中是大量存在的。

2.基於該模式的缺陷數目是可以容忍的。一般缺陷數目和系統規模成線性關係。

3.該模式下的缺陷是可以測試的。應該存在一個算法可以檢測出來。

二、基於缺陷模式的軟件測試技術特點

1.針對性強:如果說某種模式的缺陷是經常發生的,並且在被測軟件中是存在的,則面向缺陷的測試可以檢測出此類缺陷;

2.具有特殊性:往往能發現其他測試技術難以發現的故障;

3.工具自動化程度高以及測試效率高;

4.缺陷定位準確;

(5.易學易用易上手;)

三、故障模式

1.存儲泄露(Memory Leak Fault)

內存沒釋放;申請函數或者空間和釋放函數或空間不匹配;

2.數組越界(Out of Bounds Array Access Fault,OBAF)

正確翻譯是“數組越界訪問錯誤”;

對程序中任何出現Array[i]的地方,都要判斷i的範圍;字符串拷貝過程中存在的數組越界故障;

3.使用未初始化變量(Uninitialized Variable Fault)

以下幾種情況不是UVF:

1)C++中,靜態變量和全局變量隱含被賦予了初值0;

2)當一個爲被初始化的變量作爲函數的參數時,該變量可能在函數中被賦予了初值;

3)變量x在一個條件或一個循環中被賦值,在該條件或循環後將x賦給變量y,此時,由於難以確定該條件或循環是否被執行,因此,這種情況也不能列爲UVF故障;

4)變量x在case語句中被賦值,如果case語句是完備的,在case後將x賦給變量y,這種情況也不是UVF類故障;

4.空指針使用(NULL Pointer Dereference Fault)

引用空指針或給空指針賦值的都是空指針使用故障

5.非法計算(Illegal Computng Fault,ILCF)

1)指計算機不允許的計算;除數爲0,對數自變量小於等於0,根號內爲負數;

2)一旦ILCF發生,系統將強行退出;

6.死循環結構(Dead Loop Fault)

for死循環,while死循環,do-while死循環,goto死循環,函數循環調用的死循環結構;

7.資源泄漏(Resource Leak Fault)

1)當一個資源被打開後,如果並不是在所有的可執行路徑上都對其進行了顯示的釋放操作,則是一個資源泄漏故障;

2)RLF是針對Java語言的,Java在一些情況下並不能保證完全的資源回收,這樣會產生資源泄漏問題;

8.併發故障模式

併發故障模式主要是針對程序員對多線程的編碼機制、各種同步方法、Java存儲器模式和Java虛擬機的工作機制不清楚,

而且由於線程啓動的任意性和不確定性,使用戶無法確定所編寫的代碼具體何時執行而導致對公共區域的錯誤使用。

這類模式包括不正確的同步、死鎖、多線程應用中方法調用時機或方式不正確、同一變量的雙重驗證、相互初始化的類和臨界區內調用阻塞函數等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章