¡Hola Comunidad de Discourse! ![]()
He estado trabajando en tecnología (Colimit) que ayuda a las personas a aplicar Pruebas basadas en modelos para probar su frontend web/navegador/DOM, backend de API, o incluso modelos ORM o view-models. Si no estás familiarizado con la idea, básicamente defines una especificación de alto nivel de lo que tu aplicación debe hacer en términos de acciones posibles que se pueden tomar, y a partir de eso obtienes cientos o miles de secuencias de acciones de usuario válidas (es decir, flujos de usuario) que pueden rastrear inteligentemente un gran espacio de estado de posibilidades y descubrir errores difíciles de alcanzar en comparación con los casos de prueba escritos a mano.
Estoy saliendo de la fase de usar Colimit en ejemplos pequeños y pensé en Discourse como un candidato posiblemente excelente para probarlo a continuación, porque es una aplicación sofisticada que se ejecuta en producción pero también es de código abierto, lo que facilita su manipulación. Lo interesante es que Colimit está escrito de manera abstracta para que puedas reutilizar la misma especificación/modelo (escribiendo adaptadores) para hacer diferentes estilos de pruebas como, por ejemplo, las pruebas de la API de Discourse a través de la gema, en comparación con las pruebas de integración usando Capybara, o las pruebas de humo usando Puppeteer, etc.
Antes de empezar, me preguntaba si alguien de la comunidad de Discourse podría pensar en alguna área de la aplicación que actualmente sea una fuente importante de errores o que tenga menos cobertura y en la que valdría la pena centrar el tiempo.
Además, solo por curiosidad, agradecería cualquier respuesta de personas que piensen que esto suena interesante y vean un valor potencial para probar el proyecto Discourse, o si la opinión es que el estado actual de las pruebas ya es lo suficientemente bueno (en cuyo caso todavía hay al menos un valor de mantenimiento posible al poder reemplazar las pruebas escritas manualmente por aquellas que podrían generarse automáticamente a partir de un modelo).
¡Gracias!