Hallo zusammen,
ich muss mal etwas fragen zum Thema Unittest.
Wuste jetzt nicht wohin damit, daher hab ich das mal hier eingeparkt.
Der Unittest dient ja dazu, seine Software zu testen und zu beweisen dass die Funktionalität gegeben ist.
Eigentlich sollte dann daran nichts mehr geändert werden...
Es gibt aber Situationen, in denen ich eine Manipulation der eigentlich "fertigen" Unit machen muss
um die Funktionalität zu beweisen.
Beispiel:
Die Unit Timer.c ist fertig und soll getestet werden.
Es soll jede Millisekunde einen Interrupt ausgelöst werden.
Von außen ist dieser Interrupt bzw. die Funktion eigentlich nicht sichtbar.
Also habe ich, lediglich für den Unittest, in meinem Timerinterrupt ein Portbit getoggelt an dem ich dann mit einem
Oszilloskop beweisen kann, dass dieses Bit sich 1ms auf Low und dann 1ms auf High befindet,
Zudem habe ich einen Freqeunzzähler angeschlossen und messe dann 500 Hz.
So habe ich die korrekte Timerfunktionalität bestätigt.
Wenn ich nun vergesse den Testcode wieder rauszunehmen, dann toggelt dieser Pin weiter im Millisekundentakt,
wo später etwas anderes dran hängt.
So doof kann man doch nicht sein..... doch kann man...zumindest ich....
man wird unterbrochen, macht eben was Anderes und.....
Ist jetzt nur ein Beispiel gewesen, hier noch eines:
Um zu prüfen ob meine CPU wirklich auf 100 MHz taktet, habe ich den Clockout aktiviert,
der normalerweise nicht benötigt wird. An diesem Pin liegt beim Endcode ein Fussschalter.
ich muss aber "mehrere" Register umschalten, damit mein Clocksignal an diesem Pin ueberhaupt messbar wird.
Auch hier habe ich wieder die Möglichkeit beim restaurieren des originalen Codes Fehler einzubauen.
Wie macht man das eigentlich am sinnvollsten ?
Ein komplett neues Projekt anlegen und alle Tests darin manipulieren und testen ?
Habe ich dann eigentlich den "richtigen" Code getestet könnte man sich nun fragen....
Man könnte es evtl. auch über ein Flag mittels "conditional compiling" steuern, aber ich finde das teils recht unübersichtlich.
Siro
Lesezeichen