Es gibt einige Anwendungsdomänen (z. B. GameDev), in denen viele Funktionen erstellt werden sollten, die zufällige Werte verwenden, um ihre Ausgabe zu erzeugen. Eines der Beispiele wird im Folgenden dargestellt:Wie validieren Sie die Korrektheit von Funktionen, die zufällig verwendet werden?
Diese Funktion generiert den Drop des Artikels basierend auf mehreren zufälligen Operationen. Das Problem tritt auf, wenn Sie die Korrektheit dieser Funktion automatisch überprüfen möchten. Generierte Werte sind nicht deterministisch und das Schreiben von Regressionstests scheint unmöglich zu sein.
Meine Fragen sind:
- Ist dies möglich, nützliche Regressionstests für diese Art von Funktionen zu schreiben?
- Gibt es einen allgemeinen Ansatz für die Erstellung einer anderen Art von Tests in diesem Fall?
Es gibt ganze Bücher zu diesem Thema geschrieben. Beispiel: http://www.johndcook.com/Beautiful_Testing_ch10.pdf –
Es ist ein Ansatz, den RNG auszuspionieren, um bekannte Ergebnisse zu liefern (und dann mit spezifischen Ausgaben zu testen, für die das gewünschte Ergebnis bekannt ist). –