Warum entwickeln immer noch so viele Leute ohne UnitTests?

written by Martin HĂ€cker on

Weiß ich nicht, aber ich weiß, was fĂŒr Folgen es hat.

Wenn man ohne Tests entwickelt, dann hat man beim Schreiben von z.B. einer Klasse immer den vollen Zugriff auf das gesamte System - und es ist stÀndig verlockend, nur eben dieses andere Subsystem aufzurufen oder es in die klasse als Instanzvariable einzubinden. Da man kein Korrektiv hat, sind die Folgen dieser Handlungen fast unsichtbar. Die AbhÀngigkeiten im System nehmen immer weiter zu - und die Architetkur immer weiter ab. :/

Als Testgetriebener Entwickler muss man sich, um den Code in einer Testsuite ĂŒberhaupt laufen lassen zu können maximal vom Rest des Systems abkapseln. Das bedeutet das man sich bei jeder AbhĂ€ngigkeit die man dazu nimmt genau ĂŒberlegt, ob man sie wirklich braucht, ob man sie erreichen kann, indem man einen Parameter ĂŒbergibt, oder indem man ein Protokoll einfĂŒhrt das die Kommunikation dieser zweier Systembestandteile klĂ€rt. Immer macht man sich ĂŒber die Grenzen der Komponente Gedanken und wie die Kommunikation darĂŒber hinaus ablĂ€uft.

Man macht eben nicht einfach nur einen Konstruktorparameter ĂŒber den dann als globale Variable alles zugĂ€nglich ist - den man im Test aber niemals instanziiert bekommt.

Diese Tatsache macht fĂŒr mich einen der grĂ¶ĂŸten Unterschiede zwischen Testgetrieben entwickeltem Code und sonstigem Code aus.

Es ist unglaublich schwierig (auf anhieb) Code zu schreiben der Wiederbenutzbar ist und wenig AbhÀngigkeiten besitzt - wenn man Code testgetrieben entwickelt bekommt man aber unheimlich viel davon umsonst.

Alleine deswegen darf es heute eigentlich keine Ausrede mehr Geben ohne Tests zu entwickeln.