Überblick und Anwendung von Mock-Funktionen Mock-Funktionen helfen bei Modultests von C-Programmen
Unabhängig davon, ob Sie auf das Credo des ‚Test Driven Development‘ setzen und das Testen an die erste Stelle setzen, gelten automatisierte Modultests doch generell als etwas, was der Softwarequalität dienlich ist.
Weshalb sollte man auf Mock-Funktionen zurückgreifen? Unabhängig davon, ob Sie auf das Credo des ‚Test Driven Development‘ setzen und das Testen an die erste Stelle setzen, gelten automatisierte Modultests doch generell als etwas, was der Softwarequalität dienlich ist. Oftmals gibt es in Softwaresystemen bestimmte Teile, mit denen sich Modultests relativ einfach durchführen lassen. Meist handelt es sich dabei um wiederverwendbare Bibliotheken und andere Module in den Randzonen der Funktionalität eines Systems. Als schwierig kann sich dagegen das Testen der zentralen Funktionen eines Systems erweisen, also von Bestands-Code, bei dessen Entwicklung die Prüfbarkeit nicht berücksichtigt wurde, oder aber von solchem Code, der an das Verhalten der Hardware gebunden ist. Das Gliedern der Funktionalität in kleine, prüfbare Einheiten ist in diesen Situationen nicht immer einfach.
Wann nutze ich eine Mock-Funktion?
Einige dieser Probleme könnten durchaus per Refactoring, also durch eine Neugliederung des Codes gelöst werden. In der Praxis ist dies jedoch nicht immer möglich (man denke nur an Hindernisse wie die Change-Management-Prozesse, den Zeitaufwand für das Refactoring, die Risiken beim Refactoring von Code, für den noch keine Modultests durchgeführt wurden, usw.). Bei nicht objektorientierten Sprachen wie C können Modultests besondere Herausforderungen verursachen, da die Sprache keine Interface-Primitives mitbringt, mit denen sich einfach zwischen realem und testweisem Code wechseln lässt. Hier empfiehlt sich die Verwendung von Mock-Funktionen (Scheinfunktionen). Diese stellen in prozeduralen Sprachen das Gegenstück von Mock-Objekten dar („Endo-Testing: Unit Testing with Mock Objects", Mackinnon, et. al.) und können Hilfestellung beim Prüfen dieser schwierig erreichbaren Abschnitte Ihres Codes leisten.
Melden Sie sich an oder registrieren Sie sich und lesen Sie weiter
Um diesen Artikel vollständig lesen zu können, müssen Sie registriert sein. Die kostenlose Registrierung bietet Ihnen Zugang zu exklusiven Fachinformationen.
Sie haben bereits ein Konto? Hier einloggen