Home » Cloud-System » Test-Driven Development! Qualität & Sicherheit im E-Commerce
Teaser testdriven Development / Quelle: freepik

Test-Driven Development! Qualität & Sicherheit im E-Commerce

Im Handwerk sichern das Zusammenspiel zahlreicher Faktoren ein qualitativ hervorragendes Ergebnis: hochwertige Komponenten, eine saubere Verarbeitung, Wissen und Erfahrung sowie insbesondere das beständige Überprüfen der eigenen Arbeit sind die wichtigsten. Bei der professionellen Softwareentwicklung, und dazu gehört eben auch die Realisierung einer E-Commerce Plattform, ist das nicht anders. David Lambauer, Entwickler bei netz98, erklärt, warum Qualität in Software-Produkten so wichtig ist, und beschreibt einen Einstieg in das test-driven Development.

Relevanz

1976, ein Jahr vor der Veröffentlichung des Apple II und 13 Jahre vor der „Entdeckung“ des Internets, als Software noch lange kein Massenphänomen war, machte sich bereits jemand Gedanken über ihre Qualität. Thomas J. McCabe entwickelte die McCabe-Metrik, mit deren Hilfe auch noch heute die Komplexität von Software gemessen wird. Die sogenannte zyklomatische Komplexität beschreibt die Einfachheit des analysierten Quellcodes. Dabei werden die Anzahl Verzweigungen der Prozeduren, aufgerufenen Funktionen oder auch konditionalen Abfragen gemessen (das sind if-then-Anweisungen im Code, die beispielsweise die Ausführung einer Funktion auf eine bestimmte Gruppe beschränkten, etwa die Ansprache „Lieber“ nur zu verwenden, wenn das Kundenattribut „männlich“ vorliegt. An solchen Stellen verzweigt sich der Fluss durch den Quellcode).

 

Je höher der Messwert, umso größer die Komplexität. Je höher die Komplexität, umso wahrscheinlicher sind Fehler und umso schwerer ist der Code zu verstehen. Bei einer Überschreitung der zyklomatischen Komplexität von 50 Bewertungspunkten (CC-Wert 50; CC steht für cyclomatic complexity) etwa spricht man allgemein von einem Quellcode, der besonders fehleranfällig, nicht wartbar und nicht testbar ist. Dieser Code, bzw. die Software ist in ihrer Funktionalität also eingeschränkt. Etwas, das seine Funktion nicht richtig erfüllt, ist qualitativ mangelhaft.

 

Aktualität

Die Softwareentwicklung von damals hat nur noch wenig mit heutigen Standards zu tun, dennoch findet das Prinzip auch heute noch Anklang in der Entwicklung und neben der von McCabe entwickelten Metrik werden noch viele weitere verwendet. Die daraus berechneten Werte geben Auskunft über die Einhaltung entscheidender Qualitätskriterien – und  damit auch Hinweise für die Bewertung eines potentiellen Geschäftsrisikos. Und spätestens, wenn es um geschäftskritische Software geht, sollte eine qualitätsgetriebene Softwareentwicklung im Fokus eines jeden Auftraggebers stehen.

 

Testgetriebene Entwicklung

Ein qualitativ hochwertiger Code muss nicht das Ergebnis einer qualitätsgetriebenen Softwareentwicklung sein. Auch im Nachhinein kann natürlich der Code überprüft und entsprechend angepasst werden. Die Kosten für ein solches Refactoring können aber je nach Umfang beachtlich sein … und sind in Relation immer wesentlich höher, als die Kosten für eine Entwicklung nach entsprechenden qualitätssichernden Prinzipien.

In unserem Fall – im Umgang mit Magento und PHP – die der objektorientierten Programmierung, der SOLID-Prinzipien, sowie eines Test-Driven Developments.

 

SOLID steht für das Folgende:

  • Single-Responsibility: Jede Klasse hat nur eine einzige Aufgabe
  • Open-Closed: Klassen, Module und Funktionen sollen erweiterbar sein
  • Liskovsches Substitutionsprinzip: Auch Ersetzbarkeitsprinzip genannt
  • Interface-Segration: Große Schnittstellen sind in mehrere kleine aufzuteilen
  • Dependency Inversion: Abhängigkeiten dürfen nur in einer eindeutig hierarchischen Struktur vorliegen

 

Test-Driven Development lässt sich in einem Satz zusammenfassen:

Schreibe niemals Code, bevor ein Test nicht fehlschlug.

 

Alles weitere erklärt sich aus den daraus folgenden Überlegungen:

  • Ohne fehlgeschlagenen Test darf ich also nicht anfangen zu coden.
  • Zuerst einen Test zu schreiben, bedeutet, dass ich exakt wissen muss, was ich in meine Funktionen hineingebe und was dabei heraus kommen soll.
  • Um das zu wissen, muss ich mich wiederum mit der Systemarchitektur beschäftigen und diese ggf. selbst definieren.
  • Dabei mache ich mir im Idealfall Gedanken über bereits bestehende Lösungen, also über Design Patterns.
  • Weil ich eigentlich nicht viel Zeit mit dem Testen verschwenden will, fange ich auch an die Tests sehr schmal zu halten. Eine Funktion, eine Aufgabe, ein definierter Input und ein definierter Output. Das wirkt sich ebenfalls auf den eigentlichen Quellcode aus.

 

“Writing clean code is what you must do in order to call youself a professional. There is no reasonable excuse for doing anything less than your best. (Robert C. Martin)

 

Die Herausforderung beim test-driven Development besteht nicht darin, dass Tests zu schreiben sind oder wie am besten ein Test-Workflow zu gestalten ist. Testing und Coding werden einfach auf möglichst kleine Softwareelemente heruntergebrochen (Units). Die Tests sind also am Ende des Tages nur Code, der den eigentlichen Code ausführt und die zurückgegebenen Werte überprüft.

 

Vielmehr geht es um das Konzipieren von Software nach gewissen Grundprinzipien, z. B. SOLID. Für die Praxis werden diese Meta-Prinzipien in Codestyles und Code-Konventionen zusammengefasst, Sammlungen von Regeln und Vorschriften für die Entwicklung leserlichen, verständlichen und übersichtlichen Quellcodes in einer bestimmten Programmiersprache. Zu diesen Regelsets gehören Clean Code Rules, Code Size Rules oder auch Naming Rules.

Ergebnisse

Ohne es also wirklich zu merken, verwende ich Entwurfsmuster für allgemeine Problemstellungen, nutze zuvor definierte Prinzipien wie das Single-Responsibility-Prinzip und obendrein ist der Code auch noch getestet!

 

Test-driven Development
So sollte ein E-Commerce Projekt aussehen: hohe Testabdeckung und permanent steigende Zahl an Testergebnissen

 

Wie profitiert der Auftraggeber?

Nun, er erhält eine E-Commerce Plattform, deren Kern, die eigentliche Magento-Installation, in einem sehr hohen Maße durchs Tests abgedeckt ist, deren Funktionalität also sichergestellt ist. Die stabil und einfach zu warten ist, also immer zur Verfügung steht und sich bei Bedarf einfacher anzupassen ist. Die keine Performance-Probleme durch eine strukturelle Schwäche des Codes aufweist. Und die schließlich in der Endphase ihrer Entwicklung nicht unzählige PT aufgrund von Bugfixing verschlingt sowie die Projektkosten in die Höhe treibt. Diese Software ist kein Geschäftsrisiko.

 

 

Ihr Kontakt

Hartwig Göttlicher
Head of Business Development
KI-Agenten im Einzelhandel: Die Zukunft der Automatisierung 
Roboterhand schiebt einen kleinen Einkaufswagen mit Paketen – Symbol für KI-Agenten im Einzelhandel bzw. intelligente Automatisierung im Einzelhandel.

Entdecke, wie KI-Agenten den Einzelhandel revolutionieren – mit Automatisierung, Personalisierung und Wettbewerbsvorteilen für Händler!

Digitalisierung Baubranche: So funktionieren erfolgreiche Onlineshops für den Baustoffhandel
Ein Mitarbeiter des Baustoffhandels prüft digitale Bestellprozesse am Laptop – Beispiel für die Digitalisierung in der Baubranche

Erfahren Sie, wie Digitalisierung die Baubranche verändert – mit Best Practices zu Onlineshops im Baustoffhandel. Jetzt hier lesen!

Kostenoptimierung im digitalen Vertrieb: Erfolgreich Servicekosten im After Sales senken
Eine Person im grauen Anzug hält ein Smartphone in der Hand. Über dem Gerät sind zwei Infografiken eingeblendet: Links ein steigendes Balkendiagramm mit dem Begriff „Quality“ und einem nach oben gerichteten Pfeil, rechts ein fallendes Diagramm mit dem Begriff „Cost“ und einem abwärts gerichteten Pfeil. Die Visualisierung symbolisiert Kostenoptimierung im digitalen Vertrieb – durch höhere Qualität bei gleichzeitig sinkenden Kosten, etwa durch Prozessautomatisierung im After Sales.

Entdecken Sie, wie Prozessautomatisierung & Self-Service-Portale Ihre After-Sales-Kosten optimieren & die Kundenzufriedenheit steigern!

B2B Kundenbindung: Welche erfolgreichen Maßnahmen setzt der Großhandel im E-Commerce ein?
Collage aus Bildern, die Beschäftigte unterschiedlicher Branchen bei der Arbeit zeigen.

Maßnahmen zur Kundenbindung spielen im B2B Großhandel eine entscheidende Rolle für den Erfolg. Jetzt hier valantic Beispiele aus der Praxis!

B2B Online-Shop: Die 5 wichtigsten Anforderungen für Erfolg
Zwei Mitarbeitende in Werkstattumgebung analysieren gemeinsam Daten auf einem Laptop – sinnbildlich für die Digitalisierung im B2B bzw. für den Weg zum zukunftssicheren B2B Online-Shop.

Erfahren Sie, welche 5 Faktoren für den B2B Online-Shop 2025 entscheidend sind – von Self-Service bis Systemintegration. Jetzt informieren!

Personalisierung: Volles Potenzial mit Adobe Journey Optimizer
Eine Frau arbeitet konzentriert an einem Holztisch mit Laptop, Smartphone und Unterlagen. Auf dem Laptop ist eine grafische Benutzeroberfläche zu sehen, auf dem Smartphone eine Nachricht oder Anwendung. Die Szene symbolisiert datenbasiertes und kanalübergreifendes Arbeiten. Der Adobe Journey Optimizer, in dem es in dem Blogbeitrag geht, ermöglicht solche vernetzten Echtzeit-Interaktionen.

Personalisierung mit Adobe Journey Optimizer, Adobe Analytics und Adobe Target – volles Potenzial nutzen. Lesen Sie hier die Details!

B2B-Marketing neu gedacht – präzise, relevante Kundenansprache mit Adobe Marketo Engage 
Im Vordergrund hängt eine große, eingeschaltete Glühbirne mit sichtbarem Glühfaden von der Decke herab. Sie ist scharf fokussiert und leuchtet warm. Im unscharfen Hintergrund sitzen mehrere Personen an einem Tisch zusammen, offenbar in einer Besprechung oder Diskussion. Die Wand hinter ihnen ist dunkelblau gestrichen, die Atmosphäre wirkt konzentriert und kreativ.

Adobe Marketo Engage automatisiert Ihre Prozesse im B2B-Marketing und steigert die Lead-Qualität. Lesen Sie hier die Details!

E-Commerce Entwicklung 2025: Stabilisierung nach dem Boom – wie sich der B2C-Onlinehandel entwickelt
Ein junger Mann mit Bart und grünem Hemd steht lächelnd in einem modernen Konferenzraum. Er wirkt selbstbewusst und entspannt, während er sich leicht an einen Tisch lehnt. Im Hintergrund sitzen drei weitere Personen – zwei Männer und eine Frau – an einem langen Holztisch. An der Wand hängt ein Bildschirm mit einem Diagramm, das steigende Balken zeigt. Tageslicht fällt durch ein großes Fenster in den Raum.

E-Commerce Entwicklung 2025 im Überblick: Aktuelle Zahlen und Branchentrends für den B2C Onlinehandel – jetzt hier mehr erfahren!

Über den Autor