[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"btz8hO-MXSFLpybqvfjYVBre4OvrEJO1wFySe3Zmv-s":3,"9_t0YFtO844PW3-iCfPxRTbw8yv0-2zzu2bChZFenjo":39,"YSjrvkwuJc0VRQk9Cjx14macKtemGqcjqFOdb-sEYIo":75,"y-HuaQEVF-0iXrr3mbjZ5ltEH0cI8UNPo3619KAtXyQ":174,"_apollo:default":216},{"menu":4},{"__typename":5,"id":6,"name":7,"items":8},"Menu","footer","Fußzeile",[9,24,29,34],{"__typename":10,"id":11,"title":12,"description":13,"url":14,"langcode":15,"internal":20,"expanded":21,"attributes":22},"MenuItem","e2873307-b50a-4aab-b6b2-1950fd99c72e","Impressum",null,"/impressum",{"__typename":16,"id":17,"name":18,"direction":19},"Language","de","German","ltr",true,false,{"__typename":23,"class":13},"MenuItemAttributes",{"__typename":10,"id":25,"title":26,"description":13,"url":27,"langcode":15,"internal":20,"expanded":21,"attributes":28},"2cd9b7c9-142a-4ea3-b898-a0952c54a195","Datenschutz","/datenschutz",{"__typename":23,"class":13},{"__typename":10,"id":30,"title":31,"description":13,"url":32,"langcode":15,"internal":20,"expanded":21,"attributes":33},"a5effba3-5a8c-4125-8d78-0cdba09824db","AGB","/agb",{"__typename":23,"class":13},{"__typename":10,"id":35,"title":36,"description":13,"url":37,"langcode":15,"internal":21,"expanded":21,"attributes":38},"114bf071-bdbb-44cf-85c1-69e9d9e0777d","Newsletter","https://liechtenecker.at/newsletter-subscribe",{"__typename":23,"class":13},{"menu":40},{"__typename":5,"id":41,"name":42,"items":43},"nuxt-main-menu","Nuxt Hauptmenü",[44,50,55,60,65,70],{"__typename":10,"id":45,"title":46,"description":13,"url":47,"langcode":48,"internal":20,"expanded":21,"attributes":49},"9ffc5019-cbd8-4b2e-8eb7-9feae486d4a1","Blog","/know-how",{"__typename":16,"id":17,"name":18,"direction":19},{"__typename":23,"class":13},{"__typename":10,"id":51,"title":52,"description":13,"url":53,"langcode":48,"internal":20,"expanded":21,"attributes":54},"1c7a5430-8a42-4b24-9544-252adabc2f4c","Projekte","/projekte",{"__typename":23,"class":13},{"__typename":10,"id":56,"title":57,"description":13,"url":58,"langcode":48,"internal":20,"expanded":21,"attributes":59},"9c4feedc-79e4-4fbf-b68c-065f33ebfe4c","Sparring","/workshop-ux-sparring-fuer-unternehmen",{"__typename":23,"class":13},{"__typename":10,"id":61,"title":62,"description":13,"url":63,"langcode":48,"internal":20,"expanded":21,"attributes":64},"3b77a27b-272a-489f-843e-53e23ed07741","Trainings","/liechtenecker-ux-academy",{"__typename":23,"class":13},{"__typename":10,"id":66,"title":67,"description":13,"url":68,"langcode":48,"internal":20,"expanded":21,"attributes":69},"ce0bb82b-e1ee-4036-be95-f693a62e9f4a","Über uns","/about",{"__typename":23,"class":13},{"__typename":10,"id":71,"title":72,"description":13,"url":73,"langcode":48,"internal":20,"expanded":21,"attributes":74},"04a19381-81a9-4694-8653-182d8855d2b5","Kontakt","/kontakt",{"__typename":23,"class":13},{"route":76},{"__typename":77,"entity":78},"RouteInternal",{"__typename":79,"id":80,"title":81,"changed":82,"created":88,"langcode":91,"path":92,"promote":21,"status":20,"sticky":21,"metatag":93,"postCategory":113,"postContentElements":13,"evergreen":13,"tags":138,"postWpBody":152,"wpHeaderImage":13,"wpHeaderImageOld":155,"wpHeaderImageOldSmall":13,"wpOgImage":13,"wpPromotedTeaserImage":13,"wpShareDescription":13,"wpShareTitle":13,"wpTeaserText":13,"wpYoastHead":167,"author":168},"NodeWpPost","947","Kim Kardashian würde in PHP Tests schreiben #1",{"__typename":83,"timestamp":84,"timezone":85,"offset":86,"time":87},"DateTime",1554798087,"UTC","+00:00","2019-04-09T08:21:27+00:00",{"__typename":83,"timestamp":89,"timezone":85,"offset":86,"time":90},1430227038,"2015-04-28T13:17:18+00:00",{"__typename":16,"id":17,"name":18,"direction":19},"/blog/kim-kardashian-wuerde-in-php-tests-schreiben",[94,101,108],{"__typename":95,"tag":96,"attributes":97},"MetaTagValue","meta",{"__typename":98,"name":99,"content":100},"MetaTagValueAttributes","title","Kim Kardashian würde in PHP Tests schreiben #1 | Liechtenecker UX Design Studio",{"__typename":102,"tag":103,"attributes":104},"MetaTagLink","link",{"__typename":105,"href":106,"hreflang":13,"rel":107,"media":13,"sizes":13,"type":13},"MetaTagLinkAttributes","http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/blog/kim-kardashian-wuerde-in-php-tests-schreiben","canonical",{"__typename":109,"tag":96,"attributes":110},"MetaTagProperty",{"__typename":111,"property":112,"content":81},"MetaTagPropertyAttributes","og:title",{"__typename":114,"id":115,"name":116,"path":117,"status":20,"weight":118,"description":119,"langcode":123,"changed":124,"metatag":127},"TermCategories","7","Technologie","/kategorie/technologie",0,{"__typename":120,"processed":121,"format":122},"Text","Development Themen sowie zukünftige Technologien, mit denen wir uns auseinandersetzen. ","wp_html",{"__typename":16,"id":17,"name":18,"direction":19},{"__typename":83,"timestamp":125,"timezone":85,"offset":86,"time":126},1713772777,"2024-04-22T07:59:37+00:00",[128,131,135],{"__typename":95,"tag":96,"attributes":129},{"__typename":98,"name":99,"content":130},"Technologie | Liechtenecker UX Design Studio",{"__typename":95,"tag":96,"attributes":132},{"__typename":98,"name":133,"content":134},"description","Development Themen sowie zukünftige Technologien, mit denen wir uns auseinandersetzen.",{"__typename":102,"tag":103,"attributes":136},{"__typename":105,"href":137,"hreflang":13,"rel":107,"media":13,"sizes":13,"type":13},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/kategorie/technologie",[139,144,148],{"__typename":140,"id":141,"name":142,"path":143,"weight":118},"TermTags","965","php","/tag/php",{"__typename":140,"id":145,"name":146,"path":147,"weight":118},"1287","tdd","/tag/tdd",{"__typename":140,"id":149,"name":150,"path":151,"weight":118},"1311","testing","/tag/testing",{"__typename":153,"processed":154,"format":122,"summary":13},"TextSummary","\u003Cdiv class=\"grid-wrapper\">\n    \u003Cdiv class=\"row\">\n        \u003Cdiv class=\"default-left col-xsmall-12 col-medium-6 col-medium-offset-2 col-large-6 col-large-offset-3 \">\n            \n\u003Ca href=\"/sites/default/files/styles/full_width/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png?itok=NMq9oXSk\" data-rel=\"lightbox-gallery-mamACbX5\" data-rl_title data-rl_caption title class=\"js-image-link\">\u003Cdiv alt=\"kreis_starttesting\" data-entity-type=\"media\" data-entity-uuid=\"6f9e1f89-8edf-4cdc-8de2-13ccadb43076\" data-langcode=\"de\" class=\"embedded-entity\">\u003Cdiv>\n  \n  \n  \u003Cdiv>\n    \u003Cdiv class=\"visually-hidden\">Bild\u003C/div>\n              \u003Cdiv>    \u003Cpicture>\n                  \u003Csource srcset=\"/sites/default/files/styles/image_width_medium/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=_qOGVQFf 1x, /sites/default/files/styles/image_width_medium_x2/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=BwFtiOhB 2x\" media=\"all and (min-width: 1024px) and (max-width: 1439px)\" type=\"image/webp\" width=\"500\" height=\"500\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_small/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=-dSR5XLj 1x, /sites/default/files/styles/image_width_small_x2/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=EF7ftzZN 2x\" media=\"all and (min-width: 745px) and (max-width: 1023px)\" type=\"image/webp\" width=\"500\" height=\"500\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xsmall/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=fdklWo9S 1x, /sites/default/files/styles/image_width_xsmall_x2/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=nRdUk2vF 2x\" media=\"all and (min-width: 480px) and (max-width: 744px)\" type=\"image/webp\" width=\"500\" height=\"500\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_xxsmall/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=FARBVV1P 1x, /sites/default/files/styles/image_width_xxsmall_x2/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=wW0qlDuU 2x\" media=\"all and (max-width: 479px)\" type=\"image/webp\" width=\"480\" height=\"480\">\n              \u003Csource srcset=\"/sites/default/files/styles/image_width_large/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=J7IjYHCK 1x, /sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.webp?itok=7x0gD9k6 2x\" type=\"image/webp\" width=\"500\" height=\"500\">\n                  \u003Cimg loading=\"lazy\" width=\"500\" height=\"500\" src=\"/sites/default/files/styles/image_width_large_x2/public/wp-migration/wordpress-media-image/2015/04/kreis_starttesting-1.png.jpg?itok=7x0gD9k6\" alt=\"kreis_starttesting\" title=\"kreis_starttesting\">\n\n  \u003C/picture>\n\n\u003C/div>\n          \u003C/div>\n\n\u003C/div>\n\u003C/div>\n\u003C/a>\u003Cp>PHP ist nicht gerade bekannt dafür eine moderne Programmiersprache zu sein. Daher haben Konzepte wie TDD, BDD oder DDD auch nur langsam ihren Platz in der „mainstream“ PHP Community gefunden. Besonders Testing ist aber in den letzten Jahren immer wichtiger geworden und ist nicht mehr nur bei Software Entwicklern ein Must-Have.\u003Cbr>\nIn dieser Serie wollen wir uns Testing in PHP mal genauer ansehen. Was heißt Testing und TDD eigentlich überhaupt, wie funktioniert es, welche Begriffe gibt es und was kann man überhaupt testen sind die Fragen, die wir beantworten werden.\u003Cbr>\nBevor wir mit richtigen Tests loslegen, werde ich in der ersten Ausgabe der Serie auf die Testing Begriffe eingehen. Hier fängt es schon an unübersichtlich zu werden. Es gibt nämlich nicht nur dutzende Begriffe, sie werden auch unterschiedlich verwendet und in anderen Programmiersprachen anders verstanden. Deshalb räumen wir zu Beginn gleich auf und konzentrieren uns natürlich nur auf die Handhabung der Begriffe in der PHP Welt.\u003Cbr>\n\u003C/p>\n\u003Ch2>Wozu eigentlich Tests schreiben?\u003C/h2>\n\u003Cp>Zu Beginn klingt es vielleicht etwas ungewohnt. Ich schreibe einen Code der meinen eigentlichen Produktions-Code testet. Natürlich ist der anfängliche Aufwand dadurch auch gleich größer, denn mehr Schreiben heißt mehr Arbeit. Scheint so, ABER ist nicht so. Woran man nämlich dabei nicht denkt, ist die nachträgliche Fehlersuche. Wem ist es noch nicht passiert, dass er ein Feature live stellt und dabei Debug Output vergisst oder eine Mail-Funktion wird kurz deaktiviert und dann vergessen.&nbsp;Hier entstehen eine Vielanzahl an Fehlermöglichkeiten und diese&nbsp;sollten unbedingt vermieden werden.\u003Cbr>\nWas einmal getestet ist funktioniert! Wird etwas am Code geändert, lässt man die Tests danach darüber laufen. Fehler wie oben erwähnt, würden gleich erkannt werden. Somit kommt nur Code live der auch funktioniert.\u003Cbr>\nKim Kardashian schläft nicht viel und daher sind ihr die wenigen Stunden sehr wichtig. Wer Tests schreibt kann Nachts beruhigt schlafen und muss sich keine Sorgen mehr um seine Applikationen machen.\u003C/p>\n\u003Ch2>TDD\u003C/h2>\n\u003Cp>TDD steht für Test-Driven-Development. Es ist ein Entwicklungsprozess bei dem Tests im Vordergrund stehen. Bevor der eigentlich Code geschrieben wird, wird zuerst ein Test dafür erstellt. Dabei ist man gezwungen umzudenken und sich schon vorher mehr Gedanken über die nächsten Zeilen zu machen.\u003Cbr>\n&nbsp;\u003C/p>\n\u003Cblockquote>\n\u003Cp>Red, Green, Refactor\u003Cbr>\n&nbsp;\u003C/p>\n\u003C/blockquote>\n\u003Cp>Der Prozess sieht demnach so aus, dass man zuerst einen Test schreibt. Diesen lässt man laufen und es wird hoffentlich ein Fehler geworfen, da der Test ohne den eigentlichen Code nicht funktionieren kann. Danach schreibt man den eigentlichen Code und der Test&nbsp;wird wieder gestartet und sollte jetzt eine Erfolgsmeldung zurückgeben. Man spricht hier auch von „Red Green Refactor“.\u003Cbr>\nDieser Prozess muss natürlich auch zu der Applikation und zum Programmierer passen. Nicht jeder bevorzugt diese Arbeitsweise, besonders in dieser strikten Form. Ich kenne jedoch keinen professionellen Programmierer der für größere Applikationen keine Tests empfiehlt. Aber auch schon bei kleineren Projekten können uns Tests bei der Programmierung helfen und die folgenden Testtypen sollte man daher kennen.\u003Cbr>\nKim würde auf jeden Fall nach dem TDD Prinzip arbeiten. Sie ist eine Perfektionistin und&nbsp;möchte ihre komplette Applikation durchgetestet&nbsp;haben.\u003C/p>\n\u003Ch2>Unit Tests\u003C/h2>\n\u003Cp>Unit Tests sind Tests, die sich auf kleine aber abgeschlossene Bereiche unseres Codes beziehen. Dabei konzentriert man sich auf nur eine einzige Sache die getestet werden soll. Ein perfektes Beispiel dafür sind Methoden. Ein Test würde kontrollieren ob der Rückgabewert bei bestimmten Methoden-Argumenten wie erwartet aussieht.\u003Cbr>\nDer Begriff „abgeschlossen“ bezieht sich auch darauf, dass man versucht Code zu testen der nicht auf andere Funktionalitäten oder eine Datenbank angewiesen ist.\u003Cbr>\n&nbsp;\u003C/p>\n\u003Cpre>public function addOne($number) {\n    return (int)$number + 1;\n}\u003C/pre>\n\u003Cp>Diese Funktion wäre perfekt für einen Unit Test. Sie hat genau eine Aufgabe und diese können wir gut testen. Ein Test könnte z.B. kontrollieren ob die Funktion bei einer Eingabe von 1 die 2 zurückgibt. Bei der Eingabe von 2 erwarten wir 3 usw.\u003C/p>\n\u003Ch2>Integration Tests\u003C/h2>\n\u003Cp>Diese Tests sind das Pendant zu den Unit Tests. Wir konzentrieren uns nicht mehr auf nur eine Sache, sondern testen die Kombination von mehreren Modulen. Die Funktion von unserem vorigen Unit Test wäre so ein Modul.\u003Cbr>\nEin klassisches Beispiel ist der Integration Test der Startseite einer Website. Hierbei wird kontrolliert, ob der Aufruf der Seite (z.B. liechtenecker.at) auch keinen Fehler zurückgibt. Mehrere Module müssen hier in Verbindung funktionieren, damit keine Fehlermeldung zu sehen ist.\u003Cbr>\nEin weiteres Beispiel&nbsp;wäre eine&nbsp;Applikation die einen Parameter von der URL nimmt und zu dieser Zahl Eins&nbsp;addiert. Bei dem Aufruf von „myapp.com/5“ möchten wir die Zahl 6 ausgegeben haben. Dieser Test würde unsere Funktion „addOne“ von vorher in Verbindung mit anderen Komponenten testen. Nur der Unit Test allein würde nicht ausreichen, denn es&nbsp;hilft uns leider nur sehr wenig wenn die Methode funktioniert, aber der Wert nicht ausgegeben wird.\u003C/p>\n\u003Ch2>Acceptance Tests\u003C/h2>\n\u003Cp>Wenn es ums Testing geht, hört man oft die Begriffe „low-level“ oder „high-level Tests“. „Low“ wären z.B. unsere Unit Tests, bzw. im speziellen unser Test einer Klassenmethode. Wir befinden uns hier tief im Inneren unserer Applikation.\u003Cbr>\nEin typischer „high-level“ Test wäre ein Acceptance Test. Hierbei geht es darum aus der Endnutzer Sicht zu testen. Ein Szenario könnte so aussehen, dass ich meine Zugangsdaten in ein Login-Formular eingebe und erwarte auf meiner Profilseite zu landen.&nbsp;Diesen Test könnte natürlich auch Kim oder jede andere Person selber durchführen, aber wir bevorzugen die automatisierte Version. Zeit ist Geld!\u003Cbr>\nBei einem Acceptance Test wird das Verhalten eines Nutzers komplett nachgestellt. Hier noch einmal das Login Beispiel in Einzelschritten:\u003C/p>\n\u003Cul>\n\u003Cli>Ich befinde mich auf der Startseite\u003C/li>\n\u003Cli>Ich gebe in das Login-Formular meinen Namen und mein Passwort ein\u003C/li>\n\u003Cli>Ich klicke auf „Login“\u003C/li>\n\u003Cli>Ich befinde mich auf der Seite „…/profile“.\u003C/li>\n\u003Cli>Ich sehe eine „H1 headline“ mit dem Text „Willkommen zurück Christoph“.\u003C/li>\n\u003C/ul>\n\u003Cp>So würde das Verhalten in einzelnen Aktionen aussehen und diese Aktionen können wir mit den richtigen Tools auch testen. Auf diese werde ich in einer weitern Ausgabe eingeben.\u003C/p>\n\u003Ch2>Fazit\u003C/h2>\n\u003Cp>Ich hoffe ich konnte euch das Thema Testing greifbar und schmackhaft machen. Aller Anfang ist schwer aber der Aufwand wird sich auszahlen. Da wir nun einen Überblick über das Thema haben, können wir in der nächsten Ausgabe der Serie direkt mit den ersten wirklichen Tests beginnen.\u003Cbr>\nKim Kardashian macht keine halbe Sachen. Sie wird daher natürlich auch&nbsp;die weiteren Artikel verfolgen um ein PHP Testing Profi zu werden. Fur uns ist jetzt schon klar, Kim würde in PHP Tests schreiben. Professionalität ist ihre Profession.\u003Cbr>\n&nbsp;\u003C/p>\n        \u003C/div>\n    \u003C/div>\n\u003C/div>\n\n\n",{"__typename":156,"id":157,"excludeFromScreenreader":13,"mediaImage":158,"name":163,"path":166,"status":20},"MediaImage","1975",{"__typename":159,"url":160,"width":161,"height":162,"alt":163,"title":163,"size":164,"mime":165},"Image","http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/wp-migration/wordpress-media-image/2015/04/hg_gross_starttesting-1.jpg",1920,1280,"Start Testing Hintergrund",560024,"image/jpeg","/media/1975/edit","\u003C!-- This site is optimized with the Yoast SEO plugin v15.7 - https://yoast.com/wordpress/plugins/seo/ -->\n\u003Cmeta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" />\n\u003Clink rel=\"canonical\" href=\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/\" />\n\u003Cmeta property=\"og:locale\" content=\"de_DE\" />\n\u003Cmeta property=\"og:type\" content=\"article\" />\n\u003Cmeta property=\"og:title\" content=\"Kim Kardashian würde in PHP Tests schreiben #1 - Liechtenecker\" />\n\u003Cmeta property=\"og:description\" content=\"PHP ist nicht gerade bekannt dafür eine moderne Programmiersprache zu sein. Daher haben Konzepte wie TDD, BDD oder DDD auch nur langsam ihren Platz in der &#8222;mainstream&#8220; PHP Community gefunden. Besonders Testing ist aber in den letzten Jahren immer wichtiger geworden und ist nicht mehr nur bei Software Entwicklern ein Must-Have. In dieser Serie wollen [&hellip;]\" />\n\u003Cmeta property=\"og:url\" content=\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/\" />\n\u003Cmeta property=\"og:site_name\" content=\"Liechtenecker\" />\n\u003Cmeta property=\"article:published_time\" content=\"2015-04-28T15:17:18+00:00\" />\n\u003Cmeta property=\"article:modified_time\" content=\"2019-04-09T10:21:27+00:00\" />\n\u003Cmeta property=\"og:image\" content=\"https://legacy.liechtenecker.dev/wp-content/uploads/2015/04/kreis_starttesting-1.png\" />\n\u003Cmeta name=\"twitter:card\" content=\"summary_large_image\" />\n\u003Cmeta name=\"twitter:label1\" content=\"Geschätzte Lesezeit\">\n\t\u003Cmeta name=\"twitter:data1\" content=\"5 Minuten\">\n\u003Cscript type=\"application/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https://legacy.liechtenecker.dev/#website\",\"url\":\"https://legacy.liechtenecker.dev/\",\"name\":\"Liechtenecker\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https://legacy.liechtenecker.dev/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https://legacy.liechtenecker.dev/wp-content/uploads/2015/04/kreis_starttesting-1.png\",\"width\":500,\"height\":500},{\"@type\":\"WebPage\",\"@id\":\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/#webpage\",\"url\":\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/\",\"name\":\"Kim Kardashian w\\u00fcrde in PHP Tests schreiben #1 - Liechtenecker\",\"isPartOf\":{\"@id\":\"https://legacy.liechtenecker.dev/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/#primaryimage\"},\"datePublished\":\"2015-04-28T15:17:18+00:00\",\"dateModified\":\"2019-04-09T10:21:27+00:00\",\"author\":{\"@id\":\"https://legacy.liechtenecker.dev/#/schema/person/c6a4fab1680ccc1ec0ed63179501b4b1\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https://legacy.liechtenecker.dev/blog/kim-kardashian-wuerde-in-php-tests-schreiben/\"]}]},{\"@type\":\"Person\",\"@id\":\"https://legacy.liechtenecker.dev/#/schema/person/c6a4fab1680ccc1ec0ed63179501b4b1\",\"name\":\"Christoph Rumpel\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://legacy.liechtenecker.dev/#personlogo\",\"inLanguage\":\"de-DE\",\"url\":\"https://secure.gravatar.com/avatar/3191eb8b348673db049a15f94835ba83?s=96&d=mm&r=g\",\"caption\":\"Christoph Rumpel\"}}]}\u003C/script>\n\u003C!-- / Yoast SEO plugin. -->",{"__typename":169,"id":170,"myRole":171,"name":172,"nickname":173},"User","4","-","c-rumpel","Christoph Rumpel",{"latestKnowhow":175},[176,191,204],{"__typename":79,"id":177,"title":178,"path":179,"wpTeaserText":180,"wpPromotedTeaserImage":13,"wpHeaderImage":181},"1619","Behind the scenes: Ein Barrierefreiheits-Audit","/blog/behind-scenes-ein-barrierefreiheits-audit","”Entspricht unsere Website den gesetzlichen Anforderungen und wenn nicht, was genau müssen wir ändern?”\r\nDiese Frage lieben wir. Echt! Und so sieht unsere Antwort aus.",{"__typename":156,"id":182,"excludeFromScreenreader":13,"mediaImage":183,"name":189,"path":190,"status":20},"3364",{"__typename":159,"url":184,"width":185,"height":186,"alt":187,"title":13,"size":188,"mime":165},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/2026-04/Headerbilder%20Blogartikel%20Behind%20the%20scene%20Accessibility%20Audit.jpg",2880,1300,"Headline mit Sujet: Tastatur mit Symbolen für Barrierefreiheit im Fokus auf hellem  Hintergrund",838204,"Headerbilder Blogartikel Behind the scene Accessibility Audit.jpg","/media/3364/edit",{"__typename":79,"id":192,"title":193,"path":194,"wpTeaserText":195,"wpPromotedTeaserImage":13,"wpHeaderImage":196},"1616","Agentic KI trifft Design-System: Wie unser Presentation Maker entstand.","/blog/agentic-ki-trifft-design-system-wie-unser-presentation-maker-entstand","Nein, wir wollen euch jetzt nicht erzählen, was KI alles kann. Aber wir möchten euch zeigen, wie wir mit KI umgehen. \r\n",{"__typename":156,"id":197,"excludeFromScreenreader":13,"mediaImage":198,"name":202,"path":203,"status":20},"3355",{"__typename":159,"url":199,"width":185,"height":186,"alt":200,"title":13,"size":201,"mime":165},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/2026-03/BLOG_Presentation%20Tool_TITEL-2880x1300px_1.jpg","Lukas und Daniel  arbeiten an Computern im Büro.",2621988,"BLOG_Presentation Tool_TITEL-2880x1300px.jpg","/media/3355/edit",{"__typename":79,"id":205,"title":206,"path":207,"wpTeaserText":13,"wpPromotedTeaserImage":13,"wpHeaderImage":208},"1606","UI Trends 2026","/blog/ui-trends-2026",{"__typename":156,"id":209,"excludeFromScreenreader":21,"mediaImage":210,"name":214,"path":215,"status":20},"3303",{"__typename":159,"url":211,"width":185,"height":186,"alt":212,"title":13,"size":213,"mime":165},"http://liechtenecker-cms.liechtenecker-cms.svc.cluster.local/sites/default/files/2026-01/BLOG_Trendbericht%202026.jpg","UI Trends 2026, gelber Hintergrund, schwarze Schrift.",4700748,"BLOG_Trendbericht 2026.jpg","/media/3303/edit",{"Language:de":217,"MenuItem:e2873307-b50a-4aab-b6b2-1950fd99c72e":218,"MenuItem:2cd9b7c9-142a-4ea3-b898-a0952c54a195":222,"MenuItem:a5effba3-5a8c-4125-8d78-0cdba09824db":225,"MenuItem:114bf071-bdbb-44cf-85c1-69e9d9e0777d":228,"Menu:footer":231,"ROOT_QUERY":241,"MenuItem:9ffc5019-cbd8-4b2e-8eb7-9feae486d4a1":257,"MenuItem:1c7a5430-8a42-4b24-9544-252adabc2f4c":260,"MenuItem:9c4feedc-79e4-4fbf-b68c-065f33ebfe4c":263,"MenuItem:3b77a27b-272a-489f-843e-53e23ed07741":266,"MenuItem:ce0bb82b-e1ee-4036-be95-f693a62e9f4a":269,"MenuItem:04a19381-81a9-4694-8653-182d8855d2b5":272,"Menu:nuxt-main-menu":275,"TermCategories:7":289,"TermTags:965":300,"TermTags:1287":301,"TermTags:1311":302,"MediaImage:1975":303,"User:4":305,"NodeWpPost:947":306,"MediaImage:3364":331,"NodeWpPost:1619":333,"MediaImage:3355":336,"NodeWpPost:1616":338,"MediaImage:3303":341,"NodeWpPost:1606":343},["null","__typename",16,"id",17,"name",18,"direction",19],["null","__typename",10,"id",11,"title",12,"description",13,"url",14,"langcode",219,"internal",20,"expanded",21,"attributes",221],{"__ref":220},"Language:de",["null","__typename",23,"class",13],["null","__typename",10,"id",25,"title",26,"description",13,"url",27,"langcode",223,"internal",20,"expanded",21,"attributes",224],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",30,"title",31,"description",13,"url",32,"langcode",226,"internal",20,"expanded",21,"attributes",227],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",35,"title",36,"description",13,"url",37,"langcode",229,"internal",21,"expanded",21,"attributes",230],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",5,"id",6,"name",7,"items",232],[233,235,237,239],{"__ref":234},"MenuItem:e2873307-b50a-4aab-b6b2-1950fd99c72e",{"__ref":236},"MenuItem:2cd9b7c9-142a-4ea3-b898-a0952c54a195",{"__ref":238},"MenuItem:a5effba3-5a8c-4125-8d78-0cdba09824db",{"__ref":240},"MenuItem:114bf071-bdbb-44cf-85c1-69e9d9e0777d",["null","__typename",242,"menu({\"name\":\"FOOTER\"})",243,"menu({\"name\":\"NUXT_MAIN_MENU\"})",245,"route({\"path\":\"/blog/kim-kardashian-wuerde-in-php-tests-schreiben\"})",247,"latestKnowhow({\"excludeId\":\"947\",\"limit\":3})",250],"Query",{"__ref":244},"Menu:footer",{"__ref":246},"Menu:nuxt-main-menu",["null","__typename",77,"entity",248],{"__ref":249},"NodeWpPost:947",[251,253,255],{"__ref":252},"NodeWpPost:1619",{"__ref":254},"NodeWpPost:1616",{"__ref":256},"NodeWpPost:1606",["null","__typename",10,"id",45,"title",46,"description",13,"url",47,"langcode",258,"internal",20,"expanded",21,"attributes",259],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",51,"title",52,"description",13,"url",53,"langcode",261,"internal",20,"expanded",21,"attributes",262],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",56,"title",57,"description",13,"url",58,"langcode",264,"internal",20,"expanded",21,"attributes",265],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",61,"title",62,"description",13,"url",63,"langcode",267,"internal",20,"expanded",21,"attributes",268],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",66,"title",67,"description",13,"url",68,"langcode",270,"internal",20,"expanded",21,"attributes",271],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",10,"id",71,"title",72,"description",13,"url",73,"langcode",273,"internal",20,"expanded",21,"attributes",274],{"__ref":220},["null","__typename",23,"class",13],["null","__typename",5,"id",41,"name",42,"items",276],[277,279,281,283,285,287],{"__ref":278},"MenuItem:9ffc5019-cbd8-4b2e-8eb7-9feae486d4a1",{"__ref":280},"MenuItem:1c7a5430-8a42-4b24-9544-252adabc2f4c",{"__ref":282},"MenuItem:9c4feedc-79e4-4fbf-b68c-065f33ebfe4c",{"__ref":284},"MenuItem:3b77a27b-272a-489f-843e-53e23ed07741",{"__ref":286},"MenuItem:ce0bb82b-e1ee-4036-be95-f693a62e9f4a",{"__ref":288},"MenuItem:04a19381-81a9-4694-8653-182d8855d2b5",["null","__typename",114,"id",115,"name",116,"path",117,"status",20,"weight",118,"description",290,"langcode",291,"changed",292,"metatag",293],["null","__typename",120,"processed",121,"format",122],{"__ref":220},["null","__typename",83,"timestamp",125,"timezone",85,"offset",86,"time",126],[294,296,298],["null","__typename",95,"tag",96,"attributes",295],["null","__typename",98,"name",99,"content",130],["null","__typename",95,"tag",96,"attributes",297],["null","__typename",98,"name",133,"content",134],["null","__typename",102,"tag",103,"attributes",299],["null","__typename",105,"href",137,"hreflang",13,"rel",107,"media",13,"sizes",13,"type",13],["null","__typename",140,"id",141,"name",142,"path",143,"weight",118],["null","__typename",140,"id",145,"name",146,"path",147,"weight",118],["null","__typename",140,"id",149,"name",150,"path",151,"weight",118],["null","__typename",156,"id",157,"excludeFromScreenreader",13,"mediaImage",304,"name",163,"path",166,"status",20],["null","__typename",159,"url",160,"width",161,"height",162,"alt",163,"title",163,"size",164,"mime",165],["null","__typename",169,"id",170,"myRole",171,"name",172,"nickname",173],["null","__typename",79,"id",80,"title",81,"changed",307,"created",308,"langcode",309,"path",92,"promote",21,"status",20,"sticky",21,"metatag",310,"category",317,"contentElements",13,"evergreen",13,"tags",319,"wpBody",326,"wpHeaderImage",13,"wpHeaderImageOld",327,"wpHeaderImageOldSmall",13,"wpOgImage",13,"wpPromotedTeaserImage",13,"wpShareDescription",13,"wpShareTitle",13,"wpTeaserText",13,"wpYoastHead",167,"author",329],["null","__typename",83,"timestamp",84,"timezone",85,"offset",86,"time",87],["null","__typename",83,"timestamp",89,"timezone",85,"offset",86,"time",90],{"__ref":220},[311,313,315],["null","__typename",95,"tag",96,"attributes",312],["null","__typename",98,"name",99,"content",100],["null","__typename",102,"tag",103,"attributes",314],["null","__typename",105,"href",106,"hreflang",13,"rel",107,"media",13,"sizes",13,"type",13],["null","__typename",109,"tag",96,"attributes",316],["null","__typename",111,"property",112,"content",81],{"__ref":318},"TermCategories:7",[320,322,324],{"__ref":321},"TermTags:965",{"__ref":323},"TermTags:1287",{"__ref":325},"TermTags:1311",["null","__typename",153,"processed",154,"format",122,"summary",13],{"__ref":328},"MediaImage:1975",{"__ref":330},"User:4",["null","__typename",156,"id",182,"excludeFromScreenreader",13,"mediaImage",332,"name",189,"path",190,"status",20],["null","__typename",159,"url",184,"width",185,"height",186,"alt",187,"title",13,"size",188,"mime",165],["null","__typename",79,"id",177,"title",178,"path",179,"wpTeaserText",180,"wpPromotedTeaserImage",13,"wpHeaderImage",334],{"__ref":335},"MediaImage:3364",["null","__typename",156,"id",197,"excludeFromScreenreader",13,"mediaImage",337,"name",202,"path",203,"status",20],["null","__typename",159,"url",199,"width",185,"height",186,"alt",200,"title",13,"size",201,"mime",165],["null","__typename",79,"id",192,"title",193,"path",194,"wpTeaserText",195,"wpPromotedTeaserImage",13,"wpHeaderImage",339],{"__ref":340},"MediaImage:3355",["null","__typename",156,"id",209,"excludeFromScreenreader",21,"mediaImage",342,"name",214,"path",215,"status",20],["null","__typename",159,"url",211,"width",185,"height",186,"alt",212,"title",13,"size",213,"mime",165],["null","__typename",79,"id",205,"title",206,"path",207,"wpTeaserText",13,"wpPromotedTeaserImage",13,"wpHeaderImage",344],{"__ref":345},"MediaImage:3303"]