不可測試錯誤:有些功能的測試要求是不現實的。
?、?設計錯誤
這是在設計階段產生的錯誤,它使系統的設計與需求規格說明中的功能說明不相符。它們又可以細分為:
設計不完全錯誤:某些功能沒有被設計,或設計得不完全。
算法錯誤:算法選擇不合適。主要表現為算法的基本功能不滿足功能要求、算法不可行或者算法的效率不符合要求。
模塊接口錯誤:模塊結構不合理;模塊與外部數據庫的接口不一致,模塊之間的接口不一致。
控制邏輯錯誤:控制流程與規格說明不一致;控制結構不合理。
數據結構錯誤:數據設計不合理;與算法不匹配;數據結構不滿足規格說明要求。
?、?編碼錯誤
編碼過程中的錯誤是多種多樣的,大體可歸為以下幾種:數據說明錯、數據使用錯、計算錯、比較錯、控制流錯、接口錯、輸入/輸出錯,及其它的錯誤。
在不同的開發階段,錯誤的類型和表現形式是不同的,故應當采用不同的方法和策略來進行檢測。
3. 軟件測試的過程與策略
測試過程按4個步驟進行,即單元測試、組裝測試、確認測試和系統測試。圖2.1顯示出軟件測試經歷的4個步驟。單元測試集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能。然后,進行集成測試,根據設計規定的軟件體系結構,把已測試過的模塊組裝起來,在組裝過程中,檢查程序結構組裝的正確性。確認測試則是要檢查已實現的軟件是否滿足了需求規格說明中確定了的各種需求,以及軟件配置是否完全、正確。最后是系統測試,把已經經過確認的軟件納入實際運行環境中,與其它系統成份組合在一起進行測試。嚴格地說,系統測試已超出了軟件工程的范圍。
3.1單元測試
單元測試的對象是軟件設計的最小單位——模塊。單元測試的依據是詳細設計描述,單元測試應對模塊內所有重要的控制路徑設計測試用例,以便發現模塊內部的錯誤。單元測試多采用白盒測試技術,系統內多個模塊可以并行地進行測試。
單元測試任務:
單元測試任務包括:
1 模塊接口測試;
2 模塊局部數據結構測試;
3 模塊邊界條件測試;
4 模塊中所有獨立執行通路測試;
5 模塊的各條錯誤處理通路測試。
模塊接口測試是單元測試的基礎。只有在數據能正確流入、流出模塊的前提下,其它測試才有意義。
測試接口正確與否應該考慮下列因素:
輸入的實際參數與形式參數的個數是否相同;
輸入的實際參數與形式參數的屬性是否匹配;
輸入的實際參數與形式參數的量綱是否一致;
調用其它模塊時所給實際參數的個數是否與被調模塊的形參個數相同;
調用其它模塊時所給實際參數的屬性是否與被調模塊的形參屬性匹配;
調用其它模塊時所給實際參數的量綱是否與被調模塊的形參量綱一致;
調用預定義函數時所用參數的個數、屬性和次序是否正確;
是否存在與當前入口點無關的參數引用;
是否修改了只讀型參數;
對全程變量的定義各模塊是否一致;
是否把某些約束作為參數傳遞。
如果模塊內包括外部輸入輸出,還應該考慮下列因素:
文件屬性是否正確;
OPEN/CLOSE語句是否正確;
格式說明與輸入輸出語句是否匹配;
緩沖區大小與記錄長度是否匹配;
檔使用前是否已經打開;
是否處理了檔尾;
是否處理了輸入/輸出錯誤;
輸出信息中是否有文字性錯誤;
檢查局部數據結構是為了保證臨時存儲在模塊內的數據在程序執行過程中完整、正確。局部數據結構往往是錯誤的根源,應仔細設計測試用例,力求發現下面幾類錯誤:
不合適或不相容的類型說明;
變數無初值;
變數初始化或省缺值有錯;
不正確的變量名(拼錯或不正確地截斷);
出現上溢、下溢和地址異常。
除了局部數據結構外,如果可能,單元測試時還應該查清全局數據(例如FORTRAN的公用區)對模塊的影響。
原文轉自:http://www.uml.org.cn/Test/201511262.asp