In der Softwerkskammer Köln gab es einen Vortrag über The pyramid is dead, long live the pyramid von Ramona Schwering. Hier einige Stichpunkte daraus:

Test Typen

  • Manuelles Testen: sowohl per Checkliste als auch Exploratives Testen
  • Unit Tests
  • Integration Tests
  • End-to-End Tests: Sicht eines Users annehmen. Klicks nachbilden. Langsam.

Test Pyramide

  • Test Pyramide
  • Von Mike Cohn
  • Erweitert/Verbreitet u.a. von Martin Fowler
  • Wenn Unit Tests zu groß sind, wird aus dem unteren Layer eher ein Servicetest

Test Diamant

  • Unit Tests sind anfällig für Änderungen
  • Wenn zu kleinteilig, dann meist auch zu aufwändig
  • Layer mit Unit Tests einschrumpfen (= Spizte des Diamanten)
  • 4 Layer: e2e -> System (Komponenten) -> Integration (Service) -> Unit

  • Manueller Test sollte nicht ersetzt werden
  • Automatisches Testen sollte Routineaufgaben übernehmen, nicht komplettes Testen

Eistüte aka Pizzastück

  • Eiskugeln = Manuelles Testen

Testing crab

  • ?
  • Visual Testing (Screenshotvergleiche): percy

  • wenn die Pyramide umgedreht wird, es also mehr e2e Tests gibt, dann ist das Testen ansich sehr zeitaufwändig

Testing Trophäe

  • unterhalb der Unit Tests gibt es noch einen Sockel mit statischen Tests (ESLint, Sonar)
  • Manuelle Test befinden sich um die Trophäe herum

Was sollte man testen?

  • häufige Workflows
  • kritische Pfade (die am meisten Schaden anrichten)
  • Tests sollten einfach in der Wartung sein, performant laufen, wirkliche Fehler finden -> sollen Vertrauen in die Tests und die Software schaffen
  • Form/Shape ist eher zweitrangig und kann sich von Projekt zu Projekt unterscheiden

Abseits vom Thema aber auch interessant