Suchen

Qualitätssicherung Die Problematik bei der Qualitätsmessung von Legacy Code

| Autor / Redakteur: Dr. Richard Kölbl * / Franz Graser

Qualitätsmessung und Test von Legacy Code stellen gewichtige Herausforderungen dar. Im besten Fall muss es gar nicht erst dazu kommen, dass Code unkontrolliert wuchert.

Firmen zum Thema

Logisches Gestrüpp: Mixed Mode geht der Problematik bei der Qualitätsmessung und Test von Legacy Code auf den Grund.
Logisches Gestrüpp: Mixed Mode geht der Problematik bei der Qualitätsmessung und Test von Legacy Code auf den Grund.
(Bild: © alphaspirit - Fotolia)

Die Thematik „Qualitätsmessung und Test von Legacy Code“ ist hochaktuell. Unter dem etwas unscharfen Begriff Legacy Code versteht man den überlieferten, alten Bestand eines Programmcodes. Dabei ist nicht das absolute Alter des Codes entscheidend, sondern die Umstände, unter denen mit diesem Code gearbeitet wird und die dazu führen, dass der Code einen älteren, nicht mehr aktuellen Softwarestand repräsentiert.

Gleichwohl muss dieser Code nicht zwingend seine Funktionalität eingebüßt haben. Vielmehr ist es aus Kostengründen oft günstiger, diesen alten Code beispielsweise in eine neue Umgebung oder auf eine neue Plattform zu übernehmen und an die erforderlichen Schnittstellen anzupassen. Dieses Verfahren wird in der Praxis häufig angewandt und stellt für sich genommen noch nicht das Problem dar, das hier betrachtet werden soll.

Nicht selten sind aktuelle Softwareprodukte schalenartig aufgebaut, so dass die Funktionalität der Software größtenteils in ihrem Kern abgebildet ist, während die Anpassungen an die sich wandelnde Umwelt und ihre Schnittstellen in der Peripherie des Programmcodes liegen.

Daher wird oft vom „core“ des Programms gesprochen, in dem seit geraumer Zeit zentrale Funktionen der Software liegen, der ebenso lange durch den praktischen Einsatz bewährt ist - und den (unter anderem) aus diesem Grund niemand anfasst. Hier taucht der Umriss des Problems auf: der alte, überlieferte Programmcore, der unter Umständen eben doch Fehlfunktionen produzieren kann.

In der Praxis sind nicht selten für den Programmcode kaum oder keine hinreichenden Spezifikationen oder Kommentare vorhanden, ebenso wenig wie Vorgaben für das Verhalten bei Bedienung innerhalb des Definitionsbereichs, geschweige außerhalb davon.

Nicht selten wird aber für Legacy Code dieser Art eine Qualitätsaussage notwendig. Die Qualität einer Software wird durch systematische Tests gemessen. Und hier zeigt sich der Kern des Problems: Die relevanten, auf den Standards des ISTQB basierenden Testmethodiken gehen vom Vorliegen normativer Vorgaben und von einem geordneten Entwicklungsprozess aus. Tatsächlich zeigt die Praxis, dass beides oft genug nicht der Fall ist.

Analysiert man Problemfälle dieser Art genauer, ergeben sich oft weitere Umstände: Die Entwicklung geht ohne oder unter Missachtung der Prozessvorgaben zur Qualitätssicherung vor sich oder es fehlt das notwendige Wissen für eine State-of-the-Art Softwareentwicklung oder die Einsicht in die Notwendigkeit eines angemessenen, dem Entwicklungsprozess gleichberechtigt beigeordneten Testprozesses fehlt.

Unter solchen Umständen entsteht zwar durchaus lauffähiger Code, dessen Struktur und Architektur aber zumindest teilweise schwer zu verstehen und damit nur unter unnötig hohem Aufwand oder überhaupt nicht testbar ist. Gewachsener Code dieser Art kann als logisches Gestrüpp bezeichnet werden, der bei der Überführung in neue Umgebungen oder bei der Addition neuer Funktionalitäten unerwartete Fehlfunktionen produziert.

Dennoch gibt es Möglichkeiten, undokumentierten und gewachsenen Code bis zu einem gewissen Grad zu testen. Dieser rein technische Aspekt soll jedoch hier nicht behandelt werden, sondern die Ursachen für das unkontrollierte Wuchern von Code und die Möglichkeit, dies zu verhindern.

Artikelfiles und Artikellinks

(ID:43694157)