隨著業務的革新和發展,運行它們的系統也需要進行更新。隨業務的發展、革新以及與合作伙伴、客戶和供應商的結合,這些系統將在復雜性方面持續擴增。
這種復雜性迫使 IT 的領導者們在開發過程中(即,在實現之前)確保質量。有一種方法可使開發人員減少進入 QA 環節的故障數量,即,針對自定義代碼嚴格執行自動化單元測試。在開發過程中強制使用自動化單元測試可為團隊成員提供有關如何使用自定義代碼的示例(這些示例易于使用并自行記錄)。
使用結構化、自動化單元測試面臨的挑戰之一是完成這些任務所需的代碼總數。(測試代碼需要使用大量代碼。┐a生成的概念(簡單定義為“創建軟件的軟件”)正隨著時間的快速推移而逐漸深入到團隊 IT 開發之中。有些人認為代碼生成有助于縮短“推向市場”策略的時間,強制內部標準/協定,并促進開發過程。
Microsoft 認識到這一需要后提供了一個功能豐富、帶有下一代開發平臺 Visual Studio 2005 Team System (VSTS) 的代碼生成引擎。本文提供針對單元測試代碼生成的循序漸進的指導,并深入探討如何在用例中使用。
重新思考單元測試請考慮以下情況:您負責為公司生成下一代系統,同時您是較大的開發團隊中的一員。您是 UI 開發人員,負責盡可能多地創建 Microsoft ASP.NET/Microsoft WinForms。您依賴“中間層”團隊完成其中間層組件 — 這些組件用于執行數據庫 CRUD (Create-Retrieve-Update-Delete) 以及與該系統中每個實體相關的業務規則。
經過幾周的 UI 開發,您完成了窗體并且收到了中間層開發人員打算向您提交其類庫的消息。下面提供一段對話示例,說明我們大多數人在開發過程中都會遇到的一些事情。
UI 開發人員和中間層開發人員間的示例對話中間層:
“這些對象隨時供您使用 — 為此,只需獲取 OurSystemBL.dll 的最新版本!
UI:
“謝謝。您有供我們查看文檔嗎?”
中間層:
“哈哈!是的,當然有!我們花了很多時間編寫它!請查看 Design Document — 噢,請等一等,它還沒有完成……(不久之后即可完成。
UI:
“您使用 XML 文檔了嗎?”
中間層:
“在構造函數中,但許多方法都不使用!
UI:
“顯示如何創建、執行并刪除對象的示例代碼,怎么樣?”
中間層:
“我已經附加了一個示例 WinForms 應用程序(從我的工作區),它應該能夠提供一些您所需的內容……,雖然它不在 Microsoft Visual SourceSafe 中!
在考慮如何進行這樣有趣的項目之后,您打定了主意,決定檢驗中間層的單元測試套件。在深入鉆研該代碼之后,您注意到該窗體有兩個未標記的文本框,以及三個標記為button1、button2和button3的按鈕(幸運的話,它們將排列在窗體上)。接下來,在查看與這些按鈕相關的事件之后,您認識到這些代碼都未經注釋,并且數據變量都被命名為 x、y、z。如果幸運,您還會注意到button1和button2執行該對象的Save()方法,而button3執行Delete()方法。執行時,您會接收到很多 System.Exception 錯誤,這是因為遺漏了很多配置設置。
這顯然是一個特例,我希望多數開發團隊不要進行這一試驗,下面讓我們看一下該方案中“單元測試”遇到的問題:
•
文章來源于領測軟件測試網 http://www.kjueaiud.com/