Probearbeiten ohne Vertrag

Probearbeiten ohne Vertrag

Gegen Ende des zweiten Teils der Beiträge werden wir einige Werkzeuge, die speziell für Vertragstests entwickelt wurden, praktisch einholen. Die Richtlinie sollte in Ihrem Arbeitsvertrag oder im Unternehmenshandbuch festgelegt werden. Ihr Arbeitgeber sollte die Tests auf die Mitarbeiter beschränken, die auf das Risiko getestet werden müssen. Wir möchten natürlich herausfinden, welche Vorgänge einer API nicht verwendet werden, damit wir unnötigen Code wegwerfen können, der unsere Codebasis überdeckt. Beim Ausführen von E2E-Tests oder sogar einfachen Mocktests können Sie jedoch nicht ohne weiteres herausfinden, welche Vorgänge einer API nicht verwendet werden. Um unsere Integrationstests durchzuführen, wird der Consumer in der Regel durch die Bereitstellung bestimmter Eingaben in der Benutzeroberfläche ausgelöst. Der Consumer ruft dann den Anbieter auf, und der Test bestätigt (wiederum in der Benutzeroberfläche), wenn die Ergebnisse den im Vertrag definierten Erwartungen entsprechen. Indem Sie die meisten Automatisierungstests als schnelle Einheiten- oder lokale Integrationstests ausführen, können Sie die Buildgeschwindigkeiten auf ein Minimum beschränken und verhindern, dass sich Warteschlangen in Teams aufbauen. Der Consumerbuild läuft bis zur Bereitstellung in der Testumgebung gut. Da der Anbieterbuild C2 nicht überprüft hat, schlägt die Kompatibilitätsprüfung zu diesem Zeitpunkt fehl. Es gibt keinen Anbieter, der mit test markiert ist, der C2 überprüft hat.

Oder anders ausgedrückt: Der aktuelle Anbieter in der Testumgebung hat C2 nicht überprüft. Anwendungsfall 1 – Der interne Verbraucher ohne einen entwickelten Dienst Ich bin ein Tester auf TeamA (der Verbraucher). TeamB (der Anbieter) entwickelt einen neuen Dienst, mit dem die Komponente, die ich getestet habe, integriert werden muss. Ich möchte einige Tests schreiben, um die Integration zwischen den beiden zu gewährleisten. In Zusammenarbeit mit den Entwicklern von TeamA und TeamB werde ich einige Vertragstests für den neuen Dienst an verspotteten Endpunkten schreiben, um sicherzustellen, dass meine Komponente, wenn sie die Endpunkte ankündigt, wie erwartet integriert wird. Anwendungsfall 2 – Der externe Verbraucher mit einem entwickelten Service Ich bin ein Web-Entwickler, der die Marvel Comics APIs in meinem Comic-Buchhandlung Shopfront verbraucht. Ich möchte sicherstellen, dass Änderungen an den Marvel-APIs die von mir beaufstandeten Dienste nicht unterbrechen, da dies mehrere Teile meiner Zielseite brechen würde. Ich werde meinem Tester die API-Spezifikation zur Verfügung stellen, damit wir die API verspotten können. Die daraus resultierenden Vertragstests helfen uns zu überprüfen, ob alle Vereinbarungen, die wir von Marvel als unserem Anbieter erwarten, nach Änderungen an der Service-URL oder einzelnen Endpunkten noch bestehen.

Anwendungsfall 3 – Der interne Verbraucher mit Endpunkten in der Produktion Wir sind ein Scrum-Team. Wir haben eine neue Komponente gebaut, um eine bereits in der Produktion zu ersetzen. Die APIs, die die Komponente verbraucht, befinden sich ebenfalls in der Produktion, können jedoch von niemand anderem als internen Entwicklungsteams verwendet werden. Wir möchten keine ganze Regressionsumgebung für diese eine Änderung erstellen, da wir die Möglichkeit haben, in der Produktion zu testen. Wir möchten jedoch eine gewisse Sicherheit, dass die bereitgestellte Komponente auf alle Endpunkte zugreifen kann, die sie ankündigt, bevor wir live bereitstellen. Wir werden die vorhandenen Endpunkte verspotten und durch Vertragstests sicherstellen, dass unsere neue Komponente sie verbrauchen kann. Anwendungsfall 4 – Welches technische Design entscheidet wir sind ein Scrum-Team zu machen. Wir beabsichtigen, eine neue API für einen cloudbasierten Container zu erstellen und bereitzustellen.

Es gibt jedoch einige Diskussionen innerhalb des Teams, ob ein REST- oder ein SOAP-Dienst verwendet werden soll.