我正在編寫一個用於試驗演化算法的軟件包,不用說,它包含大量的隨機方法。現在,我想爲這個軟件包編寫一些(doc)測試,這樣我就可以驗證一切正常,但是我遇到了測試應該在「大部分時間」都是真實的情況。這感覺就像我可能接近這個錯誤的方式,但我仍然想聽聽你的一些想法。爲隨機函數編寫測試
例如,我在我的文檔測試是這樣的:
>>> a = Genome()
>>> b = Genome()
>>> a.mutate()
>>> a != b
True # Well, most of the time.
那樣實現測試意味着測試有時會失敗,而一切工作。
我讀的建議做測試之前修復RNG種子,但隨後我會確保一切正常之前我可以寫測試,由於測試應包括預期的結果。
你知道'大部分時間'你想要什麼嗎?如果它至少爲1%,那麼你可以在你的單位生成100個答案,並確保不超過1或2不同於你想要的。 – Zenon 2012-04-05 14:35:51
@Zenon但從統計上看,有時候會超過這個最低百分比,所以它可能仍然不能通過測試。 – noio 2012-04-05 20:45:14
你應該確定你對隨機函數的測試,如果失敗了,再次運行測試,並有合理的閾值。 – Zenon 2012-04-05 20:52:18