Qualitätssicherung in der Softwareentwicklung

Über die speziellen Methoden der Qualitätssicherung in der Softwareentwicklung möchten wir im Folgenden einen kurzen Überblick geben. Im Agenturgeschäft, insbesondere im Projektgeschäft, gibt es darüber hinaus noch weitere Methoden, die mehr auf die Kommunikation zwischen den Projektbeteiligten sowie den Arbeitsablauf abzielen. Einen Überblick dazu haben wir in einem weiteren Artikel zur Qualitätssicherung in Agenturen für Sie zusammen gestellt.

Versionierung

Dank Versionierungssystemen wie Git können mehrere Entwickler gleichzeitig am Programm-Code und auf lokalen Entwicklungsumgebungen arbeiten. Bei einem Code-Review ist es jederzeit nachvollziehbar, woher Änderungen stammen. Zudem können ausgelieferte Versionen mit einem ordentlichen Deployment-Prozess versehen werden.

Ab einer gewissen Komplexität der Entwicklung ist eine Versionierung unverzichtbar, egal ob Open-Source Varianten wie Git, SVN, oder ein Team Foundation Server. Selbst bei einfachen Webseiten-Projekten ist Versionierung sinnvoll. Im Zusammenspiel mit einem Ticketsystem ist dies sehr Vorteilhaft für die Effizienz und Qualität der Entwicklung sein.

Staging

Staging bedeutet, dass Ihre Webseite zweimal vorhanden ist: Eine Version, die Sie gewohnt mit Ihrer Domain aufrufen können und eine Stage-Version, welche von der Agentur entwickelt wird. Erst wenn die Stage-Version einwandfrei funktioniert, werden diese Änderungen auf das Live-System übertragen und sind für Ihre Kunden verfügbar. Staging bringt Ihnen die Sicherheit, dass Ihre Kunden nicht zufällig eine Webseite vor sich haben, an der gerade etwas umgebaut wird. Stellen Sie sich vor, Ihre Kunden wollen in Ihrem Webshop gerade zur Kasse gehen, aber der Button dafür fehlt, weil die Agentur ihn gerade umbaut.

Bei wenig komplexen Seiten ist es dennoch üblich, Webentwicklung “am offenen Herzen” zu betreiben. Sobald die Projekte größer werden, insbesondere wenn umsatzstarke Webseiten oder unternehmenskritische IT-Prozesse bearbeitet werden, ist die Verwendung von Stage-Systemen unerlässlich.

Local Dev

Bei komplexeren Aufgabenstellungen ist eine Entwicklung auf dem Webserver nicht praktisch. Das Programmierteam hat dafür jeweils eigene Entwicklungsumgebungen, in denen dann auch ein Debugger wie xdebug mit phpstorm zum Einsatz kommt. Bei Verwendung entsprechender Versionierung ist das Zusammenführen per commit und push sehr einfach. Auch gibt diese Arbeitsweise Sicherheit in Bezug auf Rechnerausfälle, was bei Entwicklungsrechnern nicht selten ist. Die notwendigen Pakete kann man sicher jederzeit aus dem zentralen Repository wieder beschaffen.

Code Review & Pair Programming

Gemeinsam geht vieles leichter. Nach der Entwicklung eines Features wird ein Code Review durchgeführt, bei dem ein zweiter Entwickler den geschriebenen Quellcode prüft und kritische Fragen stellt. Beim Pair Programming hingegen schaut permanent ein zweiter Entwickler über die Schulter. Dadurch werden Fehler vermieden oder frühzeitig erkannt, die Teams werden zu festen Einheiten, der Ideenaustausch wird gefördert und Best Practice wird von Entwickler zu Entwickler vermittelt.

Unit Tests

Insbesondere bei größeren Projekten stellen topologische Abhängigkeiten zwischen Bestandteilen ein typisches Problem bei der Softwareentwicklung dar. Dabei sind bei Änderungen an einer Stelle im Programmcode auch andere Teile Ihres Webshops betroffen - obwohl Sie dort direkt nichts verändert haben. Dem kann man zwar mit Clean Code Development vorbeugen, ganz ausschließen lässt sich das Problem allerdings nicht. 

Hier kommen die Unit Tests ins Spiel. Diese werden verwendet, um nach jeder Änderung automatisch zu prüfen, ob der unveränderte Teil noch vollständig funktioniert. Die entsprechenden Reports geben Auskunft über Fehler - das Deployment kann dann einem Review unterzogen werden. Unit Tests werden parallel zur eigentlichen Entwicklung erstellt, der damit entstehende Mehraufwand ist entsprechend groß. Das Test Driven Development kommt entsprechend nur bei Projekten zum Einsatz, wo höhere Kosten in Kauf genommen werden müssen.

und noch mehr ...

Im Übersichtsartikel Qualitätssicherung in Agenturen finden Sie darüber hinaus folgende Methoden:

  • Briefing und Debriefing
  • Ticketsystem
  • Dev Boards
  • Front End Testing
  • Workspaces

Diese Themen könnten Sie ebenfalls interessieren: