test.ical.ly | getting the web by the balls

Feb/10

12

Beurteilung von Frameworks anhand ihres Umganges mit Tests

Gestern wurde ich von einem Kollegen (danke Nils) auf das Blog whitewashing von Benjamin Eberlei aufmerksam gemacht. Benjamin ist ein aktiver Contributer verschiedener Open Source Projekte und hat viele interessante Posts geschrieben.

An einem Beitrag bin ich etwas hängengeblieben. Er hat auf der IPCSpring im letzten Jahr einen Vortag über Frameworks und ihren Umgang mit Tests gehalten. Man muss ein wenig googlen, um seine Slides zu finden, aber zu finden sind sie schliesslich auf Slideshare.

Benjamin stellt das Zend Framwork, symfony, ezComponents und CakePHP gegenüber und beurteilt recht objektiv folgende Kriterien:

  • Einstellung des jeweiligen Projektes zum Thema Tests
  • Anzahl der vorhandenen Unit Tests
  • Eingesetztes Testing Framework
  • Code Coverage
  • Code Duplication

Seine Ergebnisse sind nicht besonders überraschend. Oder doch?

subjektive-einschaetzung

Naja, vielleicht doch. Ich hätte durchaus erwartet, dass CakePHP das Schlusslicht bildet (ganz überheblich und ohne nennenswerte eigene Erfahrungen), auch erwartet hätte ich, dass symfony mit seinem eigenen Testing Framework lime und den (mitte letzten Jahres) nicht besonders zahlreichen Tests nicht viel besser da steht. Von den ezComponents hätte ich durchaus technische Brillianz erwartet, aber kein so gutes Abschneiden in Sachen Tests. Bisher hatte ich immer mal wieder mit ez Publish zu tun und da war zwar eine hohe Funktionalität aber nicht nicht besonders hohe Qualität zu erwarten (der ez Publish Code ist teilweise sehr Spaghetti-artig..). Zend hätte ich aber ganz klar ganz vorne erwartet.

Als ich vor ein paar Tagen in meinen Code Coverage Versuchen zunächst den symfony Code mit analysiert hatte, war ich erstaunt über die recht hohe Abdeckung. Ohne im Detail reingesehen zu haben, habe ich den Eindruck gehabt, als wenn mit der Entwicklung von symfony 1.4 deutlich mehr Wert auf Tests gelegt wurde. Vielleicht, aber das ist nur eine vorsichtige Hypothese, würde symfony heute, ein paar Monate später, besser da stehen.

Aber Benjamin hat sicher Recht, wenn er sagt, es lohnt sich die Tests eines Frameworks zu betrachten, das man einsetzen möchte. Es sollte zumindest den eigenen Ansprüchen genügen, besser aber noch mehr als das. Eine gute Testabdeckung gibt auch dem Anwender eines Frameworks die Chance die Stabilität von Releases zu beurteilen und gibt einen Anhaltspunkt, wie die eigenen Tests anzulegen sind. Im einfachsten Fall kann man immer etwas lernen.

· · · · ·



<<

>>

Theme Design by devolux.nh2.me