So automatisieren Sie Tests für die geografisch verteilte Entwicklung
Von Parasoft
17. November 2011
3 min lesen
Automatisieren und koordinieren Sie den Prozess des Austauschs von Quellcode zwischen geografisch verteilten Teams, um ihn nachhaltig zu gestalten.
Richtlinien für die gemeinsame Nutzung von Quellcode zwischen Gruppen sind viel effektiver, wenn sie mithilfe der Automatisierung durchgesetzt werden. Die Automatisierung ist wichtig, um die Abhängigkeit von den manuellen Ressourcen zu verringern, die erforderlich sind, um die gemeinsame Nutzung von Quellcode effektiv zu gestalten, und um sicherzustellen, dass die festgelegten Richtlinien trotz menschlicher Faulheit jeden Tag eingehalten werden.
Wo wird die Automatisierung angewendet?
Jede Entwicklungsgruppe kann die Automatisierung nutzen, um den Quellcode für jedes Modul zu dokumentieren, zu schützen, zu verbessern und zu sichern.
- Die automatisierte Durchsetzung von Richtlinien zur Dokumentation öffentlicher Schnittstellen, Parametereingaben und Rückgabewerte verbessert das Verständnis von Code sowohl für Entwickler, die die Dokumentation lesen, als auch für diejenigen, die sie schreiben.
- Die Gefahren fehlerhafter Änderungen oder Stiländerungen durch Entwickler aus verschiedenen Gruppen werden gemindert, wenn die Automatisierung zur Durchsetzung von Qualität und Compliance verwendet wird. Nicht konforme Änderungen werden entweder sofort abgelehnt oder zur Überprüfung markiert.
- Durch die Automatisierung kann auch überprüft werden, ob Unit-Tests einen Großteil des Quellcodes abdecken, und in einigen Fällen können sogar zusätzliche Tests erstellt werden, um Fehler aufzudecken und die Qualität zu verbessern.
- Eine automatisierte Code-Analyse mit der Fähigkeit, benutzerdefinierte Muster zu identifizieren, beschleunigt den Prozess, in dem eine Gruppe aus den Fehlern einer anderen lernt. Ein Quellcodemuster für einen Fehler in einer Gruppe kann mit den übrigen Gruppen geteilt und auf die gesamte vorhandene Codebasis angewendet werden, um ähnliche Fehler zu finden.
Hindernisse für die Automatisierung
Die Haupthindernisse bei der Einführung automatisierter Prozesse sind Bereitstellungsressourcen und Einwände einzelner Entwickler gegen die Durchsetzung von Richtlinien.
Die Konfiguration automatisierter Tools erfordert einige Zeit und Mühe für bestimmte Umgebungen. Einige Code-Analyse-Tools sind frei verfügbar, ebenso wie JUnit, das Unit-Testing-Framework für Java. Kommerzielle Tools stehen ebenfalls zur Verfügung, um die Durchsetzung gemeinsamer Entwicklungsrichtlinien zu automatisieren. Diese erfordern jedoch eine finanzielle Investition. Einige Entwickler widersetzen sich der Durchsetzung von Richtlinien, die im Widerspruch zu ihren bevorzugten Programmierpraktiken stehen. Namenskonventionen, mögliche Fehler und Anforderungen an Unit-Tests sind kontroverse Themen. Obwohl die Automatisierung dazu beiträgt, dass eine Codebasis von mehreren verteilten Teams gemeinsam genutzt werden kann, ist der Prozess nicht ganz trivial.
Die Ergänzung der kollaborativen Entwicklung durch Automatisierung kann die Lösungen für die eigenen Probleme darstellen. Die Investition von Zeit und Geld ist unvermeidlich, aber die Vorteile überwiegen bei weitem das Opfer, sobald das System eingerichtet ist und funktioniert. Die meisten automatisierten Ansätze zur Durchsetzung von Entwicklungsrichtlinien sind sehr anpassbar. Hartnäckige Entwicklungsgruppen, die sich nicht an einen unternehmensweiten Standard halten wollen, werden leicht beschwichtigt, wenn für ihre Gruppe einige Ausnahmen gemacht werden können. Die Richtlinien müssen dahingehend definiert werden, was für die gesamte Organisation obligatorisch ist und was nur für einzelne Gruppen erforderlich ist. Entwickler müssen überprüfen, ob ihr Code einer Richtlinie entspricht, die von der unternehmensweiten Richtlinie übernommen und durch gruppenspezifische Anforderungen ergänzt wurde. Ein automatisierter Prozess mit den richtigen Fähigkeiten wird die meisten Probleme lösen. Eine sorgfältige Planung ist jedoch wichtig, um festzustellen, welche Funktionen erforderlich sind.
Koordination ist der Schlüssel
Die gemeinsame Nutzung einer Quellcodebasis zwischen Entwicklungsgruppen erfordert klar definierte Ziele. Entwickler und Manager werden beim Übergang zu einer gemeinsamen Codebasis auf viele Hindernisse stoßen, und viele Beteiligte werden die gewünschten Vorteile in Frage stellen.
Ein offensichtlicher Vorteil ist, dass ein einheitlicher Entwicklungsprozess zu Ähnlichkeiten im Erscheinungsbild und in der Funktionalität des Produkts führt. Die gemeinsamen Erfahrungen einer Gruppe können andere Gruppen daran hindern, dieselben Fehler zu machen.
Die zusätzliche Komplexität jeder Entwicklungsgruppe, die sich auf Code stützt, der von anderen Gruppen geschrieben wurde, erschwert jedoch diese gemeinsame Nutzung. Beispielsweise bevorzugen unterschiedliche Gruppen und Kulturen unterschiedliche Programmierstile, was die enge Zusammenarbeit und den einheitlichen Entwicklungsprozess behindert. Darüber hinaus verringern Entwicklungsarbeiten, die auf mehrere Zeitzonen verteilt sind, die Wahrscheinlichkeit, dass die vollständige Codebasis erfolgreich erstellt wird. Zu jedem Zeitpunkt wird wahrscheinlich jemand irgendwo dabei sein, etwas zu ändern. Wenn eine Komponente funktional oder in Bezug auf die Kompilierung ausfällt, wird jede andere Gruppe, die versucht, die vollständige Codebasis aufzubauen, oder die von dieser einen Komponente abhängt, negativ beeinflusst.
Trotzdem lohnt es sich, diese und andere Herausforderungen bei der Implementierung eines Prozesses für die gemeinsame Entwicklung zu bewältigen, wenn man das Endergebnis einheitlicherer Anwendungen und des Quellcodes berücksichtigt.