Fragensteller
Das richtige Testszenario wählen

Frage
-
Hallo zusammen,
ich habe da eine Verständnisfrage bzgl. Testszenarien. Meine Webanwendung hat nun eine Größe angenommen, wo es schwer wird alle Eventualitäten nachzuhalten und daher habe ich mir schon öfters mal die Karten gelegt :-)
Die Webanwendung setzt sich aus folgenden Komponenten zusammen:
- Web > Die GUI selbst
- Data > Datenbankstruktur mit EF Core
- Repository > Interfaces und DatenbankzugriffWie geht man am elegantesten vor um die einzelnen Komponenten zu testen? Testet alle Komponenten?
Danke für den ein oder anderen Denkanstoß
Gruß
David
Alle Antworten
-
Hallo David,
Web Apps werden meist Modular aufgebaut wie z.B. nach dem MVC Prinzip. Die einzelnen Module haben nichts mit einander zutun und müssen demnach auch nicht miteinander funktionieren sondern nur nebeneinander. Wenn deinen App so aufgebaut ist, müssen nur die Module unabhängig von einander getestet werden. Eine Änderung eine Moduls sollte demnach auch keine Auswirkung auf ein anderes haben und muss demnach auch nicht getestet werden.
Masterklassen in denen z.B. alle Datenbank zugriffe gehändelt werden gehen aus heutiger Sicht nicht mehr und führen früher oder später zur einen Anwendung die nicht mehr wartbar und erweiterbar ist.
Aktuell ist das Wort Microservices in Benutzung, die Thematik im Maßstab IT ist uralt
Gruß Thomas
Github- Bearbeitet Thomas Wycichowski Donnerstag, 17. Dezember 2020 17:53
-
Hallo Thomas,
die Repository-DLL hat viele einzelnen UnitOfWork-Klassen in denen die einzelnen Services gekapselt sind. Dadurch lässt sich das - zumindest aus meiner Sicht - ganz gut handhaben. Früher habe ich auch große "Commands" Klassen aufgebaut um den Datenbankzugriff zu realisieren. Das wurde schnell unübersichtlich. Da viele Datenmodelle auch übergreifend zusammenhängen, kann ich nicht vollständig auf diese Architektur verzichten.
Nur wie soll man hier testen? Datenbank InMemory und dann alles durchtesten?
-
Ja ich verstehe dich und auch ich stoße bei diesem Ansatz immer wieder an grenzen. Dennoch sollte die Ausnahme nicht die Regel werden. Visual Studio ist ein sehr gutes Beispiel für einen modularen Aufbau mit dennoch einem Fokus. Wenn Du aber schon selbst schreibst das deine eigene Architektur dir Probleme bereitet alles zu überblicken, wie soll es den ein anderer können der vielleicht neu anfängt? Hier solltest Du ansetzen. Was aber richtig ist kannst nur Du dir selbst beantworten niemand sonst.
Automatisiert kannst Du die beiden unteren schichten in Verbindung mit Mocks wie z.B. InMemory DB testen. Zum testen verwende ich xUnit das ist recht überschaubar und einfach zu erlernen. Die UI Schicht wird man so nicht testen können. Dafür sollte man ein Team mit Testern haben. Diese Tester könnten aber auch die User selbst sein.
Microsoft macht das ganz auch so. MS gibt uns kostenlos neue Framework damit wir sie für sie testen und dann damit z.B. Azure oder Sharepoint zu entwickeln :)
Gruß Thomas
Github