Andreas Korthaus: Tests / Qualitätssicherung - aber wie?

Beitrag lesen

Hallo!

Ich bin jetzt schon so einige Monate an einem PHP-Projekt, und werde das bald fertigstellen. Jetzt mache ich mir Gedanken über eine Quzalitätssicherung, bzw. über ein systematisches Testen der Software, um möglichst viele Fehler - die sicher vorhanden sind - aufzuspüren.

Nur wie stelle ich das an? Habe da Sachen gehört dass das Testen eines Programms oft 40% und mehr der kompletten Entwicklungszeit in Anspruch nimmt - nur was macht man in der ganzen Zeit? Was ich mache ist halt manuell testen, halt dass ich und andere "beta-Tester" das "Programm" mit möglichst realitätsnahen und möglichst komplexen Daten füttern, und wenn Fehler auftreten kommt das dann in einen Bug-Tracker wie hier im Forum, und wird behoben.

Zu dem (Web-)Projekt, wie gesagt PHP-basiert, ca. 200 PHP-Dateien mit insgesamt ca. 100.000 Zeilen Code, zur Zeit verwende ich noch MySQL als DB, soll aber durch PEAR::DB mit PostgreSQL, Oracle, MSSQL... laufen(da wird mir noch so einiges blühen...). Ich verwende halt ein paar der PEAR-Packages und Smarty als Template-Engine. Ganz grob zur Architektur:
Es gibt ein "Request-Script", an dieses werden alle HTTP-Requests geleitet, dieses läd dann alle notwendigen Libs, je nach Konfiguration verschiedene Plugins, sorgt für Authentifizierung und läd entsprechend dem HTTP-Request ein Script welches dann die eigentliche Aktion durchführt und am Ende ggfs. mit den Templates eine Ausgabe erzeugt.
Es gibt 2 verschiedene Rechte-Systeme, einmal Benutzergruppen(zusammengehörige Abteilungen wo alle Benuitzer denselben Datenbestand haben), und dann gibt es noch verschiedene Benutzertypen, wie Admin, Gast...

Soviel zu der Anwendung. Ich habe gelesen, dass es bei großen Projekten richtige Programme geschrieben werden, die die zu testende Software dann halt auf Herz und Nieren überprüfen - nur wie muss ich mir sowas vorstellen? Geht sowas überhaupt mit einem web-basierten PHP-Projekt? Wie macht Ihr das? Oder muss man sowas direkt in den Code integrierern? Was ich bisher leider erst in Ansätzen gemacht habe aber noch fertig stellen will, ist ein globales Error-Handling mittels PEAR.

Hierbei unterscheide ich nach folgenden Fehlern:

Fehlerhafte Benutzerangaben
Fehlerhafte HTTP-Requests
Fehlerhafte DB-Abfragen
PHP-Fehler

Die werden alle mit möglichst vielen Angaben geloggt. Dann kann ich den Fehler evtl. reproduzieren.

Was könnte man noch machen? Wie kann ich qualitativ hochwertigen Code sicherstellen? Wie kann ich Code testen?

Hätte die Verwendung eines Applikations-Servers + Java hier irgendwelche Vorteile?

Viele Grüße
Andreas