C/C++單元測試工具Visual Unit 4發佈

單元測試與之前不一樣了程序員

    測試代碼功能邏輯,實現高效率高質量編程。

    若是不作單元測試,編程產能大部分消耗在調試上。一個模塊的純編碼時間若是爲10,那麼,即時調試(編碼過程當中的調試)時間在10-50之間,後期調試(集成後排除bug的調試)時間也在10-50之間。調試一個bug,一兩個小時不知不覺就過去了,一兩個小時可以編寫一堆代碼。

    單元測試節約90%的調試,假如單元測試自己不消耗時間,那麼,編寫合格代碼的產能能夠提高兩到三倍。惋惜單元測試太難,太費時間,高成本基本上抵消了效益。雖然如此,仍是有很多企業在實施或不斷嘗試單元測試,說明業界廣泛認爲,單元測試的效益,與投入相比,至少是持平的。

    最新發布的C/C++單元測試工具Visual Unit 4,比現有的任何同類工具測試效率高10倍以上,意味着單元測試的時間成本下降90%,同時,只收服務費,使採購工具的成本也下降90%。若是在之前的時間成本和工具成本下,效益和成本是平衡的,那麼,這兩項成本雙降90%意味着什麼?大量的錢!若是程序員人手一套VU4,邊開發邊測試,對於一個效益還過得去的企業,一位中級程序員一年能夠產生20萬的效益!
編程

10倍效率從何而來?ide

    VU4徹底表格驅動,不用寫測試代碼。請看下面的測試示例,測試涉及到:底層輸入(調用底層函數產生的數據)、局部輸出(執行過程當中判斷變量)、對象指針鏈表、對象指針映射表。使用VU4,點幾下鼠標,在表格填幾行數據就OK了,別的工具要寫多少代碼?且哪一個能判斷局部輸出?豈止是十倍效率。這個示例未涉及到局部輸入(中斷輸入、界面輸入、靜態輸入等),其設置也同樣。有些工具宣稱自動生成用例完成測試,那不是高效率,那是高忽悠,工具不可能自動了解代碼功能,所以不可能生成有意義的用例。VU4任意設置邏輯塊的輸入輸出,一個函數多個邏輯塊能夠對應多個表格,天下沒有難測的代碼!

    
    

    
函數

快速完成高標準覆蓋工具

    歐美航空標準MC/DC覆蓋很強很科學,但是廣受質疑,由於太難了,但使用VU4,則一點也不難。VU4針對未覆蓋的邏輯單位,自動計算出近似用例及修改提示,根據提示修改近似用例,就能夠找出隱藏很深的用例實現覆蓋。完成高標準覆蓋又是一個效率瓶頸,不過對VU4來講,倒是一項拿手好戲,進一步拉大測試效率的領先距離。

   
  單元測試

  • 舒服地高效地編寫代碼測試

        邏輯塊可視編程,提交前完成覆蓋,只進行粗線條調試。這就是Easy TDD,舒服而高效的編程模式。
       
        VU4自動示出程序行爲:什麼輸入執行什麼代碼產生什麼輸出。寫幾行代碼就觀察程序行爲,看程序所作的跟你所想的是否一致、思路是否有誤差、錄入是否有錯誤,這樣編寫代碼尤爲是複雜的邏輯計算代碼,舒服而高效。
       
        編寫邏輯塊應該用可視編程,其餘代碼能夠先不測試,以保持原來的習慣以及專一。VU4自動統計最近編寫或修改的函數,提交代碼到版本管理工具前,或模塊的編寫告一段落時,再把沒測的跑一下看一下,並完成覆蓋,至關於代碼的複查。
    日常的調試,能夠只用來跟蹤大的流程,沒必要調試邏輯塊。後期發現了bug,調試只用來粗略定位,例如判斷是哪一個函數的問題,而後補充用例數據,修改代碼並使單元測試經過,問題就解決了。

        下圖示出代碼編寫過程當中對程序行爲的觀察。原本覺得功能都實現了,但是結果不對,爲何呢?若是代碼是你寫的,一會兒就看出緣由來了:指針偏移後沒有恢復。圖中,黑色代碼是當前輸入下執行的代碼。寫幾行代碼就能夠觀察程序行爲,這就是可視編程。

        

        下圖是提交前完成覆蓋的界面,對於圖示的沒有邏輯計算的代碼,不用作任何工做,直接執行一下就能夠完成覆蓋。也能夠把最近更新的函數一次性執行,而後查看黃燈和紅燈函數。

       
     
  • 總結編碼

        大道至簡,使用VU4,單元測試很簡單。    人手一套VU4,編寫合格代碼的產能馬上提高到原來的二到三倍,並且開發過程很舒服。節約一張紙頗有意義,但節約程序員的一分鐘,意義要大不少不少,人才,纔是最昂貴的。    從前,單元測試誰都作不了或成本過高,現在,平衡已被打破。若是作外包,投標時承諾單元測試將秒殺對手(哪一個發包方不重視項目質量?);若是作產品,快速的開發過程,將幫你搶佔市場先機,搶佔幾回先機,就把對手遠遠甩掉了。
  • 相關文章
    相關標籤/搜索