Reduced Test Cases

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Wenn Sie Probleme beim Erstellen einer Webseite haben, ist das Nützlichste, was Sie tun können, einen reduzierten Testfall zu erstellen. „Probleme“ können alles sein: Das CSS tut nicht, was es soll, das JavaScript verhält sich nicht richtig, es gibt Probleme mit verschiedenen Browsern usw. Im Prozess der Erstellung eines reduzierten Testfalls werden Sie entweder

  • Feststellen, dass es ein Fehler Ihrerseits war, ihn zu isolieren und zu beheben (oder eine großartige Testseite zum Fragen nach Hilfe zu haben)
  • Einen echten Fehler entdecken und die perfekte Demo zur Präsentation an die Verantwortlichen erhalten.

Also, was ist ein reduzierter Testfall überhaupt? Ein reduzierter Testfall ist eine Demo/Beispielseite, die Sie erstellen und die das Problem, das Sie haben, mit möglichst wenig Code reproduziert. Nur das HTML, das benötigt wird, um den Problem-Inhalt anzuzeigen. Nur CSS, das mit diesem reduzierten HTML zusammenhängt. Nur das JavaScript, das mit der fraglichen Funktionalität zusammenhängt.

Reduzierte Testfälle sind die absolute, unzweifelhaft, Nummer-eins-Methode zur Fehlersuche. Tatsächlich tragen manche Leute zu Open-Source-Projekten bei, indem sie Fehlerberichte in reduzierte Testfälle für erfahrenere Entwickler umwandeln. Hier ist, wie Sie mit der Erstellung eines für Ihre Probleme beginnen könnten…

1. Machen Sie es statisch

Wenn es sich um ein Frontend-Problem handelt, machen Sie die Seite statisch anstatt dynamisch vom Server generiert (wie bei der Verwendung eines CMS). Das heißt, betrachten Sie den Quellcode der Problemseite, kopieren Sie ihn und fügen Sie ihn in ein neues Dokument ein und beginnen Sie dort mit Ihrem reduzierten Testfall. Legen Sie dieses Dokument in ein neues Verzeichnis, nur für Ihren Testfall.

2. Machen Sie es isoliert

Legen Sie dann alle Ressourcendateien, die das HTML benötigt (CSS, Bilder, JavaScript usw.), ebenfalls in dieses Verzeichnis. Nun haben Sie eine abgeschlossene kleine Umgebung nur für diesen Zweck. Jetzt können Sie diese Ressourcendateien und Markup bearbeiten, ohne sich Gedanken darüber machen zu müssen, etwas Live zu beeinflussen. Dies macht Ihren Testfall auch portabel, falls Sie ihn an jemand anderen weitergeben müssen.

3. Reduzieren, reduzieren, reduzieren!

Entfernen Sie nun nach und nach alles, und testen Sie zwischendurch immer wieder, ob das Problem noch besteht. Beginnen Sie damit, HTML zu entfernen, sodass das, was auf der Seite sichtbar ist, auf das Nötigste reduziert wird. Entfernen Sie dann alles CSS, das nicht mehr benötigt wird. Entfernen Sie dann alles JavaScript, das nicht mit dem Problem zusammenhängt. Wenn es kein JavaScript-Problem ist, entfernen Sie alles davon (es sei denn, Sie glauben, dass JavaScript etwas stört, was das eigentliche Problem ist).

4. Dokumentieren Sie es

Wenn es Teile im Code gibt, bei denen Sie vermuten, dass sie das Problem sein könnten, fügen Sie dort Kommentare ein. Jede Programmiersprache hat eine Möglichkeit, Kommentare einzufügen, die den Code nicht beeinflussen.

5. Stellen Sie es online

Wenn Sie lokal arbeiten, stellen Sie Ihren reduzierten Testfall irgendwo online. Ich habe gesehen, wie Leute das kostenlose Dropbox nutzten, um ein schnelles Beispiel zu hosten. Dies erleichtert es Ihnen, das Problem mit anderen zu teilen, die möglicherweise helfen können.

Aber ich weiß nicht, was das Problem ist! Sie müssen alles sehen!

Sie wissen, was das Problem ist. Es ist, was immer das Problem ist. Jemandem „alles“ zu zeigen, ist oft überwältigend und erschwert ihm das Verständnis. So fühle ich mich jedenfalls. Wenn jemand um Hilfe bittet und 1000 Zeilen CSS-Code ins Forum postet, werden meine Augen meist glasig und ich überspringe es einfach. Ein reduzierter Testfall hingegen ist oft faszinierend und fordert geradezu dazu auf, ihn anzuschauen.

Weitere Ressourcen


Kennen Sie weitere gute Diskussionen zu diesem Thema? Lassen Sie es mich wissen, ich verlinke sie.