2011-04-27 84 views
1

當閱讀question關於使用隨機種子多次測試Java程序時,單詞測試引發了單元測試的關聯,但這可能不是那種測試。測試框架是否存在允許失敗的百分比?

在我看來,在單元測試中引入隨機性會被認爲是不好的做法,但是後來我開始考慮一個(小)失敗百分比可能是現在可以接受的情況。

例如,對於n> 3,代碼未能通過單位測試每10^n一次,並且逐漸希望n在沒有測試變紅,也許是黃色的情況下轉到無窮大。

另一個例子可能是系統範圍的測試,大部分時候事情都是正確的,但是你仍然想限制/知道他們可能出錯的頻率。

所以我的問題是,是否有任何框架(全譜測試)在那裏可以說服一個巨大的/過多的重複測試失敗的百分比?

+1

這可能不是你的問題的答案,但我想你可能想看看的是[基於性質的測試](http://blog.jessitron.com/2013/04/property-based-testing- what-is-it.html),可以生成大量的測試,然後返回失敗的測試用例。 – GKalnytskyi 2016-02-03 03:58:34

+0

@GKalnytskyi感謝您的輸入!這個鏈接讓我記得大學教授的一個週五下午的話題,它提到了基於屬性測試的問題,獲得了輸入權,而不是炸燬JVM。一個很好的解決方案輸入到接受的答案。 – Gressie 2016-02-03 17:49:38

回答

2

你可以「說服」大多數測試框架,允許通過不使用框架直接執行「測試」而只是通過執行普通的舊條件(例如:if語句)並記錄失敗百分比來允許部分失敗。然後使用框架來聲明此百分比低於您的閾值。

如果你的測試是確定性的(通常被認爲是一件好事),那麼另一種方法是測試當前的行爲,即使它錯了,但要評論不正確的斷言(通常用「正確的」答案應該)。如果這些測試失敗,您可以查看評論。如果代碼已經變得「正確」,那麼更好,更新該斷言。如果不是,那麼決定行爲的改變比舊行爲好還是差,並據此採取行動。這種方法可以讓你隨着時間的推移「擰緊螺絲」。

+0

謝謝,讓百分比的框架測試是一個好主意!這至少應該讓人們以正確的心態去解決類似的問題,如果不足以完全解決問題的話。 – Gressie 2011-04-27 06:35:35

相關問題