{"id":89955,"date":"2025-10-29T09:11:29","date_gmt":"2025-10-29T08:11:29","guid":{"rendered":"https:\/\/www.skaylink.com\/?p=89955"},"modified":"2025-10-29T09:15:40","modified_gmt":"2025-10-29T08:15:40","slug":"testgetriebene-entwicklung","status":"publish","type":"post","link":"https:\/\/www.skaylink.com\/de\/insights\/blog\/testgetriebene-entwicklung\/","title":{"rendered":"Testgetriebene Entwicklung: Wie ich von der TDD-Skeptikerin zum gr\u00f6\u00dften Fan wurde"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"89955\" class=\"elementor elementor-89955 elementor-89807\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6c324193 header-keyvisual-container e-flex e-con-boxed e-con e-parent\" data-id=\"6c324193\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5df336ff elementor-align-left elementor-widget elementor-widget-breadcrumbs\" data-id=\"5df336ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p id=\"breadcrumbs\"><span><span><a href=\"https:\/\/www.skaylink.com\/de\/\">Home<\/a><\/span><\/span><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-155dcd28 e-con-full e-flex e-con e-child\" data-id=\"155dcd28\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4348176d header-keyvisual-content e-con-full e-flex e-con e-child\" data-id=\"4348176d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-42e2a6cc elementor-widget elementor-widget-image\" data-id=\"42e2a6cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2000\" height=\"1333\" src=\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/10\/MG_9702.jpg\" class=\"attachment-full size-full wp-image-89817\" alt=\"\" srcset=\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/10\/MG_9702.jpg 2000w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/10\/MG_9702-300x200.jpg 300w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/10\/MG_9702-1024x682.jpg 1024w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/10\/MG_9702-768x512.jpg 768w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/10\/MG_9702-1536x1024.jpg 1536w\" sizes=\"(max-width: 2000px) 100vw, 2000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-59ff142 e-con-full e-flex e-con e-child\" data-id=\"59ff142\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d09da43 elementor-widget elementor-widget-text-editor\" data-id=\"4d09da43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Blog<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5101b6a9 elementor-widget elementor-widget-heading\" data-id=\"5101b6a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Testgetriebene Entwicklung: Wie ich von der TDD-Skeptikerin zum gr\u00f6\u00dften Fan wurde<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5770b1b7 elementor-widget elementor-widget-text-editor\" data-id=\"5770b1b7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tEntdecken Sie, wie Test-Driven Development (TDD) Ihre Softwareentwicklung transformieren kann.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-83a123a e-flex e-con-boxed e-con e-parent\" data-id=\"83a123a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-299643a3 e-flex e-con-boxed e-con e-child\" data-id=\"299643a3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5ddca934 e-flex e-con-boxed e-con e-child\" data-id=\"5ddca934\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3831ffe8 elementor-widget elementor-widget-text-editor\" data-id=\"3831ffe8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t29. Oktober 2025\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4f856b00 e-flex e-con-boxed e-con e-child\" data-id=\"4f856b00\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-fc24119 e-flex e-con-boxed e-con e-child\" data-id=\"fc24119\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c3d4241 elementor-author-box--image-valign-middle elementor-widget elementor-widget-author-box\" data-id=\"4c3d4241\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"author-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-author-box\">\n\t\t\t\t\t\t\t<div  class=\"elementor-author-box__avatar\">\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/09\/Screenshot_20240710_101648-219x300.png\" alt=\"Bild von Claudia M\u00fcller\" loading=\"lazy\">\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"elementor-author-box__text\">\n\t\t\t\t\t\t\t\t\t<div >\n\t\t\t\t\t\t<span class=\"elementor-author-box__name\">\n\t\t\t\t\t\t\tClaudia M\u00fcller\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-author-box__bio\">\n\t\t\t\t\t\t<p>Senior AWS Consultant<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3e2c49c2 e-flex e-con-boxed e-con e-child\" data-id=\"3e2c49c2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e853de8 elementor-widget elementor-widget-author-box\" data-id=\"7e853de8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"author-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-author-box\">\n\t\t\t\n\t\t\t<div class=\"elementor-author-box__text\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5a51c109 e-flex e-con-boxed e-con e-parent\" data-id=\"5a51c109\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5fdb7a8b e-con-full e-flex e-con e-child\" data-id=\"5fdb7a8b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-363c7781 elementor-widget elementor-widget-text-editor\" data-id=\"363c7781\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Nur eben schnell etwas Kleines \u00e4ndern &#8230; und pl\u00f6tzlich funktioniert die ganze Anwendung nicht mehr. Was tun Sie dann? Wahrscheinlich stundenlang Logfiles durchforsten oder Workflows m\u00fchsam manuell testen\u00a0\u2013 zumindest machen das die meisten so. Aber das muss nicht sein! In diesem Artikel erz\u00e4hle ich, wie mich testgetriebene Entwicklung (Test-Driven Development, TDD) dazu gebracht hat, die Softwareentwicklung ganz anders anzugehen.<\/p>\n<p>Fr\u00fcher war ich skeptisch gegen\u00fcber TDD. Noch vor der ersten Zeile Code erst mal Tests schreiben, das schien mir unlogisch. Wie soll ich etwas testen, das noch gar nicht existiert? Doch die Arbeit an komplexen Projekten hat meine Meinung komplett ge\u00e4ndert.<\/p>\n<p>Immer, wenn ich in einer unbekannten Codebasis unterwegs war, diente TDD als mein Kompass. Beim Schreiben der Tests war ich gezwungen, intensiv dar\u00fcber nachzudenken, was mein Code tun soll. Statt sofort in die Umsetzung zu gehen, musste ich meine Erwartungen klar ausformulieren \u2013 wobei sich oft Verst\u00e4ndnisl\u00fccken gezeigt haben, die ich sonst nicht bemerkt h\u00e4tte. Am Ende f\u00fchrte dieser Prozess immer zu einem besseren Design.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7f51f5 elementor-widget elementor-widget-heading\" data-id=\"a7f51f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Wo testgetriebene Entwicklung am meisten n\u00fctzt<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c41b8ba elementor-widget elementor-widget-text-editor\" data-id=\"4c41b8ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>TDD ist insbesondere dann eine gro\u00dfe Hilfe, wenn man vorhandenen Code \u00e4ndern muss. Ich muss nicht die ganze Zeit im Blick behalten, wie sich die \u00c4nderungen um ein, zwei oder drei Ecken auf das System auswirken k\u00f6nnten, sondern kann man mich darauf verlassen, dass die Testsuite eventuelle Regressionen schon finden wird. Mit diesem Sicherungsnetz kann ich mich ganz auf das Coden konzentrieren, ohne mir Gedanken um unvorhergesehene Konsequenzen machen zu m\u00fcssen.<\/p>\n<p>Wenn sich die Requirements \u00e4ndern und ich neue Features hinzuf\u00fcgen muss, gew\u00e4hrleisten meine Tests, dass die vorhandene Funktionalit\u00e4t intakt bleibt.<\/p>\n<p>Der Wendepunkt in meiner Beziehung zu TDD kam bei einem Gro\u00dfprojekt mit einer Codebasis, die ich \u00fcberhaupt nicht kannte. Jede \u00c4nderung h\u00e4tte irgendwo anders im System unvorhersehbare Folgen haben k\u00f6nnen.<\/p>\n<p>Beim Schreiben der Tests musste ich genau formulieren, was ich erreichen m\u00f6chte, und diese Klarheit war Gold wert. Statt einfach direkt loszulegen, habe ich mir erst grundlegende Fragen beantwortet: Was soll diese Funktion zur\u00fcckgeben? Wie soll mit Edge-Cases umgegangen werden? Welche Abh\u00e4ngigkeiten gibt es?<\/p>\n<p>Noch vor der ersten Zeile Code einen Test zu schreiben, zwingt dich, wichtige Aspekte genau festzulegen:<\/p>\n<ul>\n<li>Welche Eingaben die Funktion akzeptieren soll<\/li>\n<li>Welche Abh\u00e4ngigkeiten gemockt werden m\u00fcssen (wem das nichts sagt: siehe unten)<\/li>\n<li>Welche Ausgabestruktur erwartet wird<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b70c9cf elementor-widget elementor-widget-heading\" data-id=\"b70c9cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Integrationstests: das richtige Ma\u00df finden<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f215427 elementor-widget elementor-widget-text-editor\" data-id=\"4f215427\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Bei Integrationstests wird untersucht, wie Komponenten miteinander interagieren. Alles auf einmal zu testen, w\u00e4re aber sehr ineffektiv. Es kommt vielmehr darauf an, die richtige Komponentenkombination zu testen.<\/p>\n<p>Das Ziel von Integrationstests ist nicht, die Ausgabe einer Funktion zu testen, sondern festzustellen, ob ein Workflow auch dann noch erfolgreich abl\u00e4uft, wenn eine Komponente ver\u00e4ndert wird.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c60ff48 elementor-widget elementor-widget-heading\" data-id=\"c60ff48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Auf diese Komponente sollte sich der Test fokussieren.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7763a888 elementor-widget elementor-widget-text-editor\" data-id=\"7763a888\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Zuerst definieren Sie den Testumfang. Danach legen Sie fest:<\/p><ul><li>Welche Eingabe f\u00fcr den Workflow ben\u00f6tigt wird<\/li><li>Welche Ausgabe er generieren soll<\/li><li>Wie viele Hilfsfunktionen w\u00e4hrend des Workflows aufgerufen werden<\/li><\/ul><p>Wenn man beispielsweise den Code f\u00fcr den Warenkorb eines Onlineshops ver\u00e4ndert, ist es unerheblich, wie die Artikel in den Warenkorb gelangen oder wie die Zahlung verarbeitet wird. Was z\u00e4hlt, ist die Frage, ob sich die Artikelmenge ver\u00e4ndern l\u00e4sst und ob Artikel gel\u00f6scht werden k\u00f6nnen.<\/p><p>Bei einem Integrationstest geht es nicht prim\u00e4r um Abh\u00e4ngigkeiten oder Drittanbietertools. Deren Ausgaben mockt man bei Bedarf einfach. Dasselbe gilt f\u00fcr Hilfsfunktionen, die nicht zum Testumfang geh\u00f6ren.<\/p><p>TDD ist, wie gesagt, aber auch f\u00fcr bestehende Codebasen hilfreich. Stellen Sie sich vor, Sie haben eine gro\u00dfe Funktion aus Hunderten Zeilen mit unz\u00e4hligen Abh\u00e4ngigkeiten. Bevor Sie direkt anfangen, das neue Feature hinzuzuf\u00fcgen, schreiben Sie einen Integrationstest, um die aktuelle Funktionalit\u00e4t des Codes zu \u00fcberpr\u00fcfen. W\u00e4hrend Sie die Fehlermeldungen in Ihrem Test-Case durchgehen, mocken Sie die Abh\u00e4ngigkeiten im Code. Nach dem Test haben Sie dann eine Vorlage f\u00fcr den tats\u00e4chlichen Test-Case Ihres neuen Features. Alle Abh\u00e4ngigkeiten, die f\u00fcr Ihren Test nicht relevant sind, wurden dann bereits gemockt.<\/p><p>Jetzt k\u00f6nnen Sie ganz einfach Ihren Code schreiben, und die Testergebnisse sagen Ihnen, worauf Sie ein Auge haben m\u00fcssen. Damit das neue Feature stabiler wird, simulieren Sie mit Ihrem Test-Case verschiedene Szenarien und \u00fcberpr\u00fcfen den Code dann auf Schwachstellen.<\/p><h5><strong>Ein Beispiel:<\/strong><\/h5><p>Die Funktion\u00a0<em>make_cake()<\/em>\u00a0ruft drei Unterfunktionen auf:\u00a0<em>get_ingredients()<\/em>,\u00a0<em>make_batter()<\/em>\u00a0und\u00a0<em>bake()<\/em>. Wir wollen die Funktion\u00a0<em>make_batter()<\/em>\u00a0ver\u00e4ndern und pr\u00fcfen,<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f712b0 elementor-widget elementor-widget-code-highlight\" data-id=\"8f712b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># cake_maker.py\r\ndef get_ingredients():\r\n    \"\"\"Get cake ingredients from some external source\"\"\"\r\n    # In real life, this might call an API or database\r\n    return {\"flour\": 200, \"sugar\": 150, \"eggs\": 2, \"butter\": 100}\r\n\r\ndef make_batter(ingredients):\r\n    \"\"\"Mix ingredients to create a batter\"\"\"\r\n    # This is the function we want to test for real\r\n    if not ingredients:\r\n        return None\r\n    return {\r\n        \"mixed\": True,\r\n        \"quality\": sum(ingredients.values()) \/ 10\r\n    }\r\n\r\ndef bake(batter):\r\n    \"\"\"Bake the batter into a cake\"\"\"\r\n    # Another external function we'll mock\r\n    if not batter:\r\n        return {\"success\": False}\r\n    return {\"success\": True, \"taste_score\": batter[\"quality\"] * 2}\r\n\r\ndef make_cake():\r\n    \"\"\"Main workflow function\"\"\"\r\n    ingredients = get_ingredients()\r\n    batter = make_batter(ingredients)\r\n    cake = bake(batter)\r\n    return cake\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f1439be elementor-widget elementor-widget-text-editor\" data-id=\"4f1439be\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Beim Integrationstest mocken wir die Antworten von\u00a0<em>get_ingredients()<\/em>\u00a0und\u00a0<em>bake()<\/em>, weil diese beiden Funktionen nicht getestet werden m\u00fcssen. Wir m\u00fcssen nur testen, wie sich die \u00c4nderungen an\u00a0<em>make_batter()<\/em>\u00a0in\u00a0<em>make_cake()<\/em> auswirken, wenn die beiden anderen Funktionen wie erwartet ablaufen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ea1e88 elementor-widget elementor-widget-code-highlight\" data-id=\"9ea1e88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># test_cake_maker.py\r\nimport pytest\r\nfrom cake_maker import make_cake\r\n\r\ndef test_make_cake_real_batter_only(mocker):\r\n    \"\"\"Test make_cake() but only test the make_batter function for real\"\"\"\r\n    \r\n    # Mock the ingredients function\r\n    mock_ingredients = {\"flour\": 200, \"sugar\": 150, \"eggs\": 2, \"butter\": 100}\r\n    mock_ingr = mocker.patch('cake_maker.get_ingredients', return_value=mock_ingredients)\r\n    \r\n    # Mock the bake function\r\n    mock_cake = {\"success\": True, \"taste_score\": 90}\r\n    mock_bake = mocker.patch('cake_maker.bake', return_value=mock_cake)\r\n    \r\n    # Call the function - this will use our mocked functions but the real make_batter\r\n    result = make_cake()\r\n    \r\n    # Verify result\r\n    assert result == mock_cake\r\n    \r\n    # Verify the bake function was called with the correct batter\r\n    expected_batter = {\r\n        \"mixed\": True,\r\n        \"quality\": sum(mock_ingredients.values()) \/ 10\r\n    }\r\n    actual_batter = mock_bake.call_args[0][0]\r\n    \r\n    assert actual_batter[\"mixed\"] == expected_batter[\"mixed\"]\r\n    assert actual_batter[\"quality\"] == expected_batter[\"quality\"]\r\n    \r\n    # Verify our mocks were called\r\n    mock_ingr.assert_called_once()\r\n    mock_bake.assert_called_once()<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-70d603c0 elementor-widget elementor-widget-heading\" data-id=\"70d603c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Wichtige Punkte<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3caf1d7e elementor-widget elementor-widget-text-editor\" data-id=\"3caf1d7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol>\n<li><strong>Funktionen mocken, die nicht getestet werden<\/strong>: Wir patchen <em>get_ingredients()<\/em> und <em>bake()<\/em>, um <em>make_batter()<\/em> zu isolieren.<\/li>\n<li><strong>Die eigentliche Funktion ausf\u00fchren<\/strong>: <em>make_batter()<\/em> patchen wir nicht, weil es die Funktion ist, die getestet werden soll.<\/li>\n<li><strong>Eingaben und Ausgaben pr\u00fcfen<\/strong>: Wir pr\u00fcfen, ob die gemockten Funktionen die erwarteten Argumente von der getesteten Funktion bekommen.<\/li>\n<li><strong>Testlogik einfach halten<\/strong>: Wir m\u00fcssen sicherstellen, dass sich die Zielfunktion korrekt in den Workflow integriert, darauf liegt der Fokus.<\/li>\n<\/ol>\n<p>Mit dieser Herangehensweise k\u00f6nnen Sie testen, wie sich eine bestimmte Komponente in einem System verh\u00e4lt, ohne sich um externe Abh\u00e4ngigkeiten Gedanken machen zu m\u00fcssen. Das war nat\u00fcrlich ein sehr einfaches Beispiel. In der Praxis hat man es oft mit komplexen Funktionen im Hintergrund zu tun, die vielleicht externe Dienste aufrufen. Die sollte man aus verschiedenen Gr\u00fcnden\u00a0\u2013 Geschwindigkeit, Authentifizierung oder Komplexit\u00e4t\u00a0\u2013 nicht jedes Mal aufrufen.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b470b95 elementor-widget elementor-widget-heading\" data-id=\"b470b95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Mocking: eine Einf\u00fchrung<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a6a2a27 elementor-widget elementor-widget-text-editor\" data-id=\"4a6a2a27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ich habe jetzt schon viel \u00fcber Mocking gesprochen. F\u00fcr diejenigen, die damit nichts anfangen k\u00f6nnen, gebe ich hier einen kurzen \u00dcberblick.<\/p><p><strong>Mocks und Integrationsteste f\u00fcr TDD<\/strong><\/p><p>Mocking ist wichtig, um den zu testenden Code zu isolieren. Kurz gesagt, hindert es Ihren Code daran, vorhandene Unterfunktionen aufzurufen. Stattdessen wird ein Dummy zur\u00fcckgegeben, oft mit einem festen R\u00fcckgabewert. Das ist besonders dann hilfreich, wenn Aufrufe an AWS oder andere externe Dienste enthalten sind, f\u00fcr deren Funktionst\u00fcchtigkeit Sie nat\u00fcrlich nicht zust\u00e4ndig sind. Es h\u00e4tte in solchen F\u00e4llen keinen Sinn, Code zu testen, den Sie gar nicht \u00e4ndern k\u00f6nnen.<\/p><p>Das Plug-in <em>pytest-mock<\/em> erleichtert diesen Prozess mit dem <em>mocker<\/em>-Fixture. Es gibt beispielsweise folgende Mocking-Techniken:<strong>\u00a0<\/strong><\/p><h5><strong>Grundlegendes Mocking<\/strong><\/h5>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f5af8d elementor-widget elementor-widget-code-highlight\" data-id=\"2f5af8d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>def test_user_service(mocker):\r\n    # Mock a database call\r\n    mock_db_query = mocker.patch('services.db.query_user', return_value = {\"id\": 1, \"name\": \"John\"})\r\n    \r\n    from services import get_user_details\r\n    result = get_user_details(1)\r\n    \r\n    assert result[\"name\"] == \"John\"\r\n    mock_db_query.assert_called_once_with(1)<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89f7d37 elementor-widget elementor-widget-text-editor\" data-id=\"89f7d37\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In diesem Beispiel wollen wir die Funktion <em>get_user_details()<\/em> testen. Diese Funktion ruft eine andere Funktion, <em>query_user()<\/em>, auf. Da wir <em>query_user()<\/em> nicht testen wollen, mocken wir sie, damit die Datenbank nicht wirklich abgefragt wird. Durch Patchen der Funktion weisen wir die Testsuite an, die vorhandene Funktion nicht tats\u00e4chlich aufzurufen, sondern stattdessen einen Festwert zur\u00fcckzugeben, wenn die gepatchte Funktion aufgerufen wird.<\/p><h5><strong>Mock-Verhalten mit <em>side_effect<\/em> steuern<\/strong><\/h5><p>Der Parameter <em>side_effect<\/em> bietet mehr dynamische Kontrolle als <em>return_value<\/em>:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc5d7fe elementor-widget elementor-widget-code-highlight\" data-id=\"fc5d7fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>def test_retry_mechanism(mocker):\r\n    \r\n    # Mock that raises an exception on first call, succeeds on second\r\n \r\n    mocker.patch('services.external_api.call', side_effect= [ConnectionError(\"Timeout\"), {\"data\": \"success\"}])\r\n    \r\n    from services import fetch_with_retry\r\n    result = fetch_with_retry(\"endpoint\")\r\n    \r\n    assert result == {\"data\": \"success\"}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7902728 elementor-widget elementor-widget-text-editor\" data-id=\"7902728\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Das ist auch hilfreich, wenn man mehrere Antworten testen muss, die zu komplex f\u00fcr eine einfache Liste sind.<strong>\u00a0<\/strong><\/p><h5><strong>Attribute mocken statt R\u00fcckgabewerte<\/strong><\/h5><p>Manchmal muss man statt einem R\u00fcckgabewert ein Attribut mocken. In diesem Beispiel haben wir die Funktion <em>initialize()<\/em>, die ein Anwendungsobjekt instanziiert, indem sie die Unterfunktion <em>get_config()<\/em> aufruft, die gewisse Attribute f\u00fcr das Objekt liefert. Hier mocken wir einige Attribute in unserer Config.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d035e0d elementor-widget elementor-widget-code-highlight\" data-id=\"d035e0d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>def test_configuration(mocker):\r\n    from unittest.mock import MagicMock\r\n    \r\n    config = MagicMock()\r\n    config.DEBUG = True\r\n    config.API_KEY = \"test_key\"\r\n    \r\n    mocker.patch('app.get_config', return_value=config)\r\n    \r\n    from app import initialize\r\n    app = initialize()\r\n    assert app.debug_mode is True<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42726cc elementor-widget elementor-widget-text-editor\" data-id=\"42726cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h5><strong>Klassenmethoden mocken<\/strong><\/h5><p>Methoden in einer Klasse werden mit <em>patch.object<\/em> gemockt:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb56eb6 elementor-widget elementor-widget-code-highlight\" data-id=\"fb56eb6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>def test_class_method(mocker):\r\n    # If you have a class like:\r\n    # class MyClass:\r\n    #     def my_class_func(self):\r\n    #         return \"real result\"\r\n    \r\n    from my_module import MyClass\r\n    \r\n    # Mock the class method\r\n    mocker.patch.object(MyClass, \"my_class_func\", return_value=\"mocked result\")\r\n    \r\n    # Now any call to MyClass().my_class_func() will return \"mocked result\"\r\n    instance = MyClass()\r\n    assert instance.my_class_func() == \"mocked result\"<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d7289d0 elementor-widget elementor-widget-text-editor\" data-id=\"d7289d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h5><strong>Wo wird gepatcht?<\/strong><\/h5><p>Eine der gr\u00f6\u00dften Schwierigkeiten beim Mocken: die richtige Stelle zum Patchen zu finden. Grunds\u00e4tzlich\u00a0<strong>patcht man die Funktion dort, wo sie importiert wird, nicht, wo sie definiert wird<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a9614ce elementor-widget elementor-widget-code-highlight\" data-id=\"a9614ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>modules\/my_func.py:\r\n    def meine_func():\r\n        # Function definition here\r\n        return \"real result\"\r\n\r\nscripts\/other_func.py:\r\n    from modules.my_func import meine_func\r\n    \r\n    def random_func():\r\n        var = 2\r\n        return meine_func(var)<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f79f32a elementor-widget elementor-widget-text-editor\" data-id=\"f79f32a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Wenn wir\u00a0<em>meine_func<\/em>\u00a0mocken wollen, wenn sie aus\u00a0<em>random_func<\/em> aufgerufen wird, m\u00fcssen wir sie an der Importstelle patchen:<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-974ce4e elementor-widget elementor-widget-code-highlight\" data-id=\"974ce4e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>def test_meine_func(mocker):\r\n    # Patch where the function is imported\r\n    mock_func = mocker.patch(\"scripts.other_func.meine_func\", return_value=\"mocked result\")\r\n    \r\n    from scripts.other_func import random_func\r\n    result = random_func()\r\n    \r\n    assert result == \"mocked result\"\r\n    mock_func.assert_called_once_with(2)<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-773f97d elementor-widget elementor-widget-text-editor\" data-id=\"773f97d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h5><strong>Mock-Aufrufe untersuchen<\/strong><\/h5><p>Um zu pr\u00fcfen, wie Mocks aufgerufen wurden, kann man das Attribut <em>mock_calls<\/em> untersuchen:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-64705c4 elementor-widget elementor-widget-code-highlight\" data-id=\"64705c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>def test_check_calls(mocker):\r\n    mock_service = mocker.patch(\"my_module.service_client.update\")\r\n    \r\n    # Run the function that should call the service\r\n    from my_module import update_user\r\n    update_user(user_id=123, name=\"Alice\")\r\n    \r\n    # Check that the mock was called correctly\r\n    assert mock_service.call_count == 1\r\n    mock_service.assert_called_once_with(user_id=123, name=\"Alice\")\r\n    \r\n    # For more detailed inspection\r\n    print(mock_service.mock_calls)  # Shows all calls with arguments<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-150c4a9 elementor-widget elementor-widget-text-editor\" data-id=\"150c4a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Das Attribut <em>mock_calls<\/em> gibt eine Liste aller Mock-Aufrufe zusammen mit ihren Argumenten aus. Damit k\u00f6nnen Sie sich vergewissern, dass der Code korrekt mit den Abh\u00e4ngigkeiten interagiert.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b412e7 elementor-widget elementor-widget-heading\" data-id=\"4b412e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Fazit: Testgetrieben denken<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-466fdf5 elementor-widget elementor-widget-text-editor\" data-id=\"466fdf5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Testgetriebene Entwicklung ist nicht einfach nur eine Technik. TDD bedeutet, anders zu denken, die Softwareentwicklung anders anzugehen. Wenn man sich zuerst \u00fcber die erwarteten Ergebnisse Gedanken macht, gewinnt man Klarheit dar\u00fcber, was man programmiert und warum.<\/p>\n<p>Der Zeitaufwand am Anfang, wenn man die Tests schreibt, zahlt sich sp\u00e4ter aus: Das Debugging geht schneller, das Refactoring wird einfacher, und man versteht das ganze System besser. In Kombination mit strategischem Mocking und gut abgesteckten Integrationstests f\u00fchrt TDD dazu, dass die Entwicklung zuverl\u00e4ssiger wird \u2013 und oft auch mehr Spa\u00df macht!<\/p>\n<p>Wenn Sie also das n\u00e4chste Mal einfach drauflos coden wollen, halten Sie kurz inne und fragen Sie sich: \u201eWelcher Test w\u00fcrde beweisen, dass meine L\u00f6sung funktioniert?\u201c Ihr k\u00fcnftiges Ich wird Ihnen danken, wenn die Testsuite einen Fehler findet, lange bevor die Software in Produktion geht.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-389befc0 e-flex e-con-boxed e-con e-parent\" data-id=\"389befc0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3f127056 elementor-hidden-desktop elementor-widget elementor-widget-heading\" data-id=\"3f127056\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Case Stories<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40aa3174 elementor-arrows-position-inside elementor-widget elementor-widget-loop-carousel\" data-id=\"40aa3174\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;template_id&quot;:70874,&quot;slides_to_show&quot;:&quot;1&quot;,&quot;speed&quot;:800,&quot;_skin&quot;:&quot;post&quot;,&quot;slides_to_show_tablet&quot;:&quot;2&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;.elementor-loop-container&quot;,&quot;arrows&quot;:&quot;yes&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-carousel.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"swiper elementor-loop-container elementor-grid\" role=\"list\" dir=\"ltr\">\n\t\t\t\t<div class=\"swiper-wrapper\" aria-live=\"polite\">\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-92310 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-92310 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/04\/Blog-April-MS-News.jpg\");}<\/style><style id=\"loop-70874\">.elementor-70874 .elementor-element.elementor-element-55762ecb{--display:flex;--min-height:550px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overflow:hidden;--margin-top:0%;--margin-bottom:0%;--margin-left:0%;--margin-right:0%;--padding-top:0rem;--padding-bottom:0rem;--padding-left:0rem;--padding-right:0rem;}.elementor-70874 .elementor-element.elementor-element-534ce23f{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-70874 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .elementor-70874 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-size:cover;}.elementor-70874 .elementor-element.elementor-element-373b26ac{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-70874 .elementor-element.elementor-element-373b26ac.e-con{--align-self:center;}.elementor-70874 .elementor-element.elementor-element-0fe0875{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-70874 .elementor-element.elementor-element-0fe0875.e-con{--align-self:center;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-70874 .elementor-element.elementor-element-66b75a3{font-family:var( --e-global-typography-019d6db-font-family ), Sans-serif;font-size:var( --e-global-typography-019d6db-font-size );font-weight:var( --e-global-typography-019d6db-font-weight );text-decoration:var( --e-global-typography-019d6db-text-decoration );line-height:var( --e-global-typography-019d6db-line-height );letter-spacing:var( --e-global-typography-019d6db-letter-spacing );word-spacing:var( --e-global-typography-019d6db-word-spacing );color:var( --e-global-color-c37e4b1 );}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-70874 .elementor-element.elementor-element-b58affb .elementor-heading-title{font-family:var( --e-global-typography-849cb99-font-family ), Sans-serif;font-size:var( --e-global-typography-849cb99-font-size );font-weight:var( --e-global-typography-849cb99-font-weight );text-decoration:var( --e-global-typography-849cb99-text-decoration );line-height:var( --e-global-typography-849cb99-line-height );letter-spacing:var( --e-global-typography-849cb99-letter-spacing );word-spacing:var( --e-global-typography-849cb99-word-spacing );color:var( --e-global-color-text );}.elementor-70874 .elementor-element.elementor-element-b58affb > .elementor-widget-container{margin:0em 0em 3em 0em;}.elementor-70874 .elementor-element.elementor-element-29d94ff{font-family:var( --e-global-typography-9ae4c6f-font-family ), Sans-serif;font-size:var( --e-global-typography-9ae4c6f-font-size );font-weight:var( --e-global-typography-9ae4c6f-font-weight );text-decoration:var( --e-global-typography-9ae4c6f-text-decoration );line-height:var( --e-global-typography-9ae4c6f-line-height );letter-spacing:var( --e-global-typography-9ae4c6f-letter-spacing );word-spacing:var( --e-global-typography-9ae4c6f-word-spacing );}.elementor-70874 .elementor-element.elementor-element-29d94ff > .elementor-widget-container{margin:0em 0em 2em 0em;}.elementor-widget-button .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );background-color:var( --e-global-color-accent );}.elementor-70874 .elementor-element.elementor-element-79b359c .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-70874 .elementor-element.elementor-element-79b359c .elementor-button .elementor-button-content-wrapper{gap:10px;}.elementor-70874 .elementor-element.elementor-element-79b359c .elementor-button{fill:var( --e-global-color-599c03e );color:var( --e-global-color-599c03e );background-color:var( --e-global-color-primary );border-radius:8px 8px 8px 8px;}.elementor-70874 .elementor-element.elementor-element-79b359c .elementor-button:hover, .elementor-70874 .elementor-element.elementor-element-79b359c .elementor-button:focus{background-color:var( --e-global-color-75b740e );}@media(min-width:577px){.elementor-70874 .elementor-element.elementor-element-534ce23f{--width:50%;}.elementor-70874 .elementor-element.elementor-element-373b26ac{--width:8.33333%;}.elementor-70874 .elementor-element.elementor-element-0fe0875{--width:33.333333%;}}@media(max-width:992px) and (min-width:577px){.elementor-70874 .elementor-element.elementor-element-534ce23f{--width:100%;}.elementor-70874 .elementor-element.elementor-element-373b26ac{--width:100%;}.elementor-70874 .elementor-element.elementor-element-0fe0875{--width:100%;}}@media(max-width:992px){.elementor-70874 .elementor-element.elementor-element-55762ecb{--min-height:0px;--flex-wrap:wrap;}.elementor-70874 .elementor-element.elementor-element-534ce23f{--min-height:280px;}.elementor-70874 .elementor-element.elementor-element-0fe0875{--padding-top:30px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-70874 .elementor-element.elementor-element-66b75a3{font-size:var( --e-global-typography-019d6db-font-size );line-height:var( --e-global-typography-019d6db-line-height );letter-spacing:var( --e-global-typography-019d6db-letter-spacing );word-spacing:var( --e-global-typography-019d6db-word-spacing );}.elementor-70874 .elementor-element.elementor-element-b58affb .elementor-heading-title{font-size:var( --e-global-typography-849cb99-font-size );line-height:var( --e-global-typography-849cb99-line-height );letter-spacing:var( --e-global-typography-849cb99-letter-spacing );word-spacing:var( --e-global-typography-849cb99-word-spacing );}.elementor-70874 .elementor-element.elementor-element-29d94ff{font-size:var( --e-global-typography-9ae4c6f-font-size );line-height:var( --e-global-typography-9ae4c6f-line-height );letter-spacing:var( --e-global-typography-9ae4c6f-letter-spacing );word-spacing:var( --e-global-typography-9ae4c6f-word-spacing );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}}@media(max-width:576px){.elementor-70874 .elementor-element.elementor-element-534ce23f{--min-height:210px;}.elementor-70874 .elementor-element.elementor-element-373b26ac{--padding-top:12%;--padding-bottom:12%;--padding-left:7%;--padding-right:7%;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-70874 .elementor-element.elementor-element-66b75a3{font-size:var( --e-global-typography-019d6db-font-size );line-height:var( --e-global-typography-019d6db-line-height );letter-spacing:var( --e-global-typography-019d6db-letter-spacing );word-spacing:var( --e-global-typography-019d6db-word-spacing );}.elementor-70874 .elementor-element.elementor-element-b58affb .elementor-heading-title{font-size:var( --e-global-typography-849cb99-font-size );line-height:var( --e-global-typography-849cb99-line-height );letter-spacing:var( --e-global-typography-849cb99-letter-spacing );word-spacing:var( --e-global-typography-849cb99-word-spacing );}.elementor-70874 .elementor-element.elementor-element-29d94ff{font-size:var( --e-global-typography-9ae4c6f-font-size );line-height:var( --e-global-typography-9ae4c6f-line-height );letter-spacing:var( --e-global-typography-9ae4c6f-letter-spacing );word-spacing:var( --e-global-typography-9ae4c6f-word-spacing );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-92310 post-92310 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Data Security mit mehr Kontext statt reiner Regelwerke<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tMicrosoft Purview Updates 2026: DSI, DSPM, DLP und IRM mit mehr Kontext, Automatisierung und KI-Governance. So erkennen und steuern Sie Datenrisiken proaktiv.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/data-security-mit-mehr-kontext-statt-reiner-regelwerke\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-92040 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-92040 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/Places-Blog.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-92040 post-92040 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Microsoft Places ab April 2026: Neues Lizenzmodell. Weniger Kosten.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tNeue Funktionen f\u00fcr alle M365-Lizenzen und Umstieg auf Shared Space License. So optimieren Sie Desk Booking und hybride Zusammenarbeit.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/microsoft-places-april-2026\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-92287 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-92287 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/MG_5973-johanna-lohr-fotografie-skaylink.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-92287 post-92287 post type-post status-publish format-standard has-post-thumbnail hentry category-case-studies tag-aws\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tCase Studies\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Hotelsoftware-Anbieter ibelsa erreicht bessere Skalierbarkeit und erh\u00f6ht die Sicherheit mit Skaylink und AWS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tMit AWS-Partner Skaylink konnte das Hotelverwaltungssystem ibelsa bessere Skalierbarkeit erreichen, die Kosten senken und die Sicherheit verbessern.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/case-studies\/ibelsa\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-92033 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-92033 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/Open-Claw-Blog.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-92033 post-92033 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">OpenClaw im Microsoft\u2011\u00d6kosystem: Wie KI\u2011Agenten die Sicherheitsgrenze verschieben<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tSelbst gehostete KI-Agenten mit persistenten Credentials \u2013 welche Risiken entstehen und wie Sie Shadow AI erkennen\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/openclaw-im-microsoft-oekosystem\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-92014 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-92014 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/E7-Blog.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-92014 post-92014 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">E7 markiert den \u00dcbergang zum \u201eAI Operating Model\u201c<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tNeue KI-Suite mit Copilot, Agent 365 und Work IQ. Erfahren Sie, wie E7 das AI Operating Model pr\u00e4gt und f\u00fcr wen sich der Umstieg lohnt.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/e7-markiert-den-uebergang-zum-ai-operating-model\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-91638 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-91638 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/02\/STABILO_Produktion_BOSS-ORIGINAL-1.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-91638 post-91638 post type-post status-publish format-standard has-post-thumbnail hentry category-case-studies tag-microsoft tag-security\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tCase Studies\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Professionelle R\u00fcckendeckung f\u00fcr die eigene IT-Sicherheit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tSTABILO setzt auf das Cyber Security Center von Skaylink \u2013 eine Managed-SOC-L\u00f6sung f\u00fcr den zuverl\u00e4ssigen 24\/7-Schutz der Cloud-Infrastruktur. \t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/case-studies\/stabilo\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-91915 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-91915 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/zertifikate-blog.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-91915 post-91915 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Schluss mit dem Zertifikats-Chaos<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tWarum eine reine Windows-PKI in hybriden IT-Umgebungen nicht ausreicht und wie automatisiertes Zertifikatsmanagement mit ACME Sicherheit und Betrieb verbessert.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/schluss-mit-dem-zertifikats-chaos\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-83744 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-83744 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2025\/01\/aws-summit.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-83744 post-83744 post type-post status-publish format-standard has-post-thumbnail hentry category-events tag-aws tag-firmen-news\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tEvents\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Skaylink beim AWS Summit 2026<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tTreffen Sie uns am 8. Mai in Frankfurt. Freuen Sie sich auf einen Tag voller Inspiration, Innovation und Networking.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/events\/aws-summit\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-91828 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-91828 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/ms-news-blos-maerz-26.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-91828 post-91828 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Smarter Arbeiten &#038; Dokumente sicherer teilen: Die Updates im Fr\u00fchjahr 2026<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tNeue Agents in Forms und PowerPoint, Reports f\u00fcr Admins und sichereres File Sharing. Alle wichtigen M365 Neuerungen im \u00dcberblick.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/smarter-arbeiten-dokumente-sicherer-teilen-die-updates-im-fruehjahr-2026\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-91703 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-91703 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/02\/StWN-Konzern.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-91703 post-91703 post type-post status-publish format-standard has-post-thumbnail hentry category-case-studies tag-microsoft tag-teams\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tCase Studies\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Nutzerzentrierung beim StWN-Konzern: So geht Modern Work!<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tSkaylink begleitete die St\u00e4dtischen Werke N\u00fcrnberg (StWN) auf dem Weg zu einer hochmodernen, bestens abgesicherten Arbeitsumgebung. \t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/case-studies\/nutzerzentrierung-stwn-konzern\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-91736 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-91736 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/03\/Blog-Intune-Zertifikate.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-91736 post-91736 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Windows Secure Boot \u2013 Zertifikatsablauf im Juni 2026<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tErfahren Sie, welche Systeme betroffen sind, welche Risiken drohen und wie IT-Admins den CA-Rollout sicher planen.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/windows-secure-boot-zertifikatsablauf-im-juni-2026\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-70874\">.e-loop-item-91673 .elementor-element.elementor-element-534ce23f:not(.elementor-motion-effects-element-type-background), .e-loop-item-91673 .elementor-element.elementor-element-534ce23f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2026\/02\/Copilot-Security-Blog.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"70874\" class=\"elementor elementor-70874 elementor-57266 elementor-57266 swiper-slide e-loop-item e-loop-item-91673 post-91673 post type-post status-publish format-standard has-post-thumbnail hentry category-blog\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-55762ecb e-flex e-con-boxed e-con e-parent\" data-id=\"55762ecb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-534ce23f e-con-full e-flex e-con e-child\" data-id=\"534ce23f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-373b26ac e-con-full elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"373b26ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0fe0875 e-con-full e-flex e-con e-child\" data-id=\"0fe0875\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66b75a3 elementor-widget elementor-widget-text-editor\" data-id=\"66b75a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tBlog\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b58affb elementor-widget elementor-widget-heading\" data-id=\"b58affb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Microsoft Security Copilot: Wie Agents, Automatisierung und ein neues Kostenmodell Ihr Security-Team wirklich entlasten<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29d94ff elementor-widget elementor-widget-text-editor\" data-id=\"29d94ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tVon Alert-Triage bis Kostenoptimierung: Welche Rolle der Security Copilot in Defender, Sentinel und Purview spielt.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b359c elementor-widget elementor-widget-button\" data-id=\"79b359c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.skaylink.com\/de\/insights\/blog\/microsoft-security-copilot-wie-agents-automatisierung-und-ein-neues-kostenmodell-ihr-security-team-wirklich-entlasten\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Weiterlesen<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\" aria-label=\"Voriger\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow-circle-left\"><\/i>\t\t\t<\/div>\n\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\" aria-label=\"N\u00e4chster\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"skaylinkicon- skaylink-icon-arrow-circle-right\"><\/i>\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Entdecken Sie, wie Test-Driven Development (TDD) Ihre Softwareentwicklung transformieren kann.<\/p>\n","protected":false},"author":23,"featured_media":89817,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[26],"tags":[71],"class_list":["post-89955","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-aws"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts\/89955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/comments?post=89955"}],"version-history":[{"count":6,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts\/89955\/revisions"}],"predecessor-version":[{"id":89962,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts\/89955\/revisions\/89962"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/media\/89817"}],"wp:attachment":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/media?parent=89955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/categories?post=89955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/tags?post=89955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}