.NET自動探索式測試工具—Pex

發表于:2008-08-07來源:作者:點擊數: 標簽:工具PexNetNET自動
Pex是微軟研究院的一個 白盒測試 生成工具。不像我們平時在給定的方法中為每個執行路徑手寫獨立測試,Pex允許 開發 人員編寫單獨的參數化 測試方法 。這樣Pex就能生成一套標準的 單元測試 ,在目標方法里測試執行路徑。Pex一個指令一個指令地分析.NET代碼,解
Pex是微軟研究院的一個白盒測試生成工具。不像我們平時在給定的方法中為每個執行路徑手寫獨立測試,Pex允許開發人員編寫單獨的參數化測試方法。這樣 Pex就能生成一套標準的單元測試,在目標方法里測試執行路徑。Pex一個指令一個指令地分析.NET代碼,解釋代碼執行時的動作,然后“以一種完全自動 的方式,計算出那些能觸發邊角代碼的相關測試輸入?!?clearcase/" target="_blank" >cccccc" cellpadding="1" cellspacing="0">
         給定一個手寫的參數化單元測試,Pex完全自動地分析代碼,來決定相關的測試輸入。其結果就是生成一個有著高度代碼覆蓋的傳統單元測試,另外,Pex還會建議程序員如何去修復所發現的Bug。

        Pex實際上并沒有減少開發人員多少工作量,他們依然需要手寫那些定義和覆蓋了方法基本行為的單元測試,來確保API和函數符合必要用例和用戶故事的需 求。但是,Pex可被用作一個附加的方法來確保測試充分地覆蓋這些實現的代碼。在方法中識別不確定的行為和錯誤時,這個自動探索式測試工具尤其有用。

        和其他大多數生成工具一樣,Pex在確定的環境下使用效果很好。單元測試驅動(TDD)的設計原則是保持方法簡短和可測試,這個原則也讓Pex生成的測試 更為可讀。在實現符合TDD的設計目標時,Pex也是很不錯的工具,比如如果Pex為某方法生成了許多復雜的測試,那么這個方法很有可能需要重構。在方法 是以基礎類型做參數,而不是自定義的對象時,Pex的效果也不錯。

       Pex默認集成于Visual Studio 2008和MSTest中,但是Pex的擴展允許下載并支持NUnit、MbUnit或者xUnit.Net。另外Pex還基于擴展反射可管理子協議 API(Extended Reflection managed profiling API)對監測應用程序的集成提供了支持。

        需要提醒的是,Pex目前還只是微軟研究院的一個試驗項目,不會像微軟正式產品一樣獲得支持。不建議將Pex作為寫單元測試的首要選擇,但是它的自動測試生成能有效覆蓋邊緣的用例。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97