Software Teams Debuggen mit Elmar Jürgens

Am 13.7. 2017 war Dr. Elmar Jürgens (CQSE) zu Gast bei der Java-User-Group in Darmstadt und hat einen Vortrag mit dem Titel „Software Teams Debuggen“ gehalten.
Während des Vortrags hat Elmar verschiedene Analysenmethoden vorgestellt mit denen man durch die Untersuchung von Sourcode-Repositories eine Menge interessante Aussagen über die Architektur, Kommunikationsstrukturen, Teamstrukturen und deren Veränderungen machen kann.

Während des Vortrags wurden drei Aspekte und die Schnittstellen zueinander betrachtet:

  • Team
  • Tester
  •  User

Begonnen hat Elmar mit der Beschreibung, was eine ‚Architecture Conformance Analysis‘ ist. D.h., wie man im ersten Schritt eine Ist-Analyse der Software-Architektur macht und damit sieht, wie die einzelnen Komponenten zusammenhängen. Anschließend lässt sich dies mit der spezifizierten und dokumentierten Architektur vergleichen. Bei dem Vergleich sieht man oft schon, dass es große Unterschiede gibt, die es dann zu untersuchen gilt:

  •  Wo kommen die Unterschiede her?
  •  Sind sie ein Problem?

Aus den Daten, die ein Versionskontrollsystem liefert, lassen sich auch eine Menge Dinge ableiten:

  •  wurde Code kopiert, mittels Clone Detection
  •  Man kann auch sehen, welche Entwickler, wie lange an einem Projekt mitgearbeitet haben.
  • Wie sich die Teamstruktur verändert hat, d.h. welche Entwickler dazugekommen sind und welche das Team verlassen haben.
  •  Man kann auch erkennen, wenn Entwickler in ein Team gekommen sind und Quellcode „mitgebracht“ haben.

Wenn solche Auffälligkeiten gefunden werden, kann mit dem Team geklärt werden, was da passiert ist und, ob es überhaupt ein Problem ist, um das man sich kümmern muss.


Nachdem der Aspekt von Teams, d.h. den Entwicklern behandelt war, ging es weiter mit den Testern, d.h. der Schnittstelle zwischen Team und Tester.
Dabei hilft eine Test-Gap-Analyse, bei der die Veränderungen der Testabdeckung untersucht werden.

Meistens treten Fehler da auf, wo Code verändert wurde, also ist es sinnvoll ein besonderes Augenmerk auf die Stellen zu legen.

Die interessanten Stellen lassen sich mit einer TreeMap sehr schön visualisieren, so dass erkennbar wird, wenn Code verändert oder ergänzt wurde, aber die Testabdeckung nicht nachgezogen wurde.
In den Beispielen von Elmar wurde die Codecoverage auf zwei Arten ermittelt:
– durch automatische Test
– durch manuelle Tests bei denen ein Coverage Profiler im Hintergrund lief.

Wenn bei dieser Untersuchung Auffälligkeiten auftreten, können auch diese untersucht werden.
Gründe können beispielsweise sein, dass
– Testdoku nicht erweitert und verteilt wurde.
– Im letzten Moment ein Branch gemerged wurde.

Im letzten Block ist Elmar auf die Schnittstelle zwischen Usern und der Kombination aus Team und Testern eingegangen.

An dieser Schnittstelle kann sehr gut untersucht werden, welcher Code überhaupt ausgeführt wird und welche Features vom Benutzer verwendet werden.
Dabei stellt sich oft heraus, dass manche Features nur ganz selten benutzt werden. Dann muss analysiert werden, warum das so ist.
Das kann beispielsweise vorkommen, wenn ein Feature nur für den Jahresabschluss oder eine besondere Kampagne verwendet wird.

Zum Abschluss hat Elmar nochmal den Unterschied zwischen Statische Analyse vs. Dynamische Analyse hervorgehoben und ist auf die Aspekte: Kosten, Einfachheit, schnelle Resultate eingegangen.
Mir hat der Vortrag sehr gut gefallen und man hat unheimlich viel Wissen mitgenommen.
Vielen Dank an Elmar für den Besuch in Darmstadt und den interessanten Vortrag.

Wer nicht kommen konnte, hat die Gelegenheit sich eine Aufzeichnung von der GOTO-Konferenz (2016) des Vortrags anzusehen.

 

Außerdem findet man auf dem CQSE-Blog die Folien und weitere Informationen zu dem Vortrag.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*