Bei TDD testet "gut" die Testfunktionen , die der Kunde wünscht . Features müssen nicht unbedingt Funktionen entsprechen, und Testszenarien sollten vom Entwickler nicht im luftleeren Raum erstellt werden
In Ihrem Fall - ich vermute - besteht das "Merkmal" darin, dass die Anpassungsfunktion die Eingabedaten innerhalb einer bestimmten Fehlertoleranz modelliert. Da ich keine Ahnung habe, was Sie wirklich tun, denke ich mir etwas aus. hoffentlich ist es anal.
Beispielgeschichte:
Als [X-Wing-Pilot] möchte ich [nicht mehr als 0,0001% Anpassungsfehler], damit [der Zielcomputer den Auspuff des Todessterns treffen kann, wenn er sich mit voller Geschwindigkeit durch eine Boxschlucht bewegt]
Sie sprechen also mit den Piloten (und mit dem Zielcomputer, falls dieser empfindungsfähig ist). Sprechen Sie zuerst über das, was "normal" ist, und dann über das Anormale. Sie erfahren, worauf es in diesem Szenario wirklich ankommt, was gemeinsam ist, was unwahrscheinlich ist und was nur möglich ist.
Angenommen, Sie haben normalerweise ein halbes Sekundenfenster über sieben Telemetriedatenkanäle: Geschwindigkeit, Neigung, Wanken, Gieren, Zielvektor, Zielgröße und Zielgeschwindigkeit. Diese Werte sind konstant oder ändern sich linear. Normalerweise haben Sie weniger Kanäle und / oder die Werte ändern sich schnell. Also zusammen kommen Sie mit einigen Tests auf wie:
//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
Jetzt haben Sie vielleicht bemerkt, dass es für die in der Geschichte beschriebene Situation kein Szenario gibt. Es stellte sich heraus, dass das Ziel in der ursprünglichen Geschichte nach einem Gespräch mit dem Kunden und anderen Interessengruppen nur ein hypothetisches Beispiel war. Die wirklichen Tests ergaben sich aus der anschließenden Diskussion. Das kann passieren. Die Geschichte sollte umgeschrieben werden, muss es aber nicht sein [da die Geschichte nur ein Platzhalter für ein Gespräch mit dem Kunden ist].