Saltar al contenido principal

Pruebas de stress

Suite de stress. Falsifica partes de la app cuyo fallo cuesta dinero a los usuarios - principalmente copy trading - con cargas de trabajo hostiles, aleatorizadas e inyectadas con fallos. Afirma que el sistema se mantiene correcto.

Enfoque - Pruebas de Simulacion Deterministica (DST)​

La mejor manera de hacer stress de sistemas financieros distribuidos es DST: ejecutar logica real contra un mundo simulado, impulsar con carga de trabajo aleatoria con semilla + fallos inyectados, afirmar invariantes en quiescencia. Combinado con:

  • Inyeccion de fallos al estilo Chaos Monkey.
  • Invariantes basadas en propiedades.

Que cubre​

Copy trading (enfoque principal)​

EscenarioFalsifica
Mass fan out1 fuente -> 80 destinos, 150 abre/cierra
High frequency open close300 rapid open/close interleaved
Partial close and scale in stormpartial close + scale in churn
Connection flap stormdisconnect/reconnect repetido
Order rejection cascadesubconjunto rechaza cada orden
Token rotation stormswaps de token durante tormenta de ordenes
Randomized chaos workload (10 seeds)todos los tipos de evento + fallos intercalados
CopyLeaseReclaimStressTestsmuerte de nodo + reclamacion de lease

Invariante de convergencia: cada destino saludable refleja exactamente el conjunto de posiciones abiertas de la fuente.

Bugs encontrados​

  • Carrera de resincronizacion de inicio en CopyEngineHost. OnReconnected conectado antes de la carga inicial + primera resincronizacion, que se ejecutaba sin _stateGate.

Ejecucion​

dotnet test tests/StressTests/StressTests.csproj

La suite es serializada: cada prueba hace girar el host en segundo plano, conduce a quiescencia, afirma. Las cargas de trabajo se dimensionan para terminar en segundos.