2010-09-23 35 views
1

如果使用傳統的xUnit風格的方法(如各種轉換器,XSLT等)很難測試,我經常會使用基於輸出比較的技術。測試程序在第一次運行時會產生一些輸出。我確定它是正確的,並保存以備後用。在下面的運行中,程序將新輸出與先前保存的輸出進行比較,並顯示任何差異。之後,我可以修復程序以使輸出再次匹配或(,這很重要!)我可以接受更改,以便用於比較的數據被更新。是否有我使用的測試技術的名稱?

當然,還有其他方面,例如使用不同的預處理進行比較和比較,例如, XML使用規範表示法進行比較,首先解析JSON,使用lisp閱讀器等讀取s表達式,而使用漂亮的表示法表示差異。可以使用某些指定的轉換(如刪除部分輸出)來重新運行比較。

我使用這樣的技術,用於python,其中驅動程序使用測試腳本中定義的請求調用WSGI應用程序,以及一些Common Lisp程序,包括從隨機/斷開的HTML轉換爲專有XML格式和線性加速器控制系統其中控制算法在使用產生一些輸出的設備模擬器執行時產生基於s-expr的輸出。

問題是,我不知道這種技術的確切名稱是什麼。我知道它在其他地方使用,甚至有一個名爲izh-test的測試框架使用類似的東西。但我從來沒有聽說過任何具體的名字,包括'接受變化'部分。數據驅動的測試?似乎不完全。有什麼建議麼?

+1

彌補它的名字,關於它的博客,寫一篇文章,維基百科條目和一本關於它的書。你可以在圍繞它的測試會議中旅行。嚴重的是,它是如何工作的。 – 2010-09-24 06:34:25

回答

4

ABT或自適應基線測試。你建立了一個基線,但是有一個根據測試結果調整基線的規定。

ABT的問題是,我完全做到了。我不確定是否有更廣泛的用途,但希望閱讀其他答案,看看其他人是否知道。

+0

我認爲ABT是它的合適名稱。謝謝。 – fionbio 2010-12-16 17:41:50

0

你要做的是黑匣子測試。

如果你有一個你已經驗證過的黃金副本(「我確定它是正確的並且保存以備後用」),並且在某些時候你決定替換它,你將再次驗證它。

  • 如果您替換它,因爲新的黃金副本更好或有更多信息,那麼它只是一個更新。
  • 如果因爲舊的金色副本發生故障而將其替換,則以前的驗證不好,您有SW Test Issue,並且您可能需要重新運行其他可能使用此金色副本的測試。
  • 如果因爲舊副本中的數據不再好而將其替換,那麼程序中的某些內容已發生更改,這意味着您有更改或修復或使舊版金牌無效並且需要您驗證新版本的內容一。

無論如何,你應該做的是驗證新的黃金副本(「我可以接受更改,以便用於比較的數據被更新」)。

無論你在什麼情況下,它仍然是黑匣子測試。你有一個輸入,你得到一個輸出,你將輸出與預期結果進行比較。

+0

據我所知,儘管所描述的技術可能確實是黑盒測試的一個實例,但這個術語本身具有更廣泛的含義。 – fionbio 2010-12-16 17:43:13

+0

我猜...那麼,也許你應該嘗試像「黃金副本」,「主副本」,「黃金參考」,「地面真相數據庫」或類似的術語。你實際上在談論的是有一個參考文獻,它是預期結果的已知和認證版本;然後,如果Sw發展,則可能需要對此參考進行審覈並重新進行認證。 – EKI 2010-12-17 13:39:26

相關問題