¿Existe una forma sensata de probar un proceso estocástico? Por ejemplo, diga que ha codificado un simulador para un modelo de sistema específico. El simulador funciona de forma aleatoria en función de las semillas de los rngs, por lo que no se puede predecir el estado del sistema y, si puede ser así, cada prueba debe llevar al sistema a un estado específico antes de intentar probar cualquier método de una clase. ¿Hay una mejor manera de hacer esto?¿Pruebas unitarias para procesos estocásticos?
12
A
Respuesta
3
Aquí hay un nice blog post que cubre este tema. Básicamente, deberá inyectar una aleatoriedad controlada en el objeto bajo prueba.
1
Tal vez podrías usar JUnit Theories
para resolver eso.
7
Las dos opciones obvias son eliminar la aleatoriedad (es decir, utilizar una, semilla fijo conocido para sus pruebas de unidad y proceda de allí), o para probar estadísticamente (es decir, ejecutar la misma prueba caso un millón de veces y verifique que la media y la varianza (etc.) coinciden con las expectativas). Este último es probablemente una mejor prueba de su sistema, pero tendrá que vivir con algunas falsas alarmas.
Cuestiones relacionadas
- 1. Pruebas unitarias para malloc()
- 2. Pruebas unitarias para PL/SQL
- 3. pruebas unitarias para raspar pantallas?
- 4. Pruebas unitarias para salida HTML?
- 5. SpecFlow/BDD para pruebas unitarias?
- 6. ¿Pruebas unitarias o pruebas funcionales?
- 7. Pruebas unitarias JSP
- 8. BDD y pruebas unitarias
- 9. Pruebas unitarias XSLT
- 10. Pruebas unitarias Scala
- 11. Pruebas unitarias con Oracle
- 12. Pruebas unitarias: cómo hacerlo?
- 13. Pruebas unitarias y SAP
- 14. Pruebas unitarias Aplicaciones Dababase
- 15. Pruebas unitarias en C++
- 16. Pruebas unitarias Wpf Bindings
- 17. pruebas unitarias TSQL
- 18. pruebas unitarias maven plugins
- 19. Pruebas unitarias Controladores MVC
- 20. Pruebas unitarias en flex
- 21. Pruebas unitarias XQuery
- 22. Pruebas unitarias Fallas WCF
- 23. Pruebas unitarias DAO
- 24. Pruebas unitarias con Mockito
- 25. Pruebas unitarias API REST
- 26. Pruebas unitarias ... cómo mejorarlo
- 27. Pruebas unitarias XML Generation
- 28. Generando pruebas unitarias automáticamente
- 29. Destructores de pruebas unitarias?
- 30. Pruebas unitarias con singletons
una debilidad del enfoque de semilla fija podría ser que si cambia el algoritmo que está probando de manera que realiza más llamadas (o menos llamadas) al generador aleatorio, también tendrá que volver a corregir la prueba de la unidad para cumplir este cambio. – Michelrandahl