© saicle/Shutterstock.com
Teil 1: Den Jenkins-Server richtig vorbereiten

Behavior-driven Development


In vorangegangenen Artikeln im PHP Magazin wurde Jenkins bereits für dynamische sowie statische Softwaretests und zur Erstellung einer Dokumentation vorbereitet. Ein weiterer wichtiger Schritt, um die Continuous Delivery Chain zu vervollständigen, sind Behavior-driven-Development-(BDD-)Tests beziehungsweise Akzeptanztests.

Continuous Integration ist ein Bestandteil der Continuous Delivery Chain, die sich im Allgemeinen in folgende Schritte unterteilt:

  • Continuous Integration

    • Compile Sourcecode

    • Dynamische Softwaretests (Unit Test, TDD) inkl. Lint

    • Statische Softwaretests

    • Erstellung Dokumentation

  • Akzeptanztests (BDD)

  • Kapazitätstests

  • Exploratives Testen

  • Ausrollen

Behavior-driven Development, zu Deutsch verhaltensgetriebene Softwareentwicklung, wird vornehmlich in der agilen Softwareentwicklung eingesetzt. Hier verbessert es sehr stark die Zusammenarbeit zwischen Qualitätsmanagement und Businessanalyse. In regelmäßigen Pro­jekt­reviews, zum Beispiel nach jedem Sprint in Scrum, kann diese Zusammenarbeit immer weiter verbessert bzw. ausgebaut werden. Um sie möglichst effektiv und effizient zu gestalten, werden während der Anforderungsanalyse die Aufgaben und Ergebnisse der Software textuell festgehalten. Dieser Text muss einigen Anforderungen genügen – insbesondere, dass die korrekte Implementierung später automatisch getestet werden kann. Um das zu erreichen, werden die Anforderungen in „Wenn-dann“-Sätzen formuliert, was den Übergang zwischen der natürlichen Sprache und einer Programmiersprache erheblich erleichtert. Auch werden die Testergebnisse in dieser definierten Form ausgegeben und ermöglichen auf diese Weise einen schnellen Überblick darüber, ob der Test bestanden oder nicht bestanden wurde.

Um diese Tests abbilden zu können, werde ich die Konfiguration von Jenkins entsprechend erweitern und weitere Tools wie Docker, Selenium (inkl. Headless-Browser) und Codeception einführen. Codeception dient im Folgenden als Testframework für die Akzeptanztests. Für diese Einführung habe ich eine Standard-WordPress-Installation erstellt, die eine Homeseite mit verschiedenen Posts und Detailseiten beinhaltet. Die Tests werden aufzeigen, was in dieser simplen Installation getestet werden kann.

Docker

Unit Tests, die in den ersten Teststufen von CI verwendet werden, können mit Mocks für nicht zu testende Softwarebestandteile bearbeitet werden. Dieser Ansatz empfiehlt sich bei Akzeptanztests nur noch bedingt; hier sollten sämtliche Softwarebestandteile möglichst aut...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang