phpbar.de logo

Mailinglisten-Archive

[php] QM fuer PHP-Libraries [WAS: Diagnosetool für Bibliotheken]

[php] QM fuer PHP-Libraries [WAS: Diagnosetool für Bibliotheken]

mhe mhe at ltcgroup.de
Mit Nov 3 17:19:37 CET 2004


Am Tue, 2 Nov 2004 18:46:12 +0100 schrieb Enrico Weigelt <weigelt at metux.de>:

> Mich kotzt es nämlich ehrlichgesagt ziemlich an, daß mit jeder
> neuen PHP-Version mal wieder irgentetwas an einer undefinierten Stelle
> anders wird. Ob das nun session-management ist (als dann irgentwann
> auf einmal register_globals grundsätzlich aus war) oder sich die API
> von diversen extensions ändert, was man aber erst merkt, wenns zu
> spät ist. Irgentwo ist mir dann auch meine Zeit zu schade, erst
> für jede Routine die ich benutze, eine Testroutine zu bauen, die
> mir sagt, ob ich ein neues Release erstmal wieder reparieren muß.

vor dem einspielen eines neuen releases, testet man seine anwendung erstmal.
das kann man automatisieren. einmal halt der applikationsinterne test, von
deinen interfaces und was weiss ich nicht, was du moechtest, da kommst du
nicht drumrum.

das mit dem release und den features etc da wirst du nicht umhinkommen,
einen test fuer die installation auf dem zielsystem zu fahren. dieser kann
entweder aus einem readme bestehen, was der admin durcharbeitet, oder
halt automatische pruefroutinen, die tests abfahren, und die konfiguration
testen.

bekanntestes beispiel dafuer ist typo3, dort kann der user im frontend
sein system testen lassen, ob alles eingerichtet ist, die konfig stimmt,
pfade und sowas alles .. du kommst halt nicht drumherum beim schreien
nach QM bei PHP auch selbst hand an deine applikation zu legen.

> Okay, es ist in der letzten Zeit auch wieder besser geworden, aber
> zeitweise war PHP genauso unzuverlässig wie autoconf.
>
> Ich hab ja schon vor Jahren mal vorgeschlagen, endlich eine saubere
> Beschreibung für Interfaces durchzusetzen. Wenn dann meine Anwendung
> ein bestimmtes API-Interface will, das die Engine nicht hat, dann
> muß das Alarm geben - und zwar *bevor* man die Anwendung bzw. die
> Engine in den Produktionseinsatz übernimmt.

das genau machen deine automatischen tests der konfiguration im zielsystem.
natuerlich sind die momentanen moeglichkeiten in php4 beschraenkt, was
die details von klassen angehen und parameter und geschichten etc.

in php5 gibt es aber dazu mehr, siehe mal hier ..
http://de3.php.net/manual/en/language.oop5.reflection.php

das hindert dich nichtmehr dran, tests fuer das zielsystem zu schreiben,
welche auch details pruefen .. ob das sinn macht, sei eine andere frage ..
normalerweise schreibt man funktionstests fuer die komponenten, das faende
ich sinnvoller, das interface kann sich doch erweitern, ohne das fkt.
davon beeintraechtigt wird ..

> Das Problem betrifft übrigends nicht nur PHP, sondern auch eine
> ganze Reihe anderer weit verbreiteter Tools, z.b. glib/gtk, Qt, uvm.

mh, wen die von dir eingesetzen produkte nicht deinen qualitaetsanforderungen
genuegen, warum setzt du sie dann ein ? es hat doch fuer dich vorteile, das
du sie einsetzt. das defizit in qualitaet solltest du von hand meistern ..

ich nutze automatische tests schon seit ewigkeiten, hab mir kleine skripte
geschrieben, die durchrattern, und die halt automatisch fehler auswerfen.
sagt dir "make test" etwas ? wirft man einen blick darein, kann man es ganz
schnell fuer sich adaptieren und sich fix eigene testfaelle schreiben.
und zu seiner applikation mit dem testscript kopieren,

ich habe mir aus der distri das run-tests.php script genommen, ein paar
minimale anpassungen gemacht, meine tests geschrieben, eine run.php dazu,
die halt run-tests.php included, dann habe ich im global scope ein
feld __PHP_FAILED_TESTS__, wo dann alle nicht durchlaufenen tests drinne sind ..
hat mich ne ganze stunde gekostet, das so fuer mich hinzubiegen, und einen
test zu erstellen dauert auch nur im minutenbereich ..

ich weiss nicht, das macht keinen aufwand beim installieren, das auszufuehren
auf dem installierten system, und dann zu gucken, was nicht geht .. oder ob es halt geht ..
den test schreiben kostet minuten, das aufuehren der tests geht von hand. anwerfen,
und schauen was nicht lief. das von hand zu machen, waere wahnsinn ..

http://qa.php.net/write-test.php

wuerd mich freuen, wen manche oss entwickler in php sich ein vorbild an deren eltern nehmen ..

ciao
  Mathias

php::bar PHP Wiki   -   Listenarchive