具體來說,我有一種方法從列表中選取n個項目,其中一個百分比滿足一個條件,b%滿足第二個條件,依此類推。一個簡單的例子是選擇5個項目,其中50%具有給定屬性,值爲'真',50%'假'; 50%的時間該方法將返回2 true/3 false,另外50%,3 true/2 false。從統計學上講,這意味着超過100次運行,我應該得到約250真/ 250假,但由於隨機性,240/260是完全可能的。單元測試生成隨機輸出的代碼的最佳方法是什麼?
單元測試的最佳方式是什麼?我假設儘管300/200技術上是可能的,但如果發生這種情況,測試可能會失敗。這種情況是否有普遍接受的容忍度?如果是這樣,你如何確定這是什麼?
編輯:在我正在處理的代碼中,我沒有使用僞隨機數生成器的奢侈品,也沒有使用僞隨機數生成器或強制它隨時間推移而平衡的機制,因爲列出了所選列表在不同的機器上生成。我需要能夠證明,隨着時間的推移,符合每個標準的項目的平均數量將傾向於所需的百分比。
在這個例子中,你想要至少/正好50%還是約50%?更具體地說,這個測試的隨機性是什麼? – Gishu 2010-06-18 09:41:04
我懷疑你實際上沒有編寫單元測試。如果您正在測試運行在不同機器上的服務器,則實際上正在進行系統測試。我只能告訴你:如果你對這些服務器上運行的類進行了單元測試,那麼你不再需要進行太多(詳細的)系統測試。 – 2010-06-18 10:13:54
不,重點是要確認算法在2/3 50%的時間內選擇2/3的其他50%(在這個簡單的例子中),無論它在哪裏使用。這不是一個製造這個系統的系統;在一臺機器上運行1000次被認爲是一個足夠的測試,以證明如果它在世界各地的100臺機器上運行10次,它將適當平均,因此我計劃對它進行單元測試。 – Flynn1179 2010-06-18 11:51:56