Suchen

Softwarequalität

Legacy-Code ist eine tickende Zeitbombe

Seite: 3/5

Firmen zum Thema

„Im Softwarebusiness marschieren alle zu ihrer eigenen Melodie“

Der menschliche Faktor ist hier ganz wichtig. Was bringen die ganze Technik und die ganzen Tools, wenn Designer und Entwickler und Tester nicht miteinander sprechen?

Ja. Aber es geht nicht nur darum, dass sie miteinander reden. Ich nenne es „die Sprache des Tests sprechen“. Damit meine ich, der beste Weg zu definieren, was ein System tun soll und zu beweisen, dass es das auch tut, ist einen Test zu bauen, der prüft, dass das System das tut, was es soll. Nicht wahr?

Wenn Flugzeugkonstrukteure ein Flugzeug bauen, belasten sie die Flügel so stark, dass sie abbrechen. Und sie ermitteln die Kraft, die nötig ist, damit der Flügel abbricht. Das heißt, sie zerstören etwas, um zu beweisen, dass das Design schlüssig ist. Sie benutzen dafür nicht nur ein Computermodell. Dazu muss man wissen: OK, bei einer Belastung von 100 Newtonmetern pro Quadratfuß bricht der Flügel.

Das ist das Ziel, auf das man gemeinsam zuarbeitet. Der Designer entwirft die Flügelspanten so, dass sie diese Kraft aufnehmen können. Die Schweißer und Nieter bauen die Teile so zusammen, wie es der Designer entworfen hat und die Tester prüfen dann, dass es sich tatsächlich so verhält. Aber im Softwarebereich marschiert jeder zu seiner eigenen Melodie. Und der breiteste Graben liegt zwischen den Codern und der Qualitätssicherung.

Das heißt, in der realen Welt, bei der realen Produktentwicklung wendet man von vornherein so etwas wie testbasiertes Design an. Man entwickelt ein Produkt von Anfang an so, dass es in der Lage ist, bestimmte Tests zu bestehen.

Genau! Das ist ganz entscheidend. Das fehlende Glied bei der Software ist, dass niemand die Testkriterien dokumentiert. Es ist sehr einfach, einen Algorithmus zu schreiben, wenn Sie mir sagen, was er erledigen soll. Es ist noch einfacher, wenn Sie mir sagen: Das sind die Testkriterien, die er erfüllen muss.

Lassen Sie die besten Leute im Team über die Grenzfälle nachdenken und die Tests entsprechend bauen. Die Implementierung kann jeder Junior-Programmierer erledigen, wenn ich ihm sage: Hey, das sind die Tests, die das Programm bestehen muss.

Aber jetzt kommt noch etwas: Was ist mit den Millionen von Codezeilen, die draußen in der Welt sind und nicht genügend getestet wurden? Jeder Softwarehersteller hat Bestandteile in seinen Applikationen, die unzureihend getestet sind. Das ist eine große tickende Zeitbombe. Denn wenn man bestehenden Code auf neue Weise wiederverwendet oder ihn auf eine neue Art anspricht und er plötzlich nicht mehr funktioniert und Sie nicht wissen, warum, dann wissen Sie nicht, was Sie kaputtgemacht haben.

Das erinnert mich ein wenig an die Chaostheorie, die in den 90-er Jahren sehr populär war. Sie besagt, dass jedes System einen Punkt besitzt, an dem es unvorhersagbar wird. Wir wissen nicht, wo dieser Punkt liegt. Aber es gibt Bedingungen, unter denen Systeme, die man sehr gut zu kennen glaubt, sich plötzlich erratisch verhalten. Und mit dem unzureichend getesteten Code ist es genauso, er ist –

– überall. Wir benutzen ihn jeden Tag. Manchmal hängen Menschenleben davon ab.

(ID:44562071)