Frage

Wir haben eine Reihe von Wandlern, die komplexen Daten nehmen und es zu transformieren. Meist ist die Eingabe EDI und die XML-Ausgabe, oder umgekehrt, obwohl es auch andere Formate.

Es gibt viele Interdependenzen in den Daten. Was Methoden oder Software zur Verfügung steht, dass komplexe Eingangsdaten wie diese erzeugen kann?

Im Moment verwenden wir zwei Methoden: (1) eine Reihe von Beispieldateien, die wir im Laufe der Jahre von Dateien Bugs und Proben in der Dokumentation meist gebaut haben, und (2) Erzeugen von Pseudozufallstestdaten. Aber der ehemalige deckt nur einen Bruchteil der Fälle, und letztere hat viele Kompromisse und testet nur eine Teilmenge der Felder.

geht Bevor weiter auf dem Weg der Umsetzung (neu zu erfinden?) Einen komplexen tabellengesteuerte Datengenerator, welche Optionen haben Sie gefunden erfolgreich?

War es hilfreich?

Lösung

Nun, ist die Antwort in Ihrer Frage. Es sei denn, Sie einen komplexen tabellengesteuerte Datengenerator implementieren, tun Sie die Dinge richtig mit (1) und (2).

(1) umfasst die Regel "1 Fehler überprüft, 1 neuer Testfall". Und wenn die Struktur der Pseudo-Zufallstestdaten von (2) entspricht auch immer in realen Situationen, es ist in Ordnung.

(2) kann immer verbessert werden, und es wird vor allem im Laufe der Zeit zu verbessern, wenn über neue Grenzfälle zu denken. Das Problem mit zufälligen Daten für Tests ist, dass es nur zu einem Punkt zufällig sein kann, wo es so schwierig wird, die erwartete Ausgabe aus den Zufallsdaten in dem Testfall zu berechnen, dass Sie den getesteten Algorithmus im Testfall grundsätzlich neu schreiben.

So (2) immer einen Bruchteil der Fälle entsprechen. Wenn es eines Tages alle Fälle passt, wird es in der Tat eine neue Version des Algorithmus sein.

Andere Tipps

  1. Ich würde davon abraten, mit zufälligen Daten, wie sie es schwierig, wenn nicht unmöglich machen können, um den Fehler zu reproduzieren, die gemeldet (ich weiß, Sie sagen ‚pseudo-zufälligen‘, nur nicht sicher, was Sie von dieser genau bedeuten) .

  2. über die gesamten Dateien von Daten Betrieb wahrscheinlich Funktions- oder Integrationstests in Betracht ziehen würde. Ich würde Ihre Reihe von Dateien mit bekannten Bugs vorschlagen zu nehmen und diese in Unit-Tests zu übersetzen, oder zumindest tat so für zukünftige Fehler Sie stoßen. Dann können Sie auch diese Unit-Tests erweitern Abdeckung für die anderen fehlerhaften Bedingungen enthalten, die Sie nicht ‚Beispieldaten‘ haben. Dies wird wahrscheinlich einfacher sein, dann mit einer ganz neuen Datendatei für jedes Mal, wenn Sie denken, kommt von einer Bedingung / Regelverletzung Sie überprüfen mögen.

  3. Stellen Sie sicher, dass das Parsen des Datenformates von der Interpretation der Daten im Format eingekapselt ist. Dies wird Unit-Tests machen, wie oben beschrieben, viel einfacher.

  4. Wenn Sie auf jeden Fall Ihre Tests müssen Sie fahren möchten immer eine maschinenlesbare Beschreibung des Dateiformats zu prüfen, und einen Testdatengenerator Schreiben, die das Format analysieren und gültige / ungültige Dateien darauf basierend erzeugen. Dies wird auch Ihre Testdaten lassen sich entwickeln, da die Dateiformate als auch tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top