2010-04-23 4 views
4

Je suis en charge d'au moins un grand nombre de code PHP existant, qui a désespérément besoin de tests, et j'ai également besoin d'une méthode pour vérifier le site de production à la recherche d'erreurs.PHP: Comment commencer à tester une grande base de code existante et tester la régression sur le site de production?

Je travaille avec PHP depuis de nombreuses années, mais je suis malheureusement nouveau à tester. (Pardon!). Bien que l'écriture de tests pour un code qui a des résultats prévisibles semble assez facile, j'ai du mal à comprendre comment je peux tester le site en direct, pour assurer une sortie correcte.

Je sais que dans un environnement de test, je pourrais configurer la base de données dans un état connu ... mais existe-t-il des méthodes ou techniques appropriées pour tester un site en ligne? Où dois-je commencer?

[Je suis au courant de PHPUnit et SimpleTest, mais n'ont pas choisi un sur l'autre encore]

Répondre

2

cadres de tests unitaires comme PHPUnit sont construits plus pour tester la fonctionnalité des unités séparées, logiques (c.-à-classes), pas tellement le comportement de sites entiers en direct. Un nom de ménage pour cela est Selenium, un système de test d'application Web. Je crois comprendre que les tests Selenium peuvent à leur tour être intégrés à PHPUnit. Comme pour le choix entre Simpletest et PHPUnit, consultez ma récente question sur PHPUnit vs. SimpleTest - les réponses à cette question, notamment @ Gordon, a réussi à me convaincre de PHPUnit.

+0

@Gordon Naan, j'ai été chanceux avec le temps :) –

+0

est-il généralement acceptable les tests sont exécutés à côté du code de production? Je suppose que l'exécution de tests contre la base de code active prouverait au moins que les choses sont en ordre de marche ... est-ce ainsi que cela se fait normalement? –

+0

@anon Je suis nouveau sur le terrain mais non, à mon sens la bonne pratique générale est de tester le code dans des conditions de test isolées (même avec des maquettes pour simuler les accès aux fichiers), puis mettre à jour le live environnement avec le code testé (et de travail). Ce que vous demandez peut aller dans le sens de cette question: http://stackoverflow.com/questions/2405825/do-you-have-health-checks-in-your-web-app-or-web-site n'est * pas * Test d'unité au sens propre du mot. –

2

Je seconde la suggestion de Pekka. Aussi, je suggère fortement d'utiliser PHPUnit, car c'est le standard de facto dans les frameworks UnitTesting dans le monde PHP.

Une autre chose que vous pouvez faire est la tête sur phpqatools.org et utiliser les outils donnés pour analyser votre base de code, trouver le code mort, copier et coller, les violations du code, etc.

profil, ont également votre code avec XDebug ou Zend Debugger pour savoir ce qu'il fonctionne réellement à quelle fréquence. De cette façon, vous aurez non seulement une idée du code que vous devez tester en premier (celui qui s'exécute le plus souvent), mais aussi de son fonctionnement, ce qui est un bon point de départ pour l'optimiser après avoir passé les tests unitaires.

En plus, consultez:

Questions connexes