單元測試知識問答[3] 軟件測試
我希望依賴全自動的工具來完成單元測試,這一想法現實嗎?
完全自動化是一個美妙的愿望,但由于單元測試的基本特性,完全自動化的單元測試是不現實的。
與其他不同,單元測試是“隔離”的測試,要求代碼具有可測性,一個項目甚至一個文件中,難免會有些影響可測性的代碼,編譯到這些代碼時常常會產生編譯錯誤,因此,全自動的單元測試工具往往只能測試小部分代碼,即使使用某種技術手段屏蔽掉編譯錯誤,也得不償失,因為同時也屏蔽掉了改良代碼整體結構的寶貴機會。如果采用自底向上的方式,一個一個文件測試,測試一個文件前,先將該文件加入測試工程并編譯,沒有編譯錯誤時再測試,這樣可以及時發現并消除不當耦合,使代碼具有可測性,這種非全自動的方式,可以測試絕大多數代碼,也保證了代碼具有良好的整體結構。
另一方面,主要由測試工具自動生成測試用例來進行測試往往沒有實際意義,因為測試工具無法自動了解程序的功能,因此,自動測試用例通常只能發現異常之類的極端錯誤,大多數一般錯誤都是無法發現的。測試工具最重要的不是自動生成測試用例,而是能提供快速建立和編輯測試用例的工具。
如果由開發部門實施單元測試,那么測試部門要做哪些工作?
推動、組織單元測試的實施。單元測試既然叫做“測試”,開發部門常常認識不到其重要性和必要性,需要由測試部門推動和協助組織實施。
制定單元測試規范,培訓單元測試技術。
檢查、審核單元測試結果,保證單元測試的有效性。
文章來源于領測軟件測試網 http://www.kjueaiud.com/