per TDD, i "buoni" test mettono alla prova le funzionalità che il cliente desidera ; le caratteristiche non corrispondono necessariamente alle funzioni e gli scenari di test non devono essere creati dallo sviluppatore nel vuoto
nel tuo caso - suppongo - la 'caratteristica' è che la funzione di adattamento modella i dati di input entro una certa tolleranza di errore. Dal momento che non ho idea di cosa stai davvero facendo, sto inventando qualcosa; speriamo sia analgico.
Esempio di storia:
Come [pilota dell'X-Wing] voglio [non più dello 0,0001% errore di adattamento] in modo che [il computer di destinazione possa colpire la porta di scarico della Morte Nera quando si muove a tutta velocità attraverso un canyon box]
Quindi vai a parlare con i piloti (e con il computer di destinazione, se senziente). Prima parli di ciò che è "normale", poi parli dell'anormale. Scopri cosa conta davvero in questo scenario, cosa è comune, cosa è improbabile e cosa è semplicemente possibile.
Diciamo che normalmente avrai una finestra di mezzo secondo su sette canali di dati di telemetria: velocità, inclinazione, rollio, imbardata, vettore target, dimensione target e velocità target, e che questi valori saranno costanti o cambieranno linearmente. Anormalmente potresti avere meno canali e / o i valori potrebbero cambiare rapidamente. Quindi insieme ti vengono in mente alcuni test come:
//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
Ora, potresti aver notato che non esiste uno scenario per la situazione particolare descritta nella storia. Si scopre, dopo aver parlato con il cliente e le altre parti interessate, che l'obiettivo nella storia originale era solo un esempio ipotetico. I veri test sono usciti dalla discussione che ne è seguita. Questo può succedere. La storia deve essere riscritta, ma non deve essere [poiché la storia è solo un segnaposto per una conversazione con il cliente].