如果使用傳統的xUnit風格的方法(如各種轉換器,XSLT等)很難測試,我經常會使用基於輸出比較的技術。測試程序在第一次運行時會產生一些輸出。我確定它是正確的,並保存以備後用。在下面的運行中,程序將新輸出與先前保存的輸出進行比較,並顯示任何差異。之後,我可以修復程序以使輸出再次匹配或(,這很重要!)我可以接受更改,以便用於比較的數據被更新。是否有我使用的測試技術的名稱?
當然,還有其他方面,例如使用不同的預處理進行比較和比較,例如, XML使用規範表示法進行比較,首先解析JSON,使用lisp閱讀器等讀取s表達式,而使用漂亮的表示法表示差異。可以使用某些指定的轉換(如刪除部分輸出)來重新運行比較。
我使用這樣的技術,用於python,其中驅動程序使用測試腳本中定義的請求調用WSGI應用程序,以及一些Common Lisp程序,包括從隨機/斷開的HTML轉換爲專有XML格式和線性加速器控制系統其中控制算法在使用產生一些輸出的設備模擬器執行時產生基於s-expr的輸出。
問題是,我不知道這種技術的確切名稱是什麼。我知道它在其他地方使用,甚至有一個名爲izh-test的測試框架使用類似的東西。但我從來沒有聽說過任何具體的名字,包括'接受變化'部分。數據驅動的測試?似乎不完全。有什麼建議麼?
彌補它的名字,關於它的博客,寫一篇文章,維基百科條目和一本關於它的書。你可以在圍繞它的測試會議中旅行。嚴重的是,它是如何工作的。 – 2010-09-24 06:34:25