這是一個困難的,開放式的問題,我知道,但我想我扔在地上,看看如果任何人有任何有趣的建議。我應該如何測試代碼生成器?
我已經開發出一種碼生成器,其將我們Python接口我們的C++代碼(通過SWIG生成),併產生以暴露此作爲Web服務所需的代碼。當我開發這個代碼時,我使用TDD做了它,但是我發現我的測試很脆弱。因爲每個測試基本上是想驗證的輸入給定碼位(這恰好是一個C++頭)我得到的輸出給定碼位我寫了一個小引擎,從XML輸入文件讀取測試定義和生成測試來自這些期望的案例。
問題是我害怕去修改代碼。這一點以及單元測試自己的事實是:複雜的,而b:脆弱的。
所以我試圖想其他辦法解決這個問題,這讓我覺得我也許解決了錯誤的方式。也許我需要更多地關注結果,IE:我生成的代碼實際上是否運行並執行我想要的代碼,而不是代碼是否按照我希望的方式運行。
有沒有人有過類似的東西,他們會關心分享的任何經驗?
我實際上面臨着同樣的問題,下面的答案都不能令人滿意。當然,您可以單元測試代碼生成器的各個部分。問題是你怎麼知道生成的代碼是正確的,即沒有迴歸或類似的東西,因此如何爲生成的代碼編寫自動化測試(無論它們是否稱爲單元測試或集成測試)? – 2009-11-30 15:58:39
@詹姆斯:那裏沒有簡單的答案......我剛剛重讀了這個問題,當時我的迴應和所有問題都回來了。我可能會在接下來的幾周內再次發佈這款遊戲,因爲我會時不時地遇到各種各樣的迴歸消息,並且發現這些消息越來越關鍵。 – jkp 2009-11-30 21:46:58