[
  {
    "start": 0.001,
    "end": 2.78,
    "text": "Aber ich finde Frontend-Testing ist komplizierter als Backend-Testing."
  },
  {
    "start": 3.75,
    "end": 4.7,
    "text": "Warum ist es komplizierter?"
  },
  {
    "start": 5.5,
    "end": 6.78,
    "text": "Weil wir viel mehr Anforderungen haben."
  },
  {
    "start": 8.12,
    "end": 10.52,
    "text": "Es ist natürlich nicht die beste Art, wie man etwas lernen sollte."
  },
  {
    "start": 11.759,
    "end": 13.08,
    "text": "Und es hat auch lange gedauert."
  },
  {
    "start": 13.18,
    "end": 14.1,
    "text": "War auch sehr frustrierend."
  },
  {
    "start": 15.3,
    "end": 17.12,
    "text": "Wenn man mit AI Dinge entwickeln möchte,"
  },
  {
    "start": 18.0,
    "end": 19.62,
    "text": "muss die Testing-Strategie richtig gut sein."
  },
  {
    "start": 20.0,
    "end": 22.5,
    "text": "Also man muss am Anfang von einem Projekt Zeit investieren"
  },
  {
    "start": 22.89,
    "end": 23.6,
    "text": "und sich überlegen,"
  },
  {
    "start": 24.12,
    "end": 25.16,
    "text": "wie verteste ich denn was."
  },
  {
    "start": 26.62,
    "end": 27.52,
    "text": "Dem Nutzer ist es egal,"
  },
  {
    "start": 27.86,
    "end": 28.84,
    "text": "wenn ich jetzt eine Komponente habe,"
  },
  {
    "start": 29.0,
    "end": 30.9,
    "text": "ob welche Methoden die hat,"
  },
  {
    "start": 31.12,
    "end": 31.72,
    "text": "welche Namen."
  },
  {
    "start": 32.52,
    "end": 33.56,
    "text": "Das soll einfach nur funktionieren."
  },
  {
    "start": 34.64,
    "end": 39.34,
    "text": "Hallo und herzlich willkommen zu einer neuen Folge vom Podcast Software Testing."
  },
  {
    "start": 39.82,
    "end": 42.86,
    "text": "Ich bin Richie und habe wieder eine Folge von der TACON"
  },
  {
    "start": 43.519,
    "end": 45.78,
    "text": "2026 in Leipzig mitgebracht."
  },
  {
    "start": 46.02,
    "end": 48.26,
    "text": "Bei mir zu Gast war Alexander Opalic"
  },
  {
    "start": 48.64,
    "end": 52.18,
    "text": "und mit ihm habe ich über Komponententests im echten Browser gesprochen."
  },
  {
    "start": 52.48,
    "end": 55.8,
    "text": "Warum Frontend-Tests komplizierter sind als Backend-Tests?"
  },
  {
    "start": 55.96,
    "end": 57.32,
    "text": "Was ein echter Browser bringt,"
  },
  {
    "start": 57.54,
    "end": 59.88,
    "text": "gerade wenn es um Accessibility und Farben geht"
  },
  {
    "start": 60.08,
    "end": 62.74,
    "text": "und wo Screenshot-Tests dann doch flaky werden,"
  },
  {
    "start": 63.0,
    "end": 64.68,
    "text": "all das erfahrt ihr in dieser Folge."
  },
  {
    "start": 64.91,
    "end": 66.34,
    "text": "Und jetzt viel Spaß damit."
  },
  {
    "start": 77.58,
    "end": 79.3,
    "text": "Hallo Alexander, schön, dass du da bist."
  },
  {
    "start": 79.88,
    "end": 81.84,
    "text": "Ja, auch sehr schön, dass ich hier Podcast sein darf."
  },
  {
    "start": 82.14,
    "end": 82.78,
    "text": "Ja, ich freue mich."
  },
  {
    "start": 82.8,
    "end": 85.9,
    "text": "Wir sind ja hier auf der TACON 2026 in Leipzig,"
  },
  {
    "start": 86.06,
    "end": 86.54,
    "text": "zweiter Tag,"
  },
  {
    "start": 87.26,
    "end": 89.12,
    "text": "so Konferenz in voller Fahrt."
  },
  {
    "start": 89.4,
    "end": 91.04,
    "text": "Hast du dir ein paar Vorträge angeschaut gestern?"
  },
  {
    "start": 91.3,
    "end": 91.38,
    "text": "Ja,"
  },
  {
    "start": 91.78,
    "end": 94.54,
    "text": "gestern natürlich ist auch meine erste Testing-Konferenz."
  },
  {
    "start": 94.55,
    "end": 96.22,
    "text": "Also ich bin Software-Entwickler,"
  },
  {
    "start": 97.04,
    "end": 99.58,
    "text": "Fullstack am meisten im Frontend zu tun gehabt"
  },
  {
    "start": 100.96,
    "end": 104.5,
    "text": "und war schon auf vielen mehr Web-Konferenzen,"
  },
  {
    "start": 104.81,
    "end": 106.12,
    "text": "war so die erste Testing-Konferenz."
  },
  {
    "start": 107.2,
    "end": 110.16,
    "text": "Aber ich bin auch ein Entwickler, der sich immer so ein bisschen für Testing interessiert hat,"
  },
  {
    "start": 110.24,
    "end": 112.72,
    "text": "weil vielleicht eine kurze Geschichte war,"
  },
  {
    "start": 113.38,
    "end": 114.16,
    "text": "als ich Werkstudent war,"
  },
  {
    "start": 114.36,
    "end": 115.32,
    "text": "war meine erste Aufgabe,"
  },
  {
    "start": 116.78,
    "end": 118.28,
    "text": "weil ich irgendwas tun musste."
  },
  {
    "start": 120.06,
    "end": 122.2,
    "text": "Nicht nur zu lernen, wie man Unitests schreibt,"
  },
  {
    "start": 122.4,
    "end": 125.18,
    "text": "sondern auch zu lernen, wie man Vue-Applikationen baut,"
  },
  {
    "start": 125.5,
    "end": 126.42,
    "text": "was JavaScript ist."
  },
  {
    "start": 127.08,
    "end": 128.72,
    "text": "Und da hat mein Manager damals gemeint, ja,"
  },
  {
    "start": 129.06,
    "end": 130.16,
    "text": "wir brauchen mehr Testcoverage."
  },
  {
    "start": 130.92,
    "end": 134.0,
    "text": "Und das ist natürlich nicht die beste Art, wie man etwas lernen sollte."
  },
  {
    "start": 135.08,
    "end": 136.56,
    "text": "Und hat auch lange gedauert,"
  },
  {
    "start": 136.74,
    "end": 137.58,
    "text": "war auch sehr frustrierend."
  },
  {
    "start": 137.58,
    "end": 139.06,
    "text": "Damals gab es auch noch nicht AI."
  },
  {
    "start": 139.98,
    "end": 141.64,
    "text": "Das wäre vielleicht dann auch sehr viel leichter gewesen."
  },
  {
    "start": 142.76,
    "end": 146.36,
    "text": "Und so bin ich halt zum Testing gekommen und war schon immer Fan davon."
  },
  {
    "start": 147.58,
    "end": 150.6,
    "text": "Aber auch manchmal ein bisschen alleine in manchen Projekten."
  },
  {
    "start": 150.74,
    "end": 156.58,
    "text": "Es ist jetzt nicht so, dass jeder Entwickler Lust hat, hier ständig Unit Integration Tests zu schreiben."
  },
  {
    "start": 157.44,
    "end": 157.64,
    "text": "Ja,"
  },
  {
    "start": 157.84,
    "end": 159.6,
    "text": "also das ist natürlich auch ein bisschen,"
  },
  {
    "start": 159.96,
    "end": 162.48,
    "text": "wenn man so ein bisschen eine Affinität hat dazu,"
  },
  {
    "start": 162.7,
    "end": 164.22,
    "text": "das ist natürlich, finde ich, finde ich immer gut."
  },
  {
    "start": 164.22,
    "end": 168.36,
    "text": "aber ich kenne auch ganz viele, die das nicht machen wollen oder sagen, das brauche ich nicht,"
  },
  {
    "start": 168.39,
    "end": 170.16,
    "text": "soll ein anderer machen oder so."
  },
  {
    "start": 170.36,
    "end": 173.46,
    "text": "Oder dann halt umgekehrt ja auch. Es gibt viele Tester,"
  },
  {
    "start": 173.54,
    "end": 177.8,
    "text": "die jetzt wenig mit Coding zu tun haben wollen. Manche schon, manche interessieren sich dafür,"
  },
  {
    "start": 178.2,
    "end": 179.56,
    "text": "es gibt dann immer so die Hybriden."
  },
  {
    "start": 180.0,
    "end": 180.86,
    "text": "Aber ich finde es schön,"
  },
  {
    "start": 181.02,
    "end": 181.26,
    "text": "weil,"
  },
  {
    "start": 182.18,
    "end": 183.0,
    "text": "also das ist natürlich"
  },
  {
    "start": 183.32,
    "end": 185.08,
    "text": "jetzt ein Blick ein bisschen auf von der anderen Seite,"
  },
  {
    "start": 185.42,
    "end": 186.98,
    "text": "wenn man es jetzt aus dem Testing guckt,"
  },
  {
    "start": 187.32,
    "end": 188.04,
    "text": "aus dem klassischen,"
  },
  {
    "start": 189.03,
    "end": 191.54,
    "text": "wo der Entwickler dann irgendwann mal was liefert und ich prüfe das"
  },
  {
    "start": 191.54,
    "end": 192.66,
    "text": "dann mal zu sehen,"
  },
  {
    "start": 192.86,
    "end": 195.56,
    "text": "wie siehst denn du das und vor allem was hast du auch für einen"
  },
  {
    "start": 196.92,
    "end": 201.98,
    "text": "Change gemacht, mit welchen Gedanken du quasi deine Systematik da geändert hast"
  },
  {
    "start": 202.1,
    "end": 202.88,
    "text": "auch zum Testen."
  },
  {
    "start": 203.96,
    "end": 207.32,
    "text": "Genau und da steigen wir vielleicht ein, also du hast ja das"
  },
  {
    "start": 207.64,
    "end": 208.36,
    "text": "Thema mit dem,"
  },
  {
    "start": 208.92,
    "end": 212.86,
    "text": "du gehst mehr Richtung Blackbox-Testing, du hast dann dein"
  },
  {
    "start": 212.98,
    "end": 213.52,
    "text": "Web-Testing,"
  },
  {
    "start": 213.84,
    "end": 215.24,
    "text": "Oberflächentesting verändert."
  },
  {
    "start": 215.82,
    "end": 217.36,
    "text": "Hol uns doch da mal rein, was war denn so die"
  },
  {
    "start": 217.5,
    "end": 218.0,
    "text": "Ausgangslage?"
  },
  {
    "start": 218.3,
    "end": 218.66,
    "text": "Ja ich glaube,"
  },
  {
    "start": 218.84,
    "end": 220.76,
    "text": "also ich persönlich, vielleicht, ich weiß nicht, ob es ein"
  },
  {
    "start": 220.66,
    "end": 224.14,
    "text": "Hot Take ist, aber ich finde Frontend Testing ist komplizierter als Backend Testing."
  },
  {
    "start": 225.12,
    "end": 226.06,
    "text": "Warum ist es komplizierter?"
  },
  {
    "start": 226.76,
    "end": 228.14,
    "text": "Weil wir viel mehr Anforderungen haben."
  },
  {
    "start": 228.5,
    "end": 230.0,
    "text": "Also wir haben einmal Accessibility,"
  },
  {
    "start": 230.66,
    "end": 231.38,
    "text": "wurde ja immer wichtiger,"
  },
  {
    "start": 232.74,
    "end": 234.04,
    "text": "oder auch den ganzen Bereich"
  },
  {
    "start": 234.18,
    "end": 234.82,
    "text": "Visual Regression,"
  },
  {
    "start": 235.1,
    "end": 237.48,
    "text": "weil am Ende haben wir einen Browser und am Ende haben wir irgendwo Pixel."
  },
  {
    "start": 239.38,
    "end": 242.1,
    "text": "Und da habe ich die Erfahrung gemacht, dass in manchen Projekten,"
  },
  {
    "start": 243.02,
    "end": 243.52,
    "text": "wie ich vorher schon"
  },
  {
    "start": 243.52,
    "end": 244.84,
    "text": "gemeint hatte,"
  },
  {
    "start": 245.78,
    "end": 246.8,
    "text": "anders als Entwickler,"
  },
  {
    "start": 246.98,
    "end": 248.0,
    "text": "ja, ich muss Tests schreiben,"
  },
  {
    "start": 248.48,
    "end": 249.659,
    "text": "ich muss 70 Prozent"
  },
  {
    "start": 249.66,
    "end": 251.18,
    "text": "Testcoverage erfüllen für meinen PR."
  },
  {
    "start": 252.1,
    "end": 253.88,
    "text": "Aber man kann Tests ja verschieden schreiben."
  },
  {
    "start": 253.96,
    "end": 258.459,
    "text": "Man kann jetzt einen Test so schreiben, dass sie mehr Integration Tests sind, also Whitebox."
  },
  {
    "start": 258.76,
    "end": 260.019,
    "text": "Also das ist halt die Idee, dass ich,"
  },
  {
    "start": 261.459,
    "end": 264.3,
    "text": "wenn ich eine Klasse habe, da einzelne Methoden quasi verteste."
  },
  {
    "start": 264.96,
    "end": 271.14,
    "text": "Jetzt bei einer Komponente, wie zum Beispiel bei einem Datepicker oder bei einem Modal oder was auch immer,"
  },
  {
    "start": 271.22,
    "end": 271.76,
    "text": "bei einer Tabelle,"
  },
  {
    "start": 272.64,
    "end": 274.9,
    "text": "benutzt man ja heutzutage entweder Vue oder React,"
  },
  {
    "start": 275.1,
    "end": 277.2,
    "text": "wo natürlich Vue da am besten ist."
  },
  {
    "start": 278.82,
    "end": 279.76,
    "text": "Und man kann entweder,"
  },
  {
    "start": 281.06,
    "end": 283.74,
    "text": "also Whitebox wäre, ich würde quasi, wenn ich eine Vue-Komponente habe,"
  },
  {
    "start": 283.96,
    "end": 284.66,
    "text": "hat die ja State."
  },
  {
    "start": 284.82,
    "end": 285.1,
    "text": "Die hat,"
  },
  {
    "start": 285.78,
    "end": 288.7,
    "text": "da benutzen wir Ref oder bei React use State und die hat verschiedene Methoden."
  },
  {
    "start": 289.44,
    "end": 290.74,
    "text": "Ich könnte diese vertesten natürlich."
  },
  {
    "start": 292.26,
    "end": 294.9,
    "text": "Oder ich verteste das auch so wie ein Nutzer,"
  },
  {
    "start": 295.66,
    "end": 297.6,
    "text": "was benutzen würde und versuche den DOM zu vertesten."
  },
  {
    "start": 298.52,
    "end": 300.54,
    "text": "Und das ist mehr die Idee von Blackbox,"
  },
  {
    "start": 301.16,
    "end": 302.62,
    "text": "dass ich verschiedene Komponenten habe."
  },
  {
    "start": 303.18,
    "end": 305.08,
    "text": "Ich habe meine Core-UI-Library, Buttons,"
  },
  {
    "start": 306.0,
    "end": 306.82,
    "text": "Modals und so weiter."
  },
  {
    "start": 307.22,
    "end": 310.74,
    "text": "Und dann habe ich vielleicht eine E-Commerce-Seite und die besteht aus ganz vielen Lego-Bausteinen."
  },
  {
    "start": 310.94,
    "end": 311.84,
    "text": "Also man kann sich das vorstellen."
  },
  {
    "start": 313.3,
    "end": 316.84,
    "text": "Und jetzt hat man als Frontend-Entwickler die Aufgabe,"
  },
  {
    "start": 317.0,
    "end": 319.22,
    "text": "sich zu überlegen, wie kann ich meine Komponenten gut vertesten."
  },
  {
    "start": 319.44,
    "end": 322.72,
    "text": "Also ein Date-Picker, der sieht vielleicht einfach aus, aber der kann auch sehr kompliziert sein."
  },
  {
    "start": 322.9,
    "end": 326.02,
    "text": "Das ist auch, gerade wenn er mit Screenreader funktionieren sollte,"
  },
  {
    "start": 326.84,
    "end": 327.88,
    "text": "hat man viele Anforderungen."
  },
  {
    "start": 329.88,
    "end": 333.68,
    "text": "Und sowas ist auch nicht ideal, wenn man jetzt mit Playwright zum Beispiel End-to-End-Tests schreibt."
  },
  {
    "start": 333.7,
    "end": 335.58,
    "text": "Aber sollte ich die ganze Seite laden,"
  },
  {
    "start": 336.34,
    "end": 338.22,
    "text": "dann muss ich auch genau wissen, wo ist mein Date Picker."
  },
  {
    "start": 338.22,
    "end": 343.26,
    "text": "Ich muss genau auf diese Seite gehen und den Date Picker finden und ihn dort vertesten."
  },
  {
    "start": 344.26,
    "end": 345.32,
    "text": "Da ist eine bessere Möglichkeit,"
  },
  {
    "start": 345.92,
    "end": 348.44,
    "text": "diese Blackbox-Strategie und auch jetzt Vitest Browser Mode,"
  },
  {
    "start": 348.86,
    "end": 351.34,
    "text": "was es jetzt auch schon seit zwei oder drei Jahren gibt,"
  },
  {
    "start": 351.85,
    "end": 354.52,
    "text": "diesen Date Picker in einem echten Browser zu rendern"
  },
  {
    "start": 355.03,
    "end": 356.92,
    "text": "und dort isoliert zu vertesten quasi."
  },
  {
    "start": 358.04,
    "end": 360.4,
    "text": "Und zu vertesten, dass das Verhalten stimmt."
  },
  {
    "start": 361.46,
    "end": 366.38,
    "text": "Aber ich finde eine Komponente hat nicht nur Verhalten als Requirement,"
  },
  {
    "start": 366.6,
    "end": 367.44,
    "text": "sondern jetzt auch Accessibility."
  },
  {
    "start": 368.28,
    "end": 369.84,
    "text": "Also wenn ich quasi ein Screenreader habe,"
  },
  {
    "start": 370.58,
    "end": 371.5,
    "text": "ein Bild ist ein gutes Beispiel."
  },
  {
    "start": 371.6,
    "end": 373.54,
    "text": "Ein Bild braucht immer einen Alttext,"
  },
  {
    "start": 373.74,
    "end": 376.66,
    "text": "weil wenn jemand blind ist und er ist ein Bild,"
  },
  {
    "start": 377.24,
    "end": 378.46,
    "text": "der Screenreader muss ihm vorlesen,"
  },
  {
    "start": 378.98,
    "end": 379.92,
    "text": "wenn es wichtig für ihn ist,"
  },
  {
    "start": 380.2,
    "end": 381.36,
    "text": "was da zu sehen ist."
  },
  {
    "start": 382.16,
    "end": 384.26,
    "text": "Und das können wir gut vertesten, auch automatisch."
  },
  {
    "start": 384.68,
    "end": 390.84,
    "text": "Dann gibt es dann sowas wie axe zum Beispiel, das kann solche einfachen Accessibility-Tests"
  },
  {
    "start": 390.9,
    "end": 391.5,
    "text": "vertesten,"
  },
  {
    "start": 392.64,
    "end": 394.28,
    "text": "aber es gibt natürlich auch kompliziertere Dinge."
  },
  {
    "start": 394.81,
    "end": 395.7,
    "text": "Aber da hilft es mir,"
  },
  {
    "start": 396.34,
    "end": 397.26,
    "text": "einen echten Browser zu haben."
  },
  {
    "start": 398.12,
    "end": 404.54,
    "text": "Und vor drei oder vier Jahren haben die meisten von den Entwicklern jsdom benutzt oder"
  },
  {
    "start": 404.62,
    "end": 408.12,
    "text": "Happy Dom und das ist quasi Node als Umgebung,"
  },
  {
    "start": 408.32,
    "end": 408.94,
    "text": "aber emuliert."
  },
  {
    "start": 409.17,
    "end": 411.6,
    "text": "Also man versucht quasi, einen Browser zu emulieren."
  },
  {
    "start": 411.92,
    "end": 413.8,
    "text": "Das klappt auch ganz gut,"
  },
  {
    "start": 414.26,
    "end": 415.02,
    "text": "aber da auch viele Probleme,"
  },
  {
    "start": 415.18,
    "end": 416.66,
    "text": "weil es immer nur eine Emulation ist."
  },
  {
    "start": 417.06,
    "end": 418.64,
    "text": "Und manche Dinge muss man auch mocken."
  },
  {
    "start": 419.62,
    "end": 421.04,
    "text": "Wenn man ein Diagramm zum Beispiel hat,"
  },
  {
    "start": 422.56,
    "end": 423.48,
    "text": "ist es kompliziert,"
  },
  {
    "start": 423.76,
    "end": 426.9,
    "text": "weil mit einer Node-Umgebung ist es schwer."
  },
  {
    "start": 427.06,
    "end": 429.48,
    "text": "Es ist einfacher, wenn ich das Diagramm im Browser halt drauf sehe."
  },
  {
    "start": 430.22,
    "end": 432.2,
    "text": "Und das wollte ich gestern so ein bisschen vermitteln,"
  },
  {
    "start": 432.36,
    "end": 434.68,
    "text": "weil auch viele Frontend-Entwickler wissen noch nicht, dass es das gibt."
  },
  {
    "start": 434.86,
    "end": 438.36,
    "text": "Und auch viele Projekte benutzen immer noch jsdom und HappyDOM."
  },
  {
    "start": 439.42,
    "end": 446.12,
    "text": "Und auch abseits diesem ganzen AI-Thema passiert auch sehr viel im Content-Bereich und Testing-Bereich, im Tooling-Bereich."
  },
  {
    "start": 446.7,
    "end": 449.76,
    "text": "Und das wollte ich mal so ein bisschen vermitteln, weil sobald man es einmal ausprobiert hat,"
  },
  {
    "start": 449.94,
    "end": 451.34,
    "text": "macht es auch Testschreiben viel mehr Spaß."
  },
  {
    "start": 452.28,
    "end": 456.22,
    "text": "Wie kann ich mir denn jetzt dieses Komponententesting vorstellen?"
  },
  {
    "start": 456.38,
    "end": 460.72,
    "text": "Also dass du quasi diese Komponente nimmst und die quasi renderst mit dem Vitest oder so wie du das gesagt hast."
  },
  {
    "start": 461.38,
    "end": 462.12,
    "text": "Ist das dann quasi,"
  },
  {
    "start": 462.81,
    "end": 465.28,
    "text": "wenn ich den Date-Picker jetzt 100 Mal auf meiner Seite habe,"
  },
  {
    "start": 465.32,
    "end": 473.76,
    "text": "Hast du den quasi dann 100 mal isoliert, weil du ja jede Instanz prüfst oder prüfst du quasi eine eigene Instanz dieser Komponente?"
  },
  {
    "start": 474.18,
    "end": 476.16,
    "text": "Okay, gute Frage. Also wie das abläuft,"
  },
  {
    "start": 476.61,
    "end": 477.74,
    "text": "wir benutzen Vitest."
  },
  {
    "start": 480.43,
    "end": 481.38,
    "text": "Also man kann Vitest,"
  },
  {
    "start": 481.72,
    "end": 488.72,
    "text": "also früher hatte man Webpack, jetzt hat man Vite um Frontend zu kompilieren."
  },
  {
    "start": 489.78,
    "end": 493.0,
    "text": "Mit Vitest kann ich verschiedene Environment angeben. Ich kann auch einfach nur Nodes sagen,"
  },
  {
    "start": 493.16,
    "end": 495.64,
    "text": "Das ist dann einfach nur für TypeScript-Funktionen, da brauche ich keinen echten Browser."
  },
  {
    "start": 496.68,
    "end": 498.6,
    "text": "Aber wenn ich jetzt eine Komponente habe, mit Browser,"
  },
  {
    "start": 498.81,
    "end": 500.28,
    "text": "sage ich dann \"Vitest Browser Mode\"."
  },
  {
    "start": 501.16,
    "end": 504.94,
    "text": "Und dort wird die Komponente in einen Browser gerendert."
  },
  {
    "start": 505.39,
    "end": 506.02,
    "text": "Das dauert ein bisschen."
  },
  {
    "start": 506.64,
    "end": 507.64,
    "text": "Und dann haben wir halt ein iFrame."
  },
  {
    "start": 508.56,
    "end": 513.28,
    "text": "Und dann wird halt quasi einmal die DatePicker-Komponente verwendet und haben wir vielleicht, weiß ich nicht,"
  },
  {
    "start": 513.74,
    "end": 514.76,
    "text": "fünf oder zehn Tests."
  },
  {
    "start": 515.64,
    "end": 516.8,
    "text": "Und die werden alle ausgeführt."
  },
  {
    "start": 517.52,
    "end": 520.219,
    "text": "Und dann wird quasi im nächsten iFrame,"
  },
  {
    "start": 520.4,
    "end": 522.56,
    "text": "also im iFrame was offen ist, die nächste Komponente,"
  },
  {
    "start": 522.96,
    "end": 524.3,
    "text": "vielleicht eine Tabelle."
  },
  {
    "start": 525.06,
    "end": 526.46,
    "text": "Und dann wird alles vertestet."
  },
  {
    "start": 526.82,
    "end": 529.5,
    "text": "Es sieht so ein bisschen ähnlich aus wie Playwright, also man kann es entweder auch"
  },
  {
    "start": 531.14,
    "end": 534.28,
    "text": "Headless starten, aber es sieht ähnlich aus wie Playwright, also man kann dann sehen."
  },
  {
    "start": 534.94,
    "end": 538.04,
    "text": "Man kann auch Timeouts einbauen, damit es ein bisschen langsamer ist."
  },
  {
    "start": 538.16,
    "end": 540.52,
    "text": "Dann sieht man genau, okay, hier hat der Klick stattgefunden."
  },
  {
    "start": 542.35,
    "end": 545.36,
    "text": "Aber ich glaube am einfachsten ist es, wenn man auf die Dokumentationsseite geht,"
  },
  {
    "start": 545.52,
    "end": 552.3,
    "text": "Also bei Vitest Browser Mode eintippt und dann haben sie direkt ein Screenshot und wenn man es sieht, glaube ich, dann ist es sofort klar,"
  },
  {
    "start": 552.48,
    "end": 553.84,
    "text": "was damit gemeint ist."
  },
  {
    "start": 553.89,
    "end": 555.72,
    "text": "Ein bisschen schwer, das auf Audio zu erklären."
  },
  {
    "start": 555.82,
    "end": 556.08,
    "text": "Ja klar,"
  },
  {
    "start": 556.48,
    "end": 562.04,
    "text": "das kann man natürlich nicht herzeigen. Da machen wir mal ein Webinar dazu, dann kannst du das nochmal genauer beschreiben."
  },
  {
    "start": 562.64,
    "end": 570.7,
    "text": "Aber wie kann ich mir denn vorstellen, du bist ja quasi auch aus der alten Welt gekommen und hast ja das für dich neu gebaut."
  },
  {
    "start": 571.12,
    "end": 581.54,
    "text": "Wie war denn für dich da so der Umstieg? Hast du dann quasi gesagt, ich schmeiß jetzt alles weg, was ich habe, baue das neu oder war das so eine Step-by-Step-Transition oder wie hast du das für dich gemacht?"
  },
  {
    "start": 581.56,
    "end": 582.36,
    "text": "Ja, ehrlich gesagt halt,"
  },
  {
    "start": 583.92,
    "end": 591.7,
    "text": "also ich bin jetzt seit acht Jahren Entwickler und ich war immer in Projekten, wo wir Tests hatten. Ich war glaube ich noch kein Projekt, wo wir gar keine Tests hatten."
  },
  {
    "start": 592.64,
    "end": 597.38,
    "text": "aber auch immer verschieden. Also manchmal hatten wir End-to-End-Tests,"
  },
  {
    "start": 597.62,
    "end": 598.46,
    "text": "manchmal hatten wir keine."
  },
  {
    "start": 599.74,
    "end": 601.48,
    "text": "Und ich habe halt immer festgestellt, die Probleme."
  },
  {
    "start": 601.8,
    "end": 603.56,
    "text": "Also an einem Projekt, da hatten wir zum Beispiel"
  },
  {
    "start": 604.58,
    "end": 609.84,
    "text": "Jsdom und wir hatten auch Komponententests, aber man hat die immer isoliert quasi vertestet."
  },
  {
    "start": 610.959,
    "end": 616.22,
    "text": "Und das hat geklappt. Man hat Test-Coverage gesehen, aber man hatte trotzdem nicht viel Confidence."
  },
  {
    "start": 616.5,
    "end": 618.64,
    "text": "Und ich dachte mir immer, es muss irgendwie einen besseren Weg geben."
  },
  {
    "start": 618.84,
    "end": 619.62,
    "text": "Irgendwie auch einen Test."
  },
  {
    "start": 619.68,
    "end": 620.98,
    "text": "Also ich bin immer Fan davon,"
  },
  {
    "start": 622.06,
    "end": 624.14,
    "text": "Tests sollten möglichst so sein, wie ein Nutzer die bedient."
  },
  {
    "start": 624.46,
    "end": 625.56,
    "text": "Dem Nutzer ist es egal,"
  },
  {
    "start": 625.9,
    "end": 626.9,
    "text": "wenn ich jetzt eine Komponente habe,"
  },
  {
    "start": 627.2,
    "end": 628.94,
    "text": "welche Methoden die hat,"
  },
  {
    "start": 629.24,
    "end": 629.76,
    "text": "welche Namen,"
  },
  {
    "start": 630.56,
    "end": 631.62,
    "text": "es soll einfach nur funktionieren."
  },
  {
    "start": 633.499,
    "end": 634.3,
    "text": "Und dann,"
  },
  {
    "start": 634.88,
    "end": 636.98,
    "text": "ich weiß nicht, wie ich darauf gestoßen bin,"
  },
  {
    "start": 637.06,
    "end": 639.48,
    "text": "aber ich habe halt entdeckt, dass es Vitest Browser Mode gibt."
  },
  {
    "start": 639.86,
    "end": 640.26,
    "text": "Ich glaube,"
  },
  {
    "start": 641.76,
    "end": 644.66,
    "text": "Playwright hat auch angefangen, dass man das in Komponenten bringt."
  },
  {
    "start": 644.68,
    "end": 648.22,
    "text": "Also den Entwicklern von diesen Libraries, denen war auch bewusst,"
  },
  {
    "start": 648.48,
    "end": 651.44,
    "text": "die Pain Points, die Leute mit jsdom und Happy Dom hatten,"
  },
  {
    "start": 652.22,
    "end": 653.86,
    "text": "da haben sie sich überlegt, was können wir jetzt damit machen."
  },
  {
    "start": 654.98,
    "end": 656.98,
    "text": "Und da bin ich auf Vitest Browser Mode gestoßen."
  },
  {
    "start": 658.24,
    "end": 660.54,
    "text": "Und genau letztes Jahr habe ich mir zum Spaß,"
  },
  {
    "start": 660.64,
    "end": 662.58,
    "text": "wollte ich mir eine eigene Workout Tracking App zum Beispiel bauen"
  },
  {
    "start": 662.9,
    "end": 665.34,
    "text": "und wollte das komplett mit AI entwickeln."
  },
  {
    "start": 666.08,
    "end": 666.96,
    "text": "Und was mir auch bewusst war,"
  },
  {
    "start": 667.4,
    "end": 669.12,
    "text": "wenn man mit AI Dinge entwickeln möchte,"
  },
  {
    "start": 669.8,
    "end": 671.62,
    "text": "muss die Testing Strategie richtig gut sein."
  },
  {
    "start": 672.08,
    "end": 674.52,
    "text": "Also man muss am Anfang von einem Projekt Zeit investieren"
  },
  {
    "start": 674.92,
    "end": 675.62,
    "text": "und sich überlegen,"
  },
  {
    "start": 676.12,
    "end": 677.12,
    "text": "wie verteste ich denn was."
  },
  {
    "start": 677.92,
    "end": 680.98,
    "text": "Und da habe ich wieder das Browser-Mode entdeckt und es hat mir direkt gefallen."
  },
  {
    "start": 682.639,
    "end": 686.66,
    "text": "Und ich glaube auch, es hilft auch der AI ein bisschen besser, weil die können auch Bilder verstehen."
  },
  {
    "start": 687.3,
    "end": 689.18,
    "text": "Und wenn zum Beispiel etwas fehlschlägt,"
  },
  {
    "start": 689.8,
    "end": 691.3,
    "text": "kann die quasi auch das Bild sehen."
  },
  {
    "start": 692.1,
    "end": 694.28,
    "text": "Also eher sehen, was man immer auch meint mit sehen."
  },
  {
    "start": 694.42,
    "end": 696.26,
    "text": "Aber das hilft der auch ein bisschen,"
  },
  {
    "start": 696.42,
    "end": 697.5,
    "text": "um auch zu verstehen,"
  },
  {
    "start": 698.18,
    "end": 699.32,
    "text": "warum der Test fehlgeschlagen ist."
  },
  {
    "start": 703.02,
    "end": 704.08,
    "text": "Hast du denn diese,"
  },
  {
    "start": 704.4,
    "end": 708.44,
    "text": "also auch in einem Projekt, wo du quasi bestehende Tests transferiert hast,"
  },
  {
    "start": 708.83,
    "end": 712.46,
    "text": "in das neue Vorgehen, also wo du gesagt hast, die alten schmeißen wir weg,"
  },
  {
    "start": 713.3,
    "end": 714.98,
    "text": "wir machen das jetzt auf Komponentenbasis?"
  },
  {
    "start": 717.36,
    "end": 719.38,
    "text": "Noch nicht in einem echten Projekt,"
  },
  {
    "start": 719.58,
    "end": 721.28,
    "text": "aber was ich gemacht habe vor zwei, drei Wochen,"
  },
  {
    "start": 722.88,
    "end": 725.46,
    "text": "Reka UI, das ist so eine Component Library Headless,"
  },
  {
    "start": 725.76,
    "end": 727.54,
    "text": "was viel im Vue-Bereich benutzt wird,"
  },
  {
    "start": 728.14,
    "end": 732.36,
    "text": "die haben aktuell alle ihre Tests mit jsdom und da habe ich mir überlegt,"
  },
  {
    "start": 733.44,
    "end": 734.36,
    "text": "da müsste AI doch"
  },
  {
    "start": 734.4,
    "end": 735.22,
    "text": "jetzt eigentlich auch gut sein,"
  },
  {
    "start": 735.52,
    "end": 738.06,
    "text": "um das zu migrieren und habe das gemacht, weil ich auch,"
  },
  {
    "start": 738.14,
    "end": 739.36,
    "text": "ich wollte auch ein bisschen Daten haben,"
  },
  {
    "start": 740.56,
    "end": 741.52,
    "text": "sind die Tests langsamer?"
  },
  {
    "start": 741.88,
    "end": 742.62,
    "text": "Weil das ist vielleicht"
  },
  {
    "start": 742.86,
    "end": 744.54,
    "text": "der einzigste bisschen Negativpunkt,"
  },
  {
    "start": 745.38,
    "end": 746.72,
    "text": "wenn ich einen echten Browser habe, können sie ein bisschen"
  },
  {
    "start": 746.94,
    "end": 747.52,
    "text": "langsamer sein,"
  },
  {
    "start": 748.2,
    "end": 748.96,
    "text": "das habe ich dann auch gesehen,"
  },
  {
    "start": 749.22,
    "end": 751.14,
    "text": "jetzt nicht viel, aber bei einem Klick zum"
  },
  {
    "start": 751.32,
    "end": 754.94,
    "text": "Beispiel mit jsdom, HappyDOM, dauert es vielleicht 20 Millisekunden,"
  },
  {
    "start": 755.72,
    "end": 756.139,
    "text": "aber einen echten"
  },
  {
    "start": 756.14,
    "end": 758.16,
    "text": "Browser kann es 200 Millisekunden vielleicht dauern."
  },
  {
    "start": 758.38,
    "end": 759.02,
    "text": "Das kann dann sein, dass"
  },
  {
    "start": 759.12,
    "end": 762.8,
    "text": "vorher die Tests fünf Minuten gedauert haben, jetzt dauert es vielleicht 5,30."
  },
  {
    "start": 763.7,
    "end": 766.56,
    "text": "Genau und da habe ich es mir gerät, was ich halt festgestellt habe,"
  },
  {
    "start": 766.83,
    "end": 767.3,
    "text": "die Tests"
  },
  {
    "start": 767.38,
    "end": 768.02,
    "text": "werden lesbarer,"
  },
  {
    "start": 769.12,
    "end": 769.7,
    "text": "weil Reka UI,"
  },
  {
    "start": 771.61,
    "end": 772.7,
    "text": "die müssen auch sehr viele Dinge immer"
  },
  {
    "start": 772.78,
    "end": 772.94,
    "text": "mocken,"
  },
  {
    "start": 773.16,
    "end": 774.44,
    "text": "gerade wenn man ein Slider hat oder so."
  },
  {
    "start": 775.02,
    "end": 776.26,
    "text": "Viele Dinge, wo es halt kompliziert"
  },
  {
    "start": 776.3,
    "end": 777.9,
    "text": "ist, dann versuchen die Dinge zu mocken,"
  },
  {
    "start": 778.24,
    "end": 780.26,
    "text": "was natürlich Tests komplizierter"
  },
  {
    "start": 780.44,
    "end": 780.62,
    "text": "macht."
  },
  {
    "start": 782.38,
    "end": 784.179,
    "text": "Und bei Accessibility, die benutzen auch"
  },
  {
    "start": 784.18,
    "end": 785.02,
    "text": "zum testen,"
  },
  {
    "start": 785.62,
    "end": 788.24,
    "text": "aber da sie jsdom benutzen und keinen echten Browser,"
  },
  {
    "start": 789.74,
    "end": 790.36,
    "text": "hat man nicht,"
  },
  {
    "start": 791.58,
    "end": 792.76,
    "text": "Farben ist ein gutes Beispiel,"
  },
  {
    "start": 793.1,
    "end": 794.22,
    "text": "also Farben müssen ja,"
  },
  {
    "start": 794.46,
    "end": 796.98,
    "text": "Kontrast muss ja stimmen und"
  },
  {
    "start": 797.04,
    "end": 799.06,
    "text": "das kann man mit jsdom auch nicht automatisch vertesten,"
  },
  {
    "start": 799.36,
    "end": 799.76,
    "text": "aber wenn man"
  },
  {
    "start": 799.98,
    "end": 802.04,
    "text": "Vitest Browser Mode benutzt und dann eine Komponente hat,"
  },
  {
    "start": 803.14,
    "end": 803.8,
    "text": "wie ein Date Picker,"
  },
  {
    "start": 804.02,
    "end": 804.26,
    "text": "sieht man"
  },
  {
    "start": 804.36,
    "end": 804.72,
    "text": "dann direkt,"
  },
  {
    "start": 804.94,
    "end": 805.0,
    "text": "okay,"
  },
  {
    "start": 805.5,
    "end": 807.6,
    "text": "hey, deine Farben passen nicht. Du hast die irgendwie weiß als"
  },
  {
    "start": 807.74,
    "end": 809.7,
    "text": "Hintergrund und dann hast du so eine Art Grau,"
  },
  {
    "start": 810.02,
    "end": 810.84,
    "text": "das kann keiner lesen."
  },
  {
    "start": 814.1,
    "end": 817.54,
    "text": "Und da dachte ich mir, okay, das ist sehr gut,"
  },
  {
    "start": 818.14,
    "end": 818.42,
    "text": "perfekt."
  },
  {
    "start": 820.36,
    "end": 822.36,
    "text": "Ich weiß aber auch, dass er nicht so ganz bekannt ist."
  },
  {
    "start": 824.36,
    "end": 827.12,
    "text": "Wie sieht es denn da mit der Möglichkeit aus, das auch zu parallelisieren?"
  },
  {
    "start": 827.18,
    "end": 830.34,
    "text": "Du hast ja gesagt, er nimmt dann quasi eine Komponente, dann macht er den Datepicker,"
  },
  {
    "start": 830.44,
    "end": 832.3,
    "text": "dann macht er die Tabelle als nächstes und sowas."
  },
  {
    "start": 832.74,
    "end": 836.32,
    "text": "Gibt es da auch gute Möglichkeiten, das ein bisschen in die Breite zu bringen?"
  },
  {
    "start": 836.52,
    "end": 836.68,
    "text": "Ja,"
  },
  {
    "start": 837.26,
    "end": 838.92,
    "text": "man kann das einstellen bei Vitest."
  },
  {
    "start": 838.98,
    "end": 841.76,
    "text": "Wenn man einen Prozessor hat, der mehr Kerne hat,"
  },
  {
    "start": 842.03,
    "end": 843.58,
    "text": "kann man auch gleichzeitig Testfahrer werden."
  },
  {
    "start": 843.64,
    "end": 847.7,
    "text": "Und der macht das dann halt. Der sieht dann die Tests und da muss sich eigentlich nicht darum kümmern."
  },
  {
    "start": 847.92,
    "end": 852.12,
    "text": "Also es ist jetzt nicht so, dass immer nur ein Test, sondern es kann dann sein, dass vier Komponenten"
  },
  {
    "start": 852.32,
    "end": 854.78,
    "text": "quasi gleichzeitig vertestet werden,"
  },
  {
    "start": 855.63,
    "end": 856.48,
    "text": "damit es auch schneller ist."
  },
  {
    "start": 858.06,
    "end": 863.28,
    "text": "Jetzt ist es ja so, es gibt ja so ein bisschen so eine Idee, die man sich ja alles, was du auf der Oberfläche machst,"
  },
  {
    "start": 863.34,
    "end": 865.3,
    "text": "Das Drama,"
  },
  {
    "start": 865.46,
    "end": 867.74,
    "text": "dass das vielleicht dann doch mal irgendwie gerade nicht richtig"
  },
  {
    "start": 867.86,
    "end": 871.66,
    "text": "rendert oder irgendwie zu langsam ist und man dann nicht hinterherkommt und dadurch"
  },
  {
    "start": 871.76,
    "end": 875.8,
    "text": "so flaky Tests irgendwo entstehen, warum man ja auch auf einer Ebene drunter geht."
  },
  {
    "start": 876.56,
    "end": 878.38,
    "text": "Und wie siehst du damit auf?"
  },
  {
    "start": 878.38,
    "end": 881.12,
    "text": "Wie robust ist denn das, wenn ich, wenn ich mit Vitest teste?"
  },
  {
    "start": 882.2,
    "end": 884.7,
    "text": "Ja, ähnlich wie Playwright, glaube ich, das ist ja auch so, dass man,"
  },
  {
    "start": 886.11,
    "end": 887.08,
    "text": "wenn man ein Next Pack macht,"
  },
  {
    "start": 888.12,
    "end": 890.62,
    "text": "dann wartet der ein bisschen quasi asynchron."
  },
  {
    "start": 891.42,
    "end": 896.6,
    "text": "Und klar muss man ein Timeout eingeben und da hat man die Probleme nicht."
  },
  {
    "start": 896.66,
    "end": 897.96,
    "text": "Ich glaube, wo man Probleme hat,"
  },
  {
    "start": 898.68,
    "end": 900.62,
    "text": "ist wenn sich Selektoren zum Beispiel verändern."
  },
  {
    "start": 901.48,
    "end": 903.54,
    "text": "Aber sobald das einmal stimmt und man einen Test hat,"
  },
  {
    "start": 904.18,
    "end": 905.78,
    "text": "hat man Flaky-Probleme nicht."
  },
  {
    "start": 906.52,
    "end": 907.18,
    "text": "Man kann natürlich,"
  },
  {
    "start": 907.88,
    "end": 911.34,
    "text": "wenn man einen Test hat, kann man auch so eine Art Retry automatisch einbauen."
  },
  {
    "start": 912.08,
    "end": 913.96,
    "text": "Aber mit der Alpha muss man gucken, warum hat man das denn überhaupt?"
  },
  {
    "start": 915.5,
    "end": 917.92,
    "text": "Aber da habe ich auch ein bisschen umgespielt mit dem Thema."
  },
  {
    "start": 917.92,
    "end": 919.24,
    "text": "Da kann auch AI ein bisschen helfen."
  },
  {
    "start": 919.46,
    "end": 922.46,
    "text": "Also man kann, wenn man das Ganze in GitHub-Actions laufen lässt,"
  },
  {
    "start": 922.7,
    "end": 923.3,
    "text": "in der Pipeline,"
  },
  {
    "start": 924.32,
    "end": 926.8,
    "text": "kann quasi ein Agent, wenn sich der Selektor verändert hat,"
  },
  {
    "start": 927.1,
    "end": 929.5,
    "text": "der kann das automatisch beheben und dann committen."
  },
  {
    "start": 929.78,
    "end": 933.34,
    "text": "So und das ist, glaube ich, auch eine Idee."
  },
  {
    "start": 933.72,
    "end": 934.78,
    "text": "Aber insgesamt..."
  },
  {
    "start": 934.78,
    "end": 937.94,
    "text": "Das ist natürlich immer die Frage, lässt man das so ein bisschen selbst heilen?"
  },
  {
    "start": 938.2,
    "end": 942.32,
    "text": "Ja, das kann natürlich auch sein, dass man dadurch einen Fehler quasi einfach wegarbeitet."
  },
  {
    "start": 942.88,
    "end": 943.64,
    "text": "Stimmt, stimmt."
  },
  {
    "start": 944.12,
    "end": 945.8,
    "text": "Da muss man mal ein bisschen Acht geben darauf."
  },
  {
    "start": 947.66,
    "end": 948.28,
    "text": "Ist das denn,"
  },
  {
    "start": 948.66,
    "end": 951.5,
    "text": "also dieses Framework, du sagst,"
  },
  {
    "start": 951.94,
    "end": 953.08,
    "text": "ist das jetzt"
  },
  {
    "start": 953.08,
    "end": 956.68,
    "text": "schon Jahre gereift oder ist das relativ neu und wie ist denn da so die"
  },
  {
    "start": 956.9,
    "end": 958.66,
    "text": "Community-Arbeit dahinter? Gibt es da noch immer,"
  },
  {
    "start": 959.28,
    "end": 960.88,
    "text": "wird da viel im Hintergrund noch"
  },
  {
    "start": 961.06,
    "end": 961.5,
    "text": "neu gemacht?"
  },
  {
    "start": 961.7,
    "end": 963.52,
    "text": "Wie ist denn das, also die Open-Source-Werkzeug?"
  },
  {
    "start": 963.68,
    "end": 963.74,
    "text": "Ja,"
  },
  {
    "start": 963.92,
    "end": 964.02,
    "text": "genau."
  },
  {
    "start": 964.36,
    "end": 967.0,
    "text": "Also insgesamt hat sich halt Web-Entwicklung,"
  },
  {
    "start": 967.66,
    "end": 968.32,
    "text": "falls jemand sagt,"
  },
  {
    "start": 968.66,
    "end": 969.78,
    "text": "früher hat man Webpack benutzt,"
  },
  {
    "start": 969.88,
    "end": 971.48,
    "text": "weil man hat ja, wenn man React oder Vue hat,"
  },
  {
    "start": 972.27,
    "end": 974.98,
    "text": "braucht man am Ende JavaScript quasi. Einer muss das bauen."
  },
  {
    "start": 976.319,
    "end": 977.6,
    "text": "Und da benutzen wir jetzt Vite,"
  },
  {
    "start": 977.94,
    "end": 980.62,
    "text": "weil es schneller ist, auch einfacher zu konfigurieren."
  },
  {
    "start": 982.939,
    "end": 986.36,
    "text": "Und Vite ist Teil von VoidZero, das ist eine Firma,"
  },
  {
    "start": 986.62,
    "end": 989.12,
    "text": "wo auch Evan You gegründet hat."
  },
  {
    "start": 989.42,
    "end": 991.72,
    "text": "Und Vitest ist auch Teil davon. Es gibt auch einen Linter,"
  },
  {
    "start": 991.96,
    "end": 992.82,
    "text": "der ist auch Teil davon."
  },
  {
    "start": 993.62,
    "end": 995.16,
    "text": "Da ist OXLint, kann ich auch empfehlen."
  },
  {
    "start": 996.36,
    "end": 999.6,
    "text": "Davor gab es ESLint, die haben jetzt quasi Rust benutzt, jetzt läuft der schneller."
  },
  {
    "start": 1001.06,
    "end": 1002.88,
    "text": "Und das gibt es schon seit zwei, drei Jahren."
  },
  {
    "start": 1004.18,
    "end": 1006.72,
    "text": "Aber wie ich auch gemeint habe, ist noch nicht so bekannt."
  },
  {
    "start": 1006.96,
    "end": 1010.02,
    "text": "Also es braucht irgendwie ein bisschen mehr Werbung."
  },
  {
    "start": 1010.1,
    "end": 1011.86,
    "text": "Deswegen wollte ich auch diesen Talk geben."
  },
  {
    "start": 1011.86,
    "end": 1011.96,
    "text": "Ja,"
  },
  {
    "start": 1012.25,
    "end": 1017.46,
    "text": "ok, als Madman. Das sollte man sich mal anschauen, wenn man in dem Kontext..."
  },
  {
    "start": 1017.48,
    "end": 1023.26,
    "text": "Vor allem, wenn man ein Frontend-Projekt hat und aktuell jsdom oder HappyDOM benutzt"
  },
  {
    "start": 1023.84,
    "end": 1029.76,
    "text": "und die Entwickler auch Schwierigkeiten haben mit den Tests und es einem auch wichtig ist,"
  },
  {
    "start": 1029.8,
    "end": 1034.02,
    "text": "dass man gute Accessibility zum Beispiel auch hat und auch Visual Regression Test ist ja auch oft"
  },
  {
    "start": 1034.02,
    "end": 1036.48,
    "text": "ein Beispiel, wenn ich eine eigene Core-UI-Library habe,"
  },
  {
    "start": 1037.38,
    "end": 1039.06,
    "text": "möchte ich nicht, dass meine Designerin,"
  },
  {
    "start": 1039.319,
    "end": 1044.079,
    "text": "wenn ich was an einem Button verändere, dass sie jeden Button in meiner Webseite findet mit"
  },
  {
    "start": 1044.24,
    "end": 1044.86,
    "text": "allen Varianten."
  },
  {
    "start": 1045.48,
    "end": 1046.04,
    "text": "Das möchte ich nicht."
  },
  {
    "start": 1046.56,
    "end": 1049.42,
    "text": "Da können wir auch Vitest Browser Mode benutzen und dann"
  },
  {
    "start": 1049.64,
    "end": 1055.179,
    "text": "machen wir ein Bild quasi und haben alle unsere Button als Variante und können dann es auch immer"
  },
  {
    "start": 1055.08,
    "end": 1058.02,
    "text": "Also ein echtes Bild und sehen dann, wenn sich was geändert hat,"
  },
  {
    "start": 1059.0,
    "end": 1059.64,
    "text": "was es fehlschlägt."
  },
  {
    "start": 1060.4,
    "end": 1064.28,
    "text": "Und das hilft einem einfacher Designs anzupassen."
  },
  {
    "start": 1065.66,
    "end": 1068.9,
    "text": "Und wenn man das nicht hat, ist es selbst eine einfache Änderung bei dem Modal."
  },
  {
    "start": 1069.94,
    "end": 1076.2,
    "text": "Kann halt nervig sein, weil dann eine Website hat vielleicht 15 oder 20 verschiedene Modal-Varianten."
  },
  {
    "start": 1076.5,
    "end": 1080.72,
    "text": "Und ja, ist auch fehleranfällig, wenn man jedes manuell rausklicken muss."
  },
  {
    "start": 1080.72,
    "end": 1082.62,
    "text": "Dann muss man vielleicht auch Screenshots machen und so weiter."
  },
  {
    "start": 1083.08,
    "end": 1084.62,
    "text": "Aber da gibt es halt bessere Möglichkeiten."
  },
  {
    "start": 1084.84,
    "end": 1086.14,
    "text": "Ich würde es aber nicht für alles benutzen."
  },
  {
    "start": 1086.3,
    "end": 1088.74,
    "text": "Also ich würde nicht jetzt jede Webseite quasi in echten Screenshot machen,"
  },
  {
    "start": 1089.36,
    "end": 1089.44,
    "text": "weil,"
  },
  {
    "start": 1089.75,
    "end": 1090.58,
    "text": "wie du vorhin gemeint hast,"
  },
  {
    "start": 1090.78,
    "end": 1091.8,
    "text": "da hast du sehr viel Flakiness."
  },
  {
    "start": 1092.3,
    "end": 1096.08,
    "text": "Also musst du für die Core-UI-Library würde ich mir das benutzen"
  },
  {
    "start": 1096.89,
    "end": 1098.9,
    "text": "und vielleicht für sehr wichtige Screens."
  },
  {
    "start": 1100.84,
    "end": 1101.24,
    "text": "Aber ja,"
  },
  {
    "start": 1101.73,
    "end": 1103.86,
    "text": "man muss halt ausprobieren und dann bekommt man auch mit,"
  },
  {
    "start": 1103.96,
    "end": 1105.92,
    "text": "okay, dieser eine Test, der schlägt so oft fail,"
  },
  {
    "start": 1106.71,
    "end": 1107.66,
    "text": "da macht es vielleicht keinen Sinn,"
  },
  {
    "start": 1107.81,
    "end": 1109.08,
    "text": "einen Regression-Test zu haben."
  },
  {
    "start": 1109.919,
    "end": 1110.86,
    "text": "Du hast vorher gesagt,"
  },
  {
    "start": 1111.48,
    "end": 1114.04,
    "text": "es ist ein bisschen langsamer als das bisherige Vorgehen,"
  },
  {
    "start": 1114.44,
    "end": 1115.36,
    "text": "einfach das auch erinnern muss,"
  },
  {
    "start": 1115.58,
    "end": 1118.24,
    "text": "aber marginal, also so wie es jetzt rausgeht."
  },
  {
    "start": 1118.64,
    "end": 1119.04,
    "text": "Gibt es denn irgendwas,"
  },
  {
    "start": 1119.2,
    "end": 1122.64,
    "text": "was dir in dem neuen Konstrukt da fehlt,"
  },
  {
    "start": 1122.82,
    "end": 1123.3,
    "text": "wo du sagst,"
  },
  {
    "start": 1124.18,
    "end": 1129.74,
    "text": "das wäre jetzt eigentlich schön, wenn das noch gehen würde oder wo man dann doch wieder andere Zugänge braucht dazu?"
  },
  {
    "start": 1130.44,
    "end": 1132.68,
    "text": "Ich glaube noch nicht. Ich glaube das Einzige,"
  },
  {
    "start": 1133.26,
    "end": 1136.52,
    "text": "was mir fehlt, was ich vorhin gemeint habe, ist, dass Leute mehr benutzen."
  },
  {
    "start": 1137.34,
    "end": 1138.98,
    "text": "Und ich glaube auch wenn es die Leute mehr benutzen,"
  },
  {
    "start": 1139.92,
    "end": 1142.12,
    "text": "dann entdeckt man vielleicht doch Features, die man noch gerne hätte."
  },
  {
    "start": 1142.36,
    "end": 1143.96,
    "text": "Aber da ist auch Open Source Projekt,"
  },
  {
    "start": 1144.58,
    "end": 1146.72,
    "text": "man kann immer ein Issue schreiben, die sind auch dankbar."
  },
  {
    "start": 1148.2,
    "end": 1150.66,
    "text": "Vitest 5 kam zum Beispiel auch vor ein, zwei Monaten raus,"
  },
  {
    "start": 1150.9,
    "end": 1155.76,
    "text": "hat der Maintainer ein Issue geschrieben, hat gesagt, hier habt ihr Feedback, was sollen wir hinzufügen?"
  },
  {
    "start": 1155.86,
    "end": 1155.92,
    "text": "Also,"
  },
  {
    "start": 1156.19,
    "end": 1156.86,
    "text": "oder die haben auch Discord."
  },
  {
    "start": 1157.55,
    "end": 1160.14,
    "text": "Also die Open Source Community ist auch froh darüber."
  },
  {
    "start": 1160.34,
    "end": 1162.92,
    "text": "Und das kann ich auch jedem empfehlen,"
  },
  {
    "start": 1164.45,
    "end": 1165.32,
    "text": "wenn er Feedback hat,"
  },
  {
    "start": 1165.78,
    "end": 1166.58,
    "text": "Issue zu schreiben."
  },
  {
    "start": 1167.47,
    "end": 1168.98,
    "text": "Und vielleicht auch wenn Unternehmen,"
  },
  {
    "start": 1169.18,
    "end": 1170.48,
    "text": "das ist ja auch immer ein Problem bei Open Source,"
  },
  {
    "start": 1171.04,
    "end": 1174.3,
    "text": "vielleicht auch die Sponsoren, die benutzen alle Open Source Produkte,"
  },
  {
    "start": 1175.22,
    "end": 1178.68,
    "text": "aber welches Unternehmen gibt dann ein bisschen Geld dafür auch zurück?"
  },
  {
    "start": 1179.18,
    "end": 1180.22,
    "text": "Das ist ja immer wieder ein Thema."
  },
  {
    "start": 1180.48,
    "end": 1183.76,
    "text": "Gerade Open Source ist jetzt auch durch KI ja ganz schön unter Druck,"
  },
  {
    "start": 1183.9,
    "end": 1188.2,
    "text": "weil natürlich auch viele Issues gemeldet werden, die Bot-created sind."
  },
  {
    "start": 1188.2,
    "end": 1195.16,
    "text": "Das ist natürlich auch gerade ein schwierigeres Umfeld, als nur vor ein paar Jahren."
  },
  {
    "start": 1195.9,
    "end": 1199.06,
    "text": "Also, aber hier der Aufruf an die Community, sich das auch mal anzuschauen."
  },
  {
    "start": 1199.21,
    "end": 1203.4,
    "text": "Und wir werden ja auch deine Kontaktdaten in den Podcasts und in den Show Notes haben."
  },
  {
    "start": 1203.52,
    "end": 1207.78,
    "text": "Vielleicht kommt da mal ein Austausch zustande, gibt eine neue User Group für Vitest,"
  },
  {
    "start": 1208.73,
    "end": 1208.86,
    "text": "wo"
  },
  {
    "start": 1208.98,
    "end": 1209.78,
    "text": "man dann zusammenkommt."
  },
  {
    "start": 1209.9,
    "end": 1213.6,
    "text": "Oder vielleicht nächstes Jahr auf der TACON und dann auch noch einmal gemeinsam über"
  },
  {
    "start": 1213.68,
    "end": 1214.54,
    "text": "das Thema zu sprechen."
  },
  {
    "start": 1216.2,
    "end": 1216.46,
    "text": "Super."
  },
  {
    "start": 1216.96,
    "end": 1217.16,
    "text": "Alexander,"
  },
  {
    "start": 1217.38,
    "end": 1217.96,
    "text": "vielen lieben Dank."
  },
  {
    "start": 1218.46,
    "end": 1223.08,
    "text": "dass du da warst, dass du das mal geteilt hast. Hier findet es immer toll neues Konzept, neue Ideen."
  },
  {
    "start": 1223.35,
    "end": 1227.68,
    "text": "Dazu bringen wir mit einen Erfahrungsbericht auch und das kommt ja bei dir first hand aus der Praxis."
  },
  {
    "start": 1228.18,
    "end": 1228.84,
    "text": "Das finde ich super."
  },
  {
    "start": 1229.34,
    "end": 1232.74,
    "text": "Danke, dass du da warst. Ich wünsche dir noch viel Spaß auf der Konferenz und bis bald."
  },
  {
    "start": 1233.12,
    "end": 1233.2,
    "text": "Ja,"
  },
  {
    "start": 1233.42,
    "end": 1233.9,
    "text": "danke dir auch."
  },
  {
    "start": 1234.1,
    "end": 1234.38,
    "text": "Bis bald."
  },
  {
    "start": 1234.96,
    "end": 1236.68,
    "text": "[Musik]"
  }
]