1UnitedPower: Modultests für Algorithmen

Beitrag lesen

Meine Herren!

wow, das klingt nach einer Herausforderung. Damit scheiden ja traditionelle Unit-Test Verfahren schon fast aus, weil zu sehr Blackbox.

Die Modul-Tests dürfen auch gerne White-Box-Verfahren einschließen. Das ist keine Limitation.

Welche Anhaltspunkte stehen dir denn technisch zur Verfügung, darfst du die Implementierung manipulieren, per Code Injection, per direkter Source Manipulation, ...?

Die Algorithmen sind als Generatoren implementiert. Mir steht es frei so viele Zwischenrufe (yield / emit) einzufügen, wie ich möchte. Die Zwischenrufe dürfen dabei nicht manipulativ sein, sondern müssen die internen Daten unberührt lassen.

Du wirst es ja schließlich nur dann schaffen, wenn du automatisiert das Verhalten des Algorithmus überwachen und damit bei Zwischenschritten bereits kontrollieren kannst.

Ja die Zwischenschritte kann ich genauestens überwachen, das hatte ich in der urprünglichen Fragestellung vergessen. Es gibt ein Sortierprotokoll, das alle Zwischenschrite akribisch genau auflistet und das ich bei Bedarf erweitern kann.

Das ganze klingt schon fast nach einer Erkennung des Algorithmusses und damit gar nicht mal leicht. Ist die Menge der Kandidaten bekannt, sprich weißt du auf welche/wieviele Sortierverfahren du prüfst?

Ja die Kandidaten sind:

Bubblesort
Gnomesort
Selectionsort
Quicksort
Swapsort
Shakesort
Combsort
Stoogesort
Heapsort
Mergesort
Insertionsort
Slowsort

--
“All right, then, I'll go to hell.” – Huck Finn