para TDD, las pruebas "buenas" prueban las características que el cliente desea ; las características no se corresponden necesariamente con las funciones, y el desarrollador no debe crear escenarios de prueba en un vacío
en su caso, supongo, la 'característica' es que la función de ajuste modela los datos de entrada dentro de una cierta tolerancia de error. Como no tengo idea de lo que realmente estás haciendo, estoy inventando algo; esperemos que sea análogo.
Ejemplo de historia:
Como [Piloto de X-Wing] quiero [no más de 0.0001% de error de ajuste] para que [el equipo que ataca pueda alcanzar el puerto de escape de la Estrella de la Muerte cuando se mueva a toda velocidad a través de un cañón de caja]
Así que vas a hablar con los pilotos (y con la computadora de destino, si es sensible). Primero hablas de lo que es 'normal', luego hablas de lo anormal. Averigua lo que realmente importa en este escenario, lo que es común, lo que es improbable y lo que es meramente posible.
Digamos que normalmente tendrá una ventana de medio segundo en siete canales de datos de telemetría: velocidad, inclinación, balanceo, giro, vector objetivo, tamaño objetivo y velocidad objetivo, y que estos valores serán constantes o cambiantes linealmente Anormalmente puede tener menos canales y / o los valores pueden estar cambiando rápidamente. Entonces, juntos se te ocurren algunas pruebas como:
//Scenario 1 - can you hit the side of a barn?
Given:
all 7 channels with no dropouts for the full half-second window,
When:
speed is zero
and target velocity is zero
and all other values are constant,
Then:
the error coefficient must be zero
//Scenario 2 - can you hit a turtle?
Given:
all 7 channels with no dropouts for the full half-second window,
When:
speed is zero
and target velocity is less than c
and all other values are constant,
Then:
the error coefficient must be less than 0.0000000001/ns
...
//Scenario 42 - death blossom
Given:
all 7 channels with 30% dropout and a 0.05 second sampling window
When:
speed is zero
and position is within enemy cluster
and all targets are stationary
Then:
the error coefficient must be less than 0.000001/ns for each target
Ahora, es posible que haya notado que no hay un escenario para la situación particular descrita en la historia. Resulta que, después de hablar con el cliente y otras partes interesadas, ese objetivo en la historia original fue solo un ejemplo hipotético. Las pruebas reales salieron de la discusión subsiguiente. Esto puede suceder. La historia debe ser reescrita, pero no tiene que ser [ya que la historia es solo un marcador de posición para una conversación con el cliente].