1、通過手工測試無法做到覆蓋所有代碼路徑;
2、許多與時序、死鎖、資源沖突、多線程等有關的錯誤通過手工測試很難捕捉到;
3、在系統負載、性能測試時,需要模擬大量數據、或大量并發用戶等各種應用場合時,也很難通過手工測試來進行;
4、在進行系統可靠性時,需要模擬系統運行十年、幾十年,以驗證系統能否穩定運行,也是手工測試無法模擬的;
5、如果有大量(幾千)的測試用例,需要在短時間內完成,手工測試無法保證;
6、測試可以發現錯誤,并不能表明程序的正確性;
7、測試所有可能情況將遭遇“組合爆炸”問題
(1)Win98, WinME, WinNT, Win2k, WinXP, WinXP TablePC Ed, WinXP MediaCenter Ed, Longhorn, etc
(2)English, German, Japanese, Chinese, Arabic, Thai…
(3)Office 97, Office2000, Office XP, Office 2003…
(4)X86 32-bit, Intel 64-bit, AMD 64-bit, Alpha, MIPS…
(5)SQL Server 6.5, SQL Server 7.0, SQL Server 2000…
(6)Visual Studio 6, VS .NET, VS .NET 2003, Whidbey…
8、代碼全部Code Path測試覆蓋也幾乎不可能
(1)每一個if…else…或switch語句就會把情況增加一倍
(2)許多異常處理代碼在正常使用中不會碰到
(3)許多與時序,死鎖,資源沖突,多線程有關的錯誤很難捕捉到
9、每一個產品都會有不同的版本外加各自的SP與QFE (Quick Fix Engineering, 又稱Hot fix)
(1)NT4, VS6 SP1~SP5, Windows 2000 SP1-SP4
(2)VS .NET, SQL Server SP1 – SP3
10、可重復使用的自動測試對產品未來版本與Service Pack的測試將有事半功倍的效果。
新聞熱點
疑難解答