banner

Nachricht

Nov 05, 2023

Bewerbungstest

InfoQ Homepage News Anwendung testgetriebener Entwicklung in der Cloud

Dieser Artikel auf Japanisch

25. Mai 2023 4 Minuten Lesezeit

von

Ben Linders

In der Cloud kann die Anwendungsentwicklung mit der dazugehörigen Infrastruktur durchgängig abgewickelt werden. Dadurch ist es möglich, testgetriebene Entwicklung (TDD) und Refactoring auf die gesamte Anwendung anzuwenden, was die Wartungskosten senken kann.

Michal Svoboda wird auf der XP 2023 einen Vortrag über die testgetriebene Entwicklung von Cloud-Apps halten. Diese Konferenz findet vom 13. bis 16. Juni in Amsterdam, Niederlande, statt.

Bei Cloud-Apps können Anwendungen zusammen mit der dazugehörigen Infrastruktur als ein kohärentes Codestück entwickelt und bereitgestellt werden. Laut Svoboda ermöglicht uns die Entfernung der „Infrastruktur“ als separates Element die Anwendung agiler Engineering-Techniken wie TDD und Refactoring auf den Umfang der gesamten App, einschließlich ihrer Cloud-Ressourcen.

Die Latenz und die Asynchronität der Cloud können ein Problem sein. Das Warten auf die Bereitstellung von Ressourcen oder auf den Ablauf von Zeitüberschreitungen behindert den schnellen TDD-Zyklus. Svoboda schlägt vor, auf ein inkrementelles Update-Modell umzusteigen, d. h. keine Ressourcen am Ende jedes Tests zu zerstören und eine saubere Bereitstellung zu gewährleisten, wenn nur Folgendes integriert wird:

Techniken zur Testbeschleunigung stammen aus unserer TDD-Trickkiste. Ein paar Beispiele wären der taktische Einsatz zustandsbasierter Tests oder das Testen nur geänderter Teile des Codes. Es lohnt sich, sich daran zu erinnern, dass Hürden beim Testen nützliches Feedback für den gesamten Entwicklungszyklus liefern. Dieses Feedback veranlasste uns, unsere Architektur- und Verfahrensentscheidungen sorgfältig abzuwägen.

Laut Svoboda senkt TDD die App-Wartungskosten, die bei weitem den größten Teil der Software-Gesamtbetriebskosten ausmachen. Mithilfe von TDD ist es auch Jahre später einfach, überall Funktionen hinzuzufügen oder umzugestalten, sei es Ihr eigener Code oder die Nutzung der Cloud-Ressourcen.

InfoQ interviewte Michal Svoboda zur Cloud-Entwicklung mit TTD.

InfoQ: Wie hat sich die Cloud auf die Art und Weise ausgewirkt, wie wir Infrastruktur bereitstellen?

Michal Svoboda : Durch APIs können Cloud-Ressourcen vollautomatisch erstellt und zerstört werden. (Genau genommen ist das nicht nur die Cloud. Cloud-Anbieter machen diese Funktion einfach extrem zugänglich.) Wir müssen nicht über „Infrastruktur“ nachdenken, wie etwa Server und Netzwerke, die unabhängig von Anwendungen existieren. „Infrastruktur“ erfordert keinen besonderen Ansatz mehr.

Zusätzlich zur klassischen Infrastruktur stellt die Cloud einzelne Spezialdienste wie Speicher, Funktionen oder Streams bereit. Viele Cloud-Apps laufen nicht nur in der Cloud, sie bestehen aus der Cloud.

InfoQ: Wie führen Sie testgetriebene Entwicklung für Cloud-Anwendungen durch?

Svoboda : TDD von Cloud-Apps ähnelt dem TDD anderer Apps. Anstatt Konstruktoren und Funktionen aufzurufen, um Objekte im Speicher zu erstellen, rufen wir APIs auf, um Ressourcen in der Cloud zu erstellen. Ein „Anordnen, Handeln, Durchsetzen“-Test für eine Stream-Ressource wird im folgenden Pseudocode veranschaulicht:

[Testen Sie, ob der Stream geschrieben und gelesen werden kann]

Dies ist ein sehr einfacher Funktionstest. Zustandsbasierte Tests können mithilfe von API-Aufrufen durchgeführt werden, die die Konfiguration von Ressourcen „abfragen“. Komplexere Ressourcenkonfigurationen können nach dem gleichen Prinzip getestet werden.

Gemäß TDD lassen wir den Test zuerst schreiben, scheitern und folgen mit der Implementierung. Wichtig ist, dass wir auf Feedback hören und etwaige Schwierigkeiten beim Testen unsere Entwicklung vorantreiben lassen. Unsere Technologie-, Architektur- und Verfahrensauswahl basiert auf der Einfachheit des Testens.

InfoQ: Vor welchen Herausforderungen standen Sie und wie sind Sie damit umgegangen?

Svoboda : Die verfügbaren Werkzeuge waren ein Problem. Damit dieser TDD-on-Cloud-Ansatz gut funktioniert, muss der Ressourcenbereitstellungscode First-Class-Citizen in der Programmiersprache der Wahl sein. Zeitgenössische Tools stellen Befehlszeilenschnittstellen über ein Modell in ihren eigenen Sprachen in einer „Cloud-Makefile“-Manier bereit. Da diese Tools dem Paradigma der „separaten Infrastruktur“ folgen, kann die Kommunikation mit ihnen umständlich werden. Dies war auch zu Beginn unserer Entwicklung ein großartiges Feedback und hat unsere Werkzeug- und Anbieterentscheidungen beeinflusst.

InfoQ: Welche Vorteile hat Ihnen TDD für Cloud-Apps neben geringeren Kosten gebracht?

Svoboda : Die Tests ermöglichen die Berücksichtigung von Randfällen. Die Anwendungen laufen stabil und wir wissen, was uns erwartet. Wir haben mit unserem Cloud-Anbieter sogar ein paar Ecken und Kanten geklärt!

Da unser Ansatz das Einrichten und Testen von Ressourcen sehr einfach machte, profitierten wir auch in der Prototyping-Phase. Die Cloud ist eine komplexe Umgebung und wir scheiterten öfter, als ich zählen kann, aufgrund von Programmierfehlern und falschen Annahmen zur Funktionalität. Mit diesem Ansatz sind wir schnell gescheitert.

Viele wichtige Fragen wurden schon früh in der Entwicklung pragmatisch beantwortet. Welche Technologien werden wir nutzen? Wie werden wir unsere Anwendung bereitstellen und betreiben? Wie werden wir den Langzeitstatus und sensible Daten verwalten?

InfoQ: Was raten Sie Leuten, die TDD für ihre Cloud-Anwendung ausprobieren möchten?

Svoboda : Beginnen Sie langsam mit einem kleineren Projekt. Es gibt ein paar Dinge, die ein Bootstrapping erfordern, bevor der erste Test bestanden werden kann. Gewöhnen Sie sich an die Mechanik. Stellen Sie sicher, dass Sie die Umgestaltung aggressiv durchführen. Lernen Sie aus dem Feedback. Viel Glück!

Präsentiert von: Michal Svec – Lead Solutions Engineer bei Apollo GraphQL

Sichern Sie sich Ihren Platz

Das Schreiben für InfoQ hat viele Türen geöffnet und die Karrierechancen erhöht Für mich. Ich konnte mich intensiv mit Experten und Vordenkern austauschen, um mehr über die von mir behandelten Themen zu erfahren. Und ich kann meine Erkenntnisse auch an die breitere Tech-Community weitergeben und verstehen, wie die Technologien in der realen Welt eingesetzt werden.

Ich habe das Mitwirkendenprogramm von InfoQ Anfang dieses Jahres entdeckt und es seitdem genossen! Das Peer-to-Peer-Review-System von InfoQ bietet mir nicht nur eine Plattform, auf der ich meine Erkenntnisse mit einer globalen Community von Softwareentwicklern teilen kann, sondern hat auch mein Schreiben erheblich verbessert . Wenn Sie nach einem Ort suchen, an dem Sie Ihr Software-Know-how teilen können, beginnen Sie mit der Mitarbeit bei InfoQ.

Ich habe angefangen, Nachrichten für die InfoQ .NET-Warteschlange zu schreiben, um auf dem neuesten Stand der Technik zu bleiben, aber ich habe so viel mehr daraus gemacht. Ich habe sachkundige Leute kennengelernt, weltweite Sichtbarkeit erlangt und meine Schreibfähigkeiten verbessert.

Redakteur für InfoQ zu werden war eine der besten Entscheidungen meiner Karriere . Es hat mich herausgefordert und mir in vielerlei Hinsicht geholfen, zu wachsen . Wir würden uns über mehr Leute freuentrete unserem Team bei.

InfoQ sucht einen Chefredakteur in Vollzeit dem internationalen, stets remote arbeitenden Team von C4Media beizutreten. Entdecken Sie mit uns die innovativsten Technologien unserer Zeit, arbeiten Sie mit den besten Software-Experten der Welt zusammen und helfen Sie mehr als 1,6 Millionen Entwicklerteams bei der Einführung neuer Technologien und Praktiken, die die Grenzen dessen erweitern, was Software und Teams leisten können!

Jeden Dienstag wird eine Zusammenfassung der Inhalte der letzten Woche auf InfoQ verschickt. Treten Sie einer Community von über 250.000 erfahrenen Entwicklern bei. Sehen Sie sich ein Beispiel an

Wir schützen Ihre Privatsphäre.

Sie müssen ein InfoQ-Konto registrieren oder sich anmelden oder anmelden, um Kommentare zu posten. Aber hinter der Registrierung steckt noch viel mehr.

Holen Sie das Beste aus dem InfoQ-Erlebnis heraus.

Zulässiges HTML: a,b,br,blockquote,i,li,pre,u,ul,p

Zulässiges HTML: a,b,br,blockquote,i,li,pre,u,ul,p

Zulässiges HTML: a,b,br,blockquote,i,li,pre,u,ul,p

Treten Sie einer Expertengemeinschaft bei.InfoQ: Wie hat sich die Cloud auf die Art und Weise ausgewirkt, wie wir Infrastruktur bereitstellen?Michal SvobodaInfoQ: Wie führen Sie testgetriebene Entwicklung für Cloud-Anwendungen durch?SvobodaInfoQ: Vor welchen Herausforderungen standen Sie und wie sind Sie damit umgegangen?SvobodaInfoQ: Welche Vorteile hat Ihnen TDD für Cloud-Apps neben geringeren Kosten gebracht?SvobodaInfoQ: Was raten Sie Leuten, die TDD für ihre Cloud-Anwendung ausprobieren möchten?SvobodaBen Lindershat viele Türen geöffnet und die Karrierechancen erhöhtVivian HuDas Peer-to-Peer-Review-System von InfoQ hat mein Schreiben erheblich verbessertOghenewede Emenierlangte weltweite Sichtbarkeit und verbesserte meine SchreibfähigkeitenEdin Kapićbeste Entscheidungen meiner Karrierehat mir in vielerlei Hinsicht geholfen, zu wachsentrete unserem Team beiThomas Bettshauptamtlicher ChefredakteurDas InfoQHolen Sie das Beste aus dem InfoQ-Erlebnis heraus.
AKTIE