AutoTests

Dernière modification : 2007/10/14 00:50

Il existe des tests automatiques de WiKiss :
  • non régression
  • fonctionnels

documentation

Ces tests sont basés sur le framework PHP SimpleTest
Voir :

Utilisation

Les tests sont des fichiers php stockés dans le répertoire /tools/tests/ du dépot svn.
On y trouve :
  • index.php : fichier chapeau de lancement des tests
  • pages_test.php : code commun et tests et vérif accessibilité de la page d'accueil
  • auth_test.php : tests de l'authentification
  • syntaxe_test.php : tests de la syntaxe wiki
  • xhtml_test.php : test la conformité XHTML via le validator du W3C
  • securite_test.php : tests de protection des entrées utilisateur
  • wkp_Rss_test.php : test le plugin wkp_Rss
Pour lancer les tests :
  • récupérer le code de ceux-ci. le répertoire tools doit être au même niveau que trunk :
svn co svn://svn.tuxfamily.org/svnroot/wikiss/svn/tools

  • modifier les variables dans index.php
/* url to the WiKiss to be tested */
$wikiss_url = 'http://192.168.0.1/wiki_dev/svn/trunk/';
/* relative path to WiKiss to be tested */
$wikiss_path = '../../trunk/';
/* url of the w3c validator */
//~ $validator_url = 'http://validator.w3.org/'; // on-line validator
$validator_url = 'http://192.168.0.1/w3c-markup-validator/'; // local validator (recommended) 

  • installer SimpleTest 1.0.1beta2 dans le répertoire tests/simpletest
cd tools/tests
tar xvzf simpletest_1.0.1beta2.tar.gz

  • Pour les tests d'images, il est nécessaire de patcher la version 1.0.1beta2 (sinon ces tests seront désactivés) :
cd simpletest
wget -O addimage.patch "http://sourceforge.net/tracker/download.php?group_id=76550&atid=547457&file_id=248059&aid=1806353"
patch -p0 < addimage.patch

  • lancer les tests en ligne de commande
php index.php
WiKiss Tests
        TestOfAccueil->testHomepage
        TestOfAccueil->testUnknown
        TestOfAuthent->testBadPwd
        TestOfAuthent->testCookie
        TestOfAuthent->testRemovePage
        TestOfAuthent->testNoPassword
        TestOfSyntaxe->testLinks
        TestOfSyntaxe->testSyntaxe
        TestOfSyntaxe->testToc
        TestOfSyntaxe->testLists
        TestOfSyntaxe->testImages
        TestXhtml->testHomepage
        TestXhtml->testCss
        TestOfSecurite->testPOST
        TestOfSecurite->testGET
        TestWkp_Rss->testRss
        TestWkp_Rss->testValidity
OK
Test cases run: 6/7, Passes: 209, Failures: 0, Exceptions: 0 


Validation XHTML

On peux utiliser le W3C Markup Validation Service en ligne, ou l'installer en local
Il existe un guide d'installation. Mais avec une debian, il suffit d'un simple :
aptitude install w3c-markup-validator

Après avoir configuré apache pour empêcher l'accès depuis l'extérieur, modifiez le fichier /etc/w3c/validator.conf :
# Whether private RFC1918 addresses are allowed.
Allow Private IPs = yes

Il ne reste plus qu'a configurer la variable $validator_url de tools/tests/index/php pour la faire pointer vers l'url du validator.

Validation RSS

Pour valider le flux rss du plugin wkp_Rss on utilise le feedvalidator en ligne de commande.
Voir ici les instructions d'installation
Il faut alors modifier la variable $feedvalidator_path dans le fichier tools/tests/index/php pour pointer sur le répertoire de l'utilitaire. Si cette variable est vide, le test est désactivé.

Tests de sécurité

Utilisation de Wapiti 1.1.6

Restaurer pages de base :
tar xvzf pages.tgz pages/
tar xvzf historique.tgz historique/
rm -Rf pages historiques
svn update pages historique
# donner si necessaire les droits en écriture

Effacer le mot de passe de _config.php
Lancer wapiti :
wapiti.py http://fc/wiki_dev/svn/trunk/ -u


Tests

  • Validation XHTML (en ligne ou locale), CSS
  • pour chaque plugin

Todo

  • écrire les tests manquants (beaucoup)
  • Trouver un outil pour des tests de charge et d'endurance.
voir http://www.opensourcetesting.org/ pour trouver les outils.