我正在嘗試使用API sanity autotest自動生成我的C代碼的單元測試。需要API完整性自動測試幫助
但是,問題在於使用起來有些複雜,有關如何使用它的教程/ howto /其他資源將非常有用。
你有沒有使用API完整自動測試的運氣? 您認爲有更好的工具可以用來自動生成C代碼的單元測試嗎?
我正在嘗試使用API sanity autotest自動生成我的C代碼的單元測試。需要API完整性自動測試幫助
但是,問題在於使用起來有些複雜,有關如何使用它的教程/ howto /其他資源將非常有用。
你有沒有使用API完整自動測試的運氣? 您認爲有更好的工具可以用來自動生成C代碼的單元測試嗎?
這首先是災難的祕訣。如果你自動生成單元測試,你會得到一堆並不意味着很多的測試。如果您有一個未在自動化測試中涉及的庫,那麼根據定義,該庫是舊版代碼。考慮下面的遺留代碼的傳統觀念......
對於每一個變化:與測試
新代碼驅動的變化也考慮撿的Working Effectively with Legacy Code副本。
編輯:
作爲我們討論的結果,它已經很清楚,您只需要執行一些基本標準,例如具有指針值如何處理無效,用你生成的測試。我會爭辯說,你不需要生成測試。相反,您需要一個檢查庫並動態地執行其功能的工具,以確保它符合您定義的一些編碼標準。我建議你自己編寫這個工具,這樣它就可以利用你對你想實施的規則和正在測試的庫的知識。
這是一個更好的工具(在Unix的免費解決方案中)能夠完全自動生成煙霧測試,如果您的庫包含超過一百個函數。獨特的功能是爲每個功能自動生成合理的輸入參數。
該框架最流行的用例是快速查找庫中的內存問題(段錯誤)。從歷史上看,這個框架被用來爲Qt3和Qt4等大型庫創建LSB認證測試套件,這些套件無法在合理的時間內手動創建。
使用以下命令生成,構建和執行測試:
api-sanity-checker -l name -d descriptor.xml -gen -build -run
XML描述符是指定版本號的簡單的XML文件,路徑頭文件和共享對象:
<version>
0.3.4
</version>
<headers>
/usr/local/libssh/0.3.4/include/
</headers>
<libs>
/usr/local/libssh/0.3.4/lib/
</libs>
你可以使用specialized types來改善輸入參數的生成測試。
請參閱example爲freetype2生成的測試2.4.8。
你的耳朵之間的工具如何?編寫自己的單元測試很少是火箭科學。 – 2010-04-01 23:06:17