Stub

Was ist ein Stub, und wann kommt er in welchen Anwendungsbereichen zum Einsatz?

Ein temporärer Platzhalter

Ein Stub bezeichnet einen temporären Platzhalter bzw. Stellvertreter. Der Begriff stammt aus dem Englischen und bedeutet übersetzt Stummel oder Stumpf. In der Softwareentwicklung ist ein Stub ein Stellvertreter in Form einer Klasse, die als Schnittstelle zu einem Subjekt – einer Datei, einer Ressource, einem Speicherobjekt oder einer Netzwerkverbindung – auftritt. Als Stellvertreter dieses Subjektes kann der Stub die Erzeugung des Subjekts und den entsprechenden Zugriff darauf steuern. Ein Stub kommt u.a. zum Einsatz, wenn

  • benötigte externe Dienste (Datenbanken, Webservices, Server) im Rahmen einer Programmierung nicht verfügbar sind.
  • benötigte Programmteile noch nicht implementiert wurden.
  • bei Funktionstests das Schreiben und anschließende Löschen von Testdaten in Datenbanken vermieden soll.

Auch bei der Entwicklung verteilter Systeme kommen Stubs zur Anwendung. Dabei wird die benötigte Funktionalität des entfernten Softwaresystems so angesprochen, als wäre sie lokal vorhanden. Die gewünschte Funktion wird aber nicht implementiert, sondern per Anfrage über das Stub an das entfernte System delegiert (Remote Procedure Calls). Steht dabei der benötigte Datentyp fest, kommt ein monomorphischer Stub zum Einsatz, andernfalls ein polymorphischer Stub, der mit einer Hashtablle operiert, die auf eine Liste von Stubfunktionen verweist, aber aufgrund des notwendigen Lookups langsamer agiert.

Anwendungsbereiche für Stubs

Generell wird der Begriff Stub in verschiedenen Bereichen auch fernab der Softwareentwicklung genutzt:

  • Beim kooperativen Verfassen von Artikeln, bei dem Mitwirkende bspw. Details recherchieren wollen bzw. müssen.
  • Als Nachweis eines Arbeitgebers über die Beträge, die er Arbeitnehmern bezahlt hat (ein sogenannter Pay Stub).
  • Als Zeitraum im Zinsgeschäft, der von üblichen Intervallen abweicht (eine sogenannte Stub Period).
  • In Computernetzwerken, bei denen ein Netzwerkabschnitt mit nur einem Ausgangsrouter andere Netzwerke verwendet.
  • In der Elektronik als berechneter Längenabschnitt der Übertragungsleitung, der zum Anpassen der Impedanz in Übertragungsleitungen verwendet wird.

Der Unterschied zwischen Stub und Mock-Objekt

Immer wieder gibt es auch Diskussionen, was der Unterschied zwischen einem Stub und einem Mock-Objekt im Bereich Testing ist. Manche vertreten die Meinung, dass die Unterschiede lediglich marginal sind, da der Zweck von beiden darin besteht darin, alle Abhängigkeiten einer Klasse oder Funktion zu testen; andere hingegen verweisen auf unterschiedliche Erwartungen. Mit Mocks geschriebene Tests folgen normalerweise einem Initialisieren -> Setzen von Erwartungen -> Ausführung -> Überprüfung, während ein Stub einer Initialisierung -> Übung -> Überprüfung folgt.

Dienstleister gesucht?
Softwareentwicklung aus Berlin

Hinweise:

Hier finden Sie ergänzende Informationen aus unserer Rubrik Wissen kompakt:

Wissen kompakt: Welche Arten von Mock-Objekten gibt es?

Welche Arten von Mock-Objekten gibt es?

Wissen kompakt: Was ist ein Klickdummy?

Was ist ein Klickdummy?