2010-07-25 20 views
12

Stokastik bir süreci test etmenin aklı başında bir yolu var mı? Örneğin belirli bir sistem modeli için bir simülatör kodladığınızı varsayalım. Simülatör, rngs tohumlarına göre rasgele çalışır, böylece sistemin durumu tahmin edilemez ve her testin yapılabiliyorsa, bir sınıfın herhangi bir yöntemini denemeden önce sistemi belirli bir duruma getirmesi gerekir. Bunu yapmanın daha iyi bir yolu var mı?Stokastik süreçler için birim testi?

cevap

3

Bu konuyu kapsayan bir nice blog post İşte. Temel olarak kontrollü rasgele test altındaki nesneye enjekte etmeniz gerekecektir.

7

iki bariz seçimler rastgeleliğine (yani, sizin birim testler için sabit, bilinen tohum kullanmak ve oradan devam edilir) veya istatistiksel test etmek (yani, aynı testi çalıştırmak kaldırmak için vardır Bir milyon kez dava ve ortalama ve varyans (vb) beklentileri ile eşleştiğini doğrulayın. İkincisi muhtemelen sisteminizin daha iyi bir testidir, ancak bazı yanlış alarmlarla yaşamak zorunda kalacaksınız.

+3

Sabit tohum yaklaşımının bir zayıflığı, algoritmayı değiştirirseniz, rastgele üreteç için daha fazla çağrı (veya daha az çağrı) gerçekleştirecek şekilde test ettiğinizde, o zaman da test etmek için birim testini tekrar yapmanız gerekecektir. bu değişiklik. – Michelrandahl