{"id":30386,"date":"2025-09-09T11:26:00","date_gmt":"2025-09-09T10:26:00","guid":{"rendered":"https:\/\/www.web-systems.pl\/automatisierte-tests-webanwendung-was-wann-testen\/"},"modified":"2026-09-30T23:06:44","modified_gmt":"2026-09-30T22:06:44","slug":"automatisierte-tests-webanwendung-was-wann-testen","status":"publish","type":"post","link":"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/","title":{"rendered":"Automatisierte Tests f\u00fcr Webanwendungen: was und wann testen"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Automatisierte Tests einer Webanwendung sind Skripte, die nach jeder Code\u00e4nderung selbst pr\u00fcfen, ob die wichtigsten Funktionen noch laufen. Im Vertrag mit einem Software House sollten mindestens drei Dinge stehen: Unit-Tests, End-to-End-Tests f\u00fcr die kritischen Pfade und deren Ausf\u00fchrung in einer CI-Pipeline. Dieser Ratgeber richtet sich an Auftraggeber, die keinen Code lesen und trotzdem Angebot und Testumfang beurteilen m\u00fcssen. Sie finden hier die Testarten in einfacher Sprache, eine sinnvolle Reihenfolge der Automatisierung und eine Liste mit Fragen an den Dienstleister.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Inhaltsverzeichnis<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Was_sind_automatisierte_Tests_einer_Webanwendung_und_was_hat_der_Auftraggeber_davon\" >Was sind automatisierte Tests einer Webanwendung und was hat der Auftraggeber davon?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Testarten_Unit-_Integrations-_End-to-End-_und_Regressionstests\" >Testarten: Unit-, Integrations-, End-to-End- und Regressionstests<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Die_Testpyramide_wie_viel_wovon\" >Die Testpyramide: wie viel wovon<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Was_zuerst_automatisieren_Die_kritischen_Pfade_der_Anwendung\" >Was zuerst automatisieren? Die kritischen Pfade der Anwendung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Wann_die_Tests_laufen_Tests_in_CICD\" >Wann die Tests laufen: Tests in CI\/CD<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Automatisierte_Tests_in_Vertrag_und_Angebot_was_Sie_den_Dienstleister_fragen_sollten\" >Automatisierte Tests in Vertrag und Angebot: was Sie den Dienstleister fragen sollten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Haeufige_Fragen\" >H\u00e4ufige Fragen<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Braucht_eine_kleine_Anwendung_oder_ein_MVP_automatisierte_Tests\" >Braucht eine kleine Anwendung oder ein MVP automatisierte Tests?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Was_unterscheidet_End-to-End-Tests_von_Unit-Tests\" >Was unterscheidet End-to-End-Tests von Unit-Tests?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.web-systems.pl\/de\/automatisierte-tests-webanwendung-was-wann-testen\/#Wer_pflegt_die_Tests_nach_der_Uebergabe_der_Anwendung\" >Wer pflegt die Tests nach der \u00dcbergabe der Anwendung?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Was_sind_automatisierte_Tests_einer_Webanwendung_und_was_hat_der_Auftraggeber_davon\"><\/span>Was sind automatisierte Tests einer Webanwendung und was hat der Auftraggeber davon?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es ist Code, der anderen Code pr\u00fcft. Er l\u00e4uft von selbst, ohne dass ein Tester sich durch die Bildschirme klickt. Ein manueller Tester geht das Szenario jedes Mal neu durch und kommt bei h\u00e4ufigen \u00c4nderungen schlicht nicht hinterher (oder l\u00e4sst etwas aus, weil es Freitag nach 16 Uhr ist). Ein Automat wiederholt dieselben Schritte immer gleich, in wenigen Minuten, bei jeder Korrektur. Was hat das Unternehmen davon? Weniger Fehler in der Produktion, ruhigere Releases neuer Funktionen und einen leichteren Wechsel des Dienstleisters in Zukunft, weil das neue Team sofort sieht, was kaputtgeht. Tests sind Teil der Qualit\u00e4t, kein Extra. Wer sie wegl\u00e4sst, landet bei einem der typischen Probleme, \u00fcber die wir beim Thema <a href=\"https:\/\/www.web-systems.pl\/najczestsze-bledy-do-unikania-podczas-tworzenia-aplikacji-webowych\/\">Fehler bei der App-Entwicklung<\/a> schreiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Testarten_Unit-_Integrations-_End-to-End-_und_Regressionstests\"><\/span>Testarten: Unit-, Integrations-, End-to-End- und Regressionstests<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jede Art pr\u00fcft die Anwendung auf einer anderen Ebene, von einer einzelnen Funktion bis zum kompletten Weg des Nutzers. Die Unterschiede sollten Sie kennen, denn in Angeboten werden die Begriffe oft durcheinander verwendet:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Unit-Tests<\/strong> - pr\u00fcfen eine einzelne Funktion isoliert, z. B. die Preisberechnung mit Rabatt. Sie laufen in Sekundenbruchteilen. Geschrieben werden sie von Entwicklern, oft mit Werkzeugen wie PHPUnit oder Jest.<\/li>\n<li><strong>Integrationstests<\/strong> - pr\u00fcfen, wie Bausteine zusammenarbeiten: die Anwendung mit der Datenbank, dem Zahlungsanbieter, einer externen API. Sie sind langsamer, weil mehrere Systeme gleichzeitig beteiligt sind.<\/li>\n<li><strong>End-to-End-Tests (E2E)<\/strong> - spielen einen Menschen im Browser nach und gehen den ganzen Weg vom Klick bis zum Ergebnis durch. Beispiele f\u00fcr Werkzeuge sind Playwright und Cypress. Sie dauern am l\u00e4ngsten und werden von Entwicklern oder Testautomatisierern geschrieben.<\/li>\n<li><strong>Regressionstests<\/strong> - keine eigene Technik, sondern ein Ziel: sicherstellen, dass eine neue \u00c4nderung nichts kaputt gemacht hat, was vorher funktioniert hat. Erreicht wird es durch alle oben genannten Tests, die zusammen laufen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Die_Testpyramide_wie_viel_wovon\"><\/span>Die Testpyramide: wie viel wovon<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Regel ist einfach. Am meisten schnelle Unit-Tests, weniger Integrationstests und am wenigsten langsame E2E-Tests, die in der Pflege teuer sind. Ein Projekt, das nur auf E2E setzt? Langes Warten auf Ergebnisse, Tests, die bei jeder Design\u00e4nderung brechen, und m\u00fchsame Suche nach der Fehlerursache. Nur Unit-Tests reichen aber auch nicht, denn sie finden keine Probleme an den Schnittstellen zwischen Modulen oder im Browser. Und Vorsicht bei einer Code-Coverage in Prozent, die als Vorgabe im Vertrag steht. Sie sagt nur, wie viel Code ausgef\u00fchrt wurde. Sie sagt nicht, ob das gepr\u00fcft wurde, was f\u00fcrs Gesch\u00e4ft wichtig ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Was_zuerst_automatisieren_Die_kritischen_Pfade_der_Anwendung\"><\/span>Was zuerst automatisieren? Die kritischen Pfade der Anwendung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zuerst kommen die Pfade, deren Ausfall das Gesch\u00e4ft stoppt: Login, Zahlung, Speichern von Daten. Aus meiner Sicht ist diese Reihenfolge sinnvoll:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Login, Registrierung und Benutzerrechte.<\/li>\n<li>Zahlung und Bestellabschluss (Checkout).<\/li>\n<li>Speichern, Bearbeiten und Abrufen der wichtigsten Daten.<\/li>\n<li>Integrationen mit externen Systemen.<\/li>\n<li>Gesch\u00e4ftsberechnungen: Preise, Rabatte, Steuern.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Und womit warten? Mit Ansichten, die sich in der MVP-Phase jede Woche \u00e4ndern, mit der reinen Optik und mit einmaligen Funktionen. Da ist die Zeit schade. Der Testumfang soll mit dem Produkt wachsen, das sieht man gut, wenn man sich die <a href=\"https:\/\/www.web-systems.pl\/etapy-budowy-aplikacji-webowej-od-mvp-do-skali\/\">Phasen beim Aufbau einer Webanwendung<\/a> von der ersten Version bis zur Skalierung ansieht.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Wann_die_Tests_laufen_Tests_in_CICD\"><\/span>Wann die Tests laufen: Tests in CI\/CD<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In einem sauber aufgesetzten Projekt starten die Tests bei jeder \u00c4nderung im Repository von selbst, in der CI-Pipeline, bevor der Code auf den Server kommt. CI, also Continuous Integration, ist ein Automat: Der Entwickler schickt Code, und der Automat baut die Anwendung und startet die Tests. Ein rotes Ergebnis blockiert das Deployment. Der Fehler bleibt also beim Entwickler h\u00e4ngen und nicht beim Kunden. Meist laufen zuerst die schnellen Unit-Tests, die E2E-Tests starten auf der Testumgebung kurz vor der Ver\u00f6ffentlichung in der Produktion. Und bei der Arbeit in Sprints, typisch f\u00fcr <a href=\"https:\/\/www.web-systems.pl\/jak-wdrozyc-skuteczne-strategie-agile-w-projektach-it\/\">agiles Projektmanagement in der IT<\/a>, l\u00e4uft nach jeder Iteration die komplette Regression.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Automatisierte_Tests_in_Vertrag_und_Angebot_was_Sie_den_Dienstleister_fragen_sollten\"><\/span>Automatisierte Tests in Vertrag und Angebot: was Sie den Dienstleister fragen sollten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Vertrag sollte klar sagen: welche Testarten entstehen, welche Pfade sie abdecken, wo sie laufen und wer sie nach der Abnahme pflegt. Stellen Sie dem Software House vor der Unterschrift diese Fragen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Welche Tests sind im Angebot enthalten?<\/li>\n<li>Welche Pfade bekommen E2E-Tests?<\/li>\n<li>Laufen die Tests in der CI und blockieren sie das Deployment bei einem Fehler?<\/li>\n<li>Bekomme ich den Testcode und Zugriff auf die Ergebnisse?<\/li>\n<li>Wer aktualisiert die Tests bei \u00c4nderungen an der Anwendung?<\/li>\n<li>Wie sieht die Testumgebung aus und woher kommen die Daten darin?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Warnsignale? Die Antwort \u201ewir testen vor dem Deployment manuell\u201c ohne jede Automatisierung. Keine Tests im Repository. Tests als kostenpflichtiges Extra ohne festgelegten Umfang. In der Praxis bespricht man den Testumfang am besten schon im ersten Gespr\u00e4ch \u00fcber das Projekt, egal ob es um Softwareentwicklung nach Ma\u00df oder um KI-basierte Anwendungen geht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Automatisierte Tests einer Webanwendung geh\u00f6ren als Klausel in den Vertrag und nicht als m\u00fcndliches Versprechen. Das Minimum ist kurz: Unit-Tests f\u00fcr die Gesch\u00e4ftslogik, End-to-End-Tests f\u00fcr die kritischen Pfade und alles zusammen in der CI bei jeder \u00c4nderung. Mit so einer Klausel lassen sich Angebote leichter vergleichen, das Projekt leichter abnehmen und in Ruhe weiterentwickeln.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Haeufige_Fragen\"><\/span>H\u00e4ufige Fragen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1790789631378-0\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"Braucht_eine_kleine_Anwendung_oder_ein_MVP_automatisierte_Tests\"><\/span>Braucht eine kleine Anwendung oder ein MVP automatisierte Tests?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ja. Zumindest f\u00fcr Login, Zahlung und das Speichern von Daten, denn ein Ausfall dort trifft sofort die Nutzer. Den Rest kann man sp\u00e4ter mit Tests abdecken, wenn sich das Produkt stabilisiert hat. So ein schlankes Set sch\u00fctzt die wichtigsten Pfade ohne hohe Kosten zum Start.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1790789631378-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"Was_unterscheidet_End-to-End-Tests_von_Unit-Tests\"><\/span>Was unterscheidet End-to-End-Tests von Unit-Tests?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>E2E-Tests pr\u00fcfen den ganzen Weg des Nutzers im Browser, Unit-Tests eine einzelne Funktion isoliert. Die ersten zeigen, dass der Prozess als Ganzes funktioniert. Die zweiten zeigen schnell, welcher Teil der Logik versagt hat. Man braucht beide Arten, eine Wahl gibt es hier nicht.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1790789631378-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><span class=\"ez-toc-section\" id=\"Wer_pflegt_die_Tests_nach_der_Uebergabe_der_Anwendung\"><\/span>Wer pflegt die Tests nach der \u00dcbergabe der Anwendung?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Das h\u00e4ngt vom Vertrag ab, also sollte man es dort genau festlegen. Eine gute Klausel: Die Tests sind Teil des Codes, der an den Auftraggeber \u00fcbergeben wird, und werden bei jeder \u00c4nderung im Rahmen des Supports aktualisiert. So verlieren sie nach den ersten Korrekturen nicht ihren Wert.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Automatisierte Tests einer Webanwendung sind Skripte, die nach jeder Code\u00e4nderung selbst pr\u00fcfen, ob die wichtigsten Funktionen noch laufen. Im Vertrag mit einem Software House sollten mindestens drei Dinge stehen: Unit-Tests, End-to-End-Tests f\u00fcr die kritischen Pfade und deren Ausf\u00fchrung in einer CI-Pipeline. Dieser Ratgeber richtet sich an Auftraggeber, die keinen Code lesen und trotzdem Angebot und [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":30347,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[837],"tags":[2361,920,1082,1133,2360,866],"class_list":["post-30386","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programmierung","tag-automatisierte-tests","tag-ci-cd-de","tag-ratgeber","tag-softwarehaus","tag-testen","tag-web-anwendungen"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts\/30386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/comments?post=30386"}],"version-history":[{"count":1,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts\/30386\/revisions"}],"predecessor-version":[{"id":30405,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/posts\/30386\/revisions\/30405"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/media\/30347"}],"wp:attachment":[{"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/media?parent=30386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/categories?post=30386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.web-systems.pl\/de\/wp-json\/wp\/v2\/tags?post=30386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}