Mailinglisten-Archive |
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