Selenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten
Selen hat eine zwei Jahrzehnte lange Geschichte und ein riesiges Ökosystem. Playwright ist neuer und enthält mehr Out-of-the-Box. Vergleichen Sie sie zu den wichtigen Dingen des Alltags, lesen Sie einen Test in beiden und entscheiden Sie mit Zuversicht.
- Selenium ist eine ausgereifte Browser-Automatisierungsbibliothek, die auf dem W3C-WebDriver-Standard basiert.
- Playwright ist ein neueres Framework mit automatischem Warten, Ablaufverfolgung und einem Testläufer.
- Bei einem neuen Webprojekt ist Playwright in der Regel schneller produktiv.
- Selenium bleibt eine gute Wahl für große bestehende Suiten, umfassendere Sprachanforderungen und Tests in Browsern echter Anbieter.
Wenn Sie ein Testautomatisierungsprojekt starten, wird schnell die Frage Selenium vs. Playwright auftauchen. In den Suchergebnissen mag es wie eine geklärte Angelegenheit klingen, aber die richtige Antwort hängt von Ihrem Team, Ihren vorhandenen Tests und den Browsern ab, die Sie unterstützen müssen.
Dieser Leitfaden vergleicht sie anhand der Dinge, die Sie bei der täglichen Arbeit tatsächlich spüren werden. Die Codebeispiele zeigen den typischen Stil jedes Tools und wurden für diesen Artikel nicht ausgeführt. Wir vermeiden auch die Angabe von Geschwindigkeitsprozentsätzen, da die veröffentlichten Benchmarks stark variieren und häufig von Anbietern stammen. Messen Sie anhand Ihrer eigenen Anwendung, ob die Geschwindigkeit ausschlaggebend ist.
Die kurze Antwort
Wählen Sie Playwright für die meisten neuen Webtestprojekte, insbesondere wenn Ihr Team in JavaScript, TypeScript, Python, Java oder .NET arbeiten kann. Sie erhalten sofort mehr Funktionen und benötigen weniger Zeit für die Infrastruktur und kurze Wartezeiten.
Wählen Sie Selenium, wenn Sie bereits über eine große, funktionierende Suite verfügen, wenn Sie eine Sprache benötigen, die Playwright nicht offiziell unterstützt, wie etwa Ruby, oder wenn Sie echte Browser-Builds und Plattformen testen müssen, die über ein Selenium-Grid oder eine Geräte-Cloud verfügbar sind.
Selenium vs. Dramatiker nebeneinander
| Aspekt | Selen | Dramatiker |
|---|---|---|
| Erstveröffentlichung | 2004 | 2020, von Microsoft |
| Was es ist | Bibliothek zur Browserautomatisierung | Framework, mit einem Runner in Node.js |
| Sprachen | Java, Python, C#, Ruby, JavaScript | TypeScript, JavaScript, Python, Java, .NET |
| Browser | Chrome, Firefox, Edge, Safari | Chromium, Firefox, WebKit |
| Warten | Explizite Wartezeiten beim Schreiben | Automatisches Warten eingebaut |
| Testläufer | Bringen Sie Ihre eigenen mit, z. B. Pytest oder JUnit | Enthalten für Node.js, Pytest-Plugin für Python |
| Parallelläufe | Selenium Grid oder das Test-Framework | In seinen Läufer eingebaut |
| Debuggen | Framework-Protokolle, von Ihnen hinzugefügte Screenshots | Trace Viewer, UI-Modus, Codegen |
| Netzwerkverspottung | Begrenzte, oft zusätzliche Werkzeuge | Eingebaut |
| Gemeinschaft | Sehr groß und seit langem etabliert | Groß und schnell wachsend |
Architektur: wie jeder mit dem Browser kommuniziert
Selenium sendet Befehle mithilfe des W3C WebDriver-Protokolls, einem formalen Standard. Ihr Code kommuniziert mit einem Treiber wie ChromeDriver, der den Browser steuert, wobei jeder Befehl normalerweise eine separate HTTP-Anfrage ist. Da Browser-Anbieter diesen Standard unterstützen, ist er weitgehend kompatibel. Ein neueres Protokoll, WebDriver BiDi, erweitert den Standard um bidirektionale Kommunikation und Ereignis-Streaming.
Playwright hält eine dauerhafte Verbindung zum Browser aufrecht und verwendet seine eigenen gepatchten Builds von Chromium, Firefox und WebKit. Da die Verbindung direkt und bidirektional ist, kann sie auf Browserereignisse reagieren und jeder Test kann in seinem eigenen, kompakten Browserkontext ausgeführt werden. Aus diesem Grund bewerten die meisten Vergleiche Playwright als schneller, obwohl der tatsächliche Abstand von Ihrer Anwendung und Ihren Tests abhängt.
Ein Test in beiden Tools
Hier ist derselbe in Python geschriebene Anmeldetest für eine öffentliche Übungsseite.
Selen
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def test_login(driver):
driver.get("https://the-internet.herokuapp.com/login")
driver.find_element(By.ID, "username").send_keys("tomsmith")
driver.find_element(By.ID, "password").send_keys("SuperSecretPassword!")
driver.find_element(By.CSS_SELECTOR, "button[type=submit]").click()
message = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.ID, "flash"))
)
assert "You logged into a secure area" in message.text
Sie benötigen außerdem eine Vorrichtung, um den Treiber zu erstellen und zu schließen, wie wir in unserem Selenium Python-Tutorial zeigen.
Dramatiker
from playwright.sync_api import Page, expect
def test_login(page: Page):
page.goto("https://the-internet.herokuapp.com/login")
page.get_by_label("Username").fill("tomsmith")
page.get_by_label("Password").fill("SuperSecretPassword!")
page.get_by_role("button", name="Login").click()
expect(page.locator("#flash")).to_contain_text("You logged into a secure area")
Dies basiert auf dem Plugin pytest-playwright, das das Gerät page bereitstellt. Es ist kürzer, hauptsächlich weil die Wartezeit in expect integriert ist und weil Locators wie get_by_role die Seite so beschreiben, wie ein Benutzer sie sieht. Mit Selenium können Sie diesen Boilerplate mit Helfern und dem Page Object Model, das wir in beiden Tools empfehlen, erheblich reduzieren.
Warten und flockige Tests
Das Timing ist die häufigste Ursache für unzuverlässige Browsertests und hier unterscheiden sich die beiden Tools im Alltagsgebrauch am meisten.
In Selenium sind Sie für die Synchronisierung verantwortlich. Explizites Warten funktioniert gut, aber irgendjemand muss sich überall daran erinnern, und Teams, die es vergessen, greifen oft auf time.sleep zurück. Unser Leitfaden zu Selenium-Wartezeiten erklärt, wie man das richtig macht.
In Playwright prüfen Aktionen automatisch, ob ein Element sichtbar, stabil, aktiviert und in der Lage ist, Ereignisse zu empfangen, bevor sie handeln. Web-First-Assertions werden bis zu einer Zeitüberschreitung wiederholt. Sie können immer noch unzuverlässige Tests schreiben, zum Beispiel mit schlechten Testdaten, aber eine Hauptursache für Probleme wird standardmäßig behoben.
Browser und Sprachen
Hier hat Selen einen echten Vorteil. Der WebKit-Build von Playwright ähnelt der Engine von Safari, ist jedoch nicht dasselbe wie Safari auf einem Mac oder iPhone. Wenn echtes Safari-Verhalten von entscheidender Bedeutung ist, bringt Sie Selenium mit SafariDriver oder eine echte Geräte-Cloud näher an das heran, was Ihre Benutzer tatsächlich ausführen.
Ebenso testet Playwright seine gebündelten Browserversionen, kann aber auch installierte Chrome- und Edge-Kanäle steuern. Selenium steuert die von Ihnen installierten Browser, was hilfreich ist, wenn Sie bestimmte Versionen unterstützen müssen. Für native mobile Apps gibt es keine vollständige Antwort: Appium, das auf WebDriver-Konzepten basiert, ist das übliche Tool.
Was Sprachen betrifft, unterstützt Selenium offiziell Ruby und hat eine sehr lange Geschichte in Java-Teams. Die Node.js-Version von Playwright verfügt außerdem über die umfassendsten Tools, da der vollständige Testläufer vorhanden ist. Andere Sprachen erhalten die Kernbibliothek und integrieren sie in ihre eigenen Test-Frameworks.
Debuggen
Dramatiker hat hier einen klaren Vorsprung. Sein Trace-Viewer zeichnet jede Aktion zusammen mit DOM-Snapshots, Netzwerkaufrufen und Konsolenprotokollen auf, sodass Sie einen fehlgeschlagenen CI-Lauf nach dessen Abschluss Schritt für Schritt durchgehen können. Sein UI-Modus und Codegen helfen Ihnen auch dabei, Tests schneller zu schreiben. Sehen Sie sich unser Playwright-Tutorial für Anfänger an, um zu erfahren, wie Sie sie verwenden.
Mit Selenium stellen Sie dies selbst zusammen, aus Screenshots von Fehlern, Browserprotokollen, Videos von Ihrem Grid-Anbieter und Berichten von Ihrem Test-Framework. Es funktioniert gut und viele Teams verfügen über hervorragende Setups, aber der Aufbau ist mühsam.
Netzwerk- und API-Funktionen
Playwright kann Netzwerkanfragen mit wenigen Codezeilen abfangen und verspotten, was zum Testen von Fehlerzuständen nützlich ist:
page.route("**/api/orders", lambda route: route.fulfill(status=500))
Es enthält auch einen API-Anfrage-Client, sodass Sie Testdaten über eine API erstellen können, bevor Sie den Browser steuern. Selenium 4 hat über das Chrome DevTools-Protokoll und BiDi einige Netzwerkfunktionen hinzugefügt, aber Unterstützung und Komfort variieren je nach Browser und Sprache. Viele Selenium-Benutzer fügen einen Proxy oder eine separate HTTP-Bibliothek hinzu, wie in API-Testtools.
Tipp: Welches Tool Sie auch wählen, konzentrieren Sie sich bei Browsertests auf kritische Journeys und verschieben Sie Details auf niedrigere Ebenen. Eine kleinere Suite ist wichtiger als ein schnelleres Tool. Sehen Sie sich unsere Best Practices für End-to-End-Tests an.
Parallele Läufe und Skalierung
Der Runner von Playwright verwaltet parallele Worker und Sharding über CI-Maschinen hinweg mit einfachen Optionen. Browserkontexte sind kostengünstig, sodass für die Isolierung nicht für jeden Test ein ganz neuer Browser erforderlich ist.
Selenium verwendet Selenium Grid, um Tests auf Maschinen und Browserversionen zu verteilen, und Test-Frameworks kümmern sich um die Parallelität. Grid ist eher lauffähig, hat sich aber in sehr großem Maßstab bewährt und wird von vielen kommerziellen Geräte-Clouds direkt unterstützt.
Sollten Sie von Selenium zu Playwright migrieren?
Nicht automatisch. Eine funktionierende Suite ist wertvoll und eine Neufassung kostet Zeit, um das Produkt zu testen. Stellen Sie zunächst diese Fragen:
- Gibt es ein messbares Problem? Unzuverlässige Tests oder langsames Debuggen sind gute Gründe. „Es ist neuer“ ist es nicht.
- Wie groß ist die Suite? Hundert Tests können verschoben werden. Zehntausend ist ein Großprojekt.
- Sind Ihre Seitenobjekte sauber? Gute Abstraktionen machen den Umzug deutlich kostengünstiger.
- Verlassen Sie sich auf Selenium-spezifische Funktionen? Überprüfen Sie zuerst Ihre Netz- und Geräteanforderungen.
Wenn Sie sich bewegen, gehen Sie schrittweise vor. Schreiben Sie neue Tests in Playwright, migrieren Sie zuerst die fehlerhaftesten alten Tests und führen Sie beide nebeneinander aus, bis die alte Suite klein genug ist, um außer Betrieb genommen zu werden. Übersetzen Sie Tests nicht zeilenweise, da dadurch Schlafplätze und alte Locators übernommen werden. Vermeiden Sie auch die unter Testautomatisierungsfehler behandelten Fehler.
So wählen Sie aus
| Ihre Situation | Vernünftige Wahl |
|---|---|
| Neue Web-App, modernes Team | Dramatiker |
| Große stabile Selenium-Suite | Bleiben Sie bei Selenium und verbessern Sie es |
| Das Team schreibt Ruby | Selen |
| Eine echte Safari-Abdeckung ist von entscheidender Bedeutung | Selen oder eine Gerätewolke |
| Unzuverlässige Tests und hartes CI-Debugging | Versuchen Sie es mit Playwright in einer Pilotfolge |
| Native mobile Apps | Appium |
Am besten führen Sie einen kurzen Pilotversuch durch. Automatisieren Sie Ihre drei schwierigsten Vorgänge in jedem Tool mit Ihrer eigenen Anwendung, in Ihrem eigenen CI und vergleichen Sie den Code, die Geschwindigkeit und wie einfach Sie einen Fehler beheben können. Eine Woche an Beweisen übertrifft jeden Vergleichsartikel, einschließlich dieses. Wenn Cypress auch auf Ihrer engeren Auswahlliste steht, lesen Sie Playwright vs Cypress.
Fazit
Dramatiker ist in der Regel der einfachere Ausgangspunkt, und Selenium bleibt ein verlässlicher Standard mit großer Reichweite. Beides wird eine schlecht gestaltete Testsuite nicht retten. Wählen Sie basierend auf Ihren tatsächlichen Einschränkungen, investieren Sie in stabile Locators und gute Testdaten und konzentrieren Sie Ihre Suite auf das, was für Ihre Benutzer am wichtigsten ist.
Häufige Fragen
Ist Dramatiker besser als Selenium?
Für viele neue Webprojekte ja, dank automatischer Wartefunktion und integrierter Tools. Selenium eignet sich möglicherweise besser für bestehende Suiten, umfassendere Sprachanforderungen oder bestimmte echte Browser.
Ist Playwright schneller als Selenium?
Aufgrund der dauerhaften Browserverbindung und der kompakten Kontexte wird es allgemein als schneller gemeldet. Der tatsächliche Unterschied hängt von Ihrer App ab. Messen Sie ihn daher anhand Ihrer eigenen Tests.
Ist Selen veraltet?
Nein. Selenium wird aktiv gepflegt und basiert auf einem W3C-Standard und ist immer noch weit verbreitet. Selenium 4 und WebDriver BiDi modernisieren es weiter.
Kann Playwright echtes Safari testen?
Playwright testet mit einem eigenen WebKit-Build, der der Engine von Safari ähnelt, aber nicht identisch ist. Für echtes Safari- oder iOS-Verhalten verwenden Sie echte Geräte oder SafariDriver.
Sollte ein Anfänger Selenium oder Playwright lernen?
Für viele Anfänger ist es einfacher, mit Dramatiker anzufangen. Selen taucht immer noch in vielen Stellenangeboten auf, schauen Sie sich also Ihren lokalen Markt an. Die Kernkonzepte werden zwischen ihnen übertragen.
Lerne weiter
Benötigen Sie Hilfe beim Testen, WordPress oder SEO?
Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.
Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung
Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.
KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert
KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…
Artikel lesen →DevOpsErklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht
Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…
Artikel lesen →SoftwareentwicklungAPI-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern
API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…
Artikel lesen →TestautomatisierungSpott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen
Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …
Artikel lesen →SoftwaretestsCode-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet
Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…
Artikel lesen →Datenbanken & SQLDELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck
DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…
Artikel lesen →Datenbanken & SQLErklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen
SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…
Artikel lesen →SoftwareentwicklungTypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler
TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…
Artikel lesen →SoftwareentwicklungPython *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen
Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…
Artikel lesen →SoftwareentwicklungPython-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet
Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…
Artikel lesen →Künstliche IntelligenzWas sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können
Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…
Artikel lesen →DevOpsÜberwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces
Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…
Artikel lesen →DevOpsDocker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten
Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…
Artikel lesen →TestautomatisierungTDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte
TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…
Artikel lesen →SoftwaretestsBenutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele
Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…
Artikel lesen →Datenbanken & SQLErklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen
SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…
Artikel lesen →Datenbanken & SQLSQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler
SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…
Artikel lesen →SoftwareentwicklungWas ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt
Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…
Artikel lesen →SoftwareentwicklungErklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen
Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…
Artikel lesen →SoftwareentwicklungErklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen
Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…
Artikel lesen →Künstliche IntelligenzWas sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt
Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…
Artikel lesen →DevOpsBlau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl
Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…
Artikel lesen →TestautomatisierungFlaky-Tests: Was sie verursacht und wie man sie endgültig behebt
Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…
Artikel lesen →SoftwaretestsLasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele
Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…
Artikel lesen →SoftwaretestsTestfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet
Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…
Artikel lesen →Datenbanken & SQLSQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben
An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…
Artikel lesen →Datenbanken & SQLSQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung
SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…
Artikel lesen →SoftwareentwicklungTutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen
Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…
Artikel lesen →SoftwareentwicklungUmgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen
Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…
Artikel lesen →SoftwareentwicklungPython-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen
Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…
Artikel lesen →Künstliche IntelligenzWas ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt
Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…
Artikel lesen →DevOpsLinux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen
Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…
Artikel lesen →TestautomatisierungSelenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten
Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…
Artikel lesen →SoftwaretestsÄquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt
Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…
Artikel lesen →SoftwaretestsSchweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele
Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…
Artikel lesen →Datenbanken & SQLTutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen
Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…
Artikel lesen →Datenbanken & SQLSQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen
SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…
Artikel lesen →SoftwareentwicklungGit merge vs rebase: Unterschiede, Beispiele und wann man was nutzt
Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.
Artikel lesen →SoftwareentwicklungPython List Comprehension: Syntax, Beispiele und wann man darauf verzichtet
Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…
Artikel lesen →Datenbanken & SQLSQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)
SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…
Artikel lesen →