A.3. Comment faire des tests de regression en utilisant Subversion

Un problème qui peut survenir quelque fois est «cela marchait avant, et plus maintenant...». Voici une procédure étape-par-étape pour tenter d'indiquer quand exactement le problème s'est produit. Ceci n'est pas pour les utilisateurs occasionnels.

Premièrement, vous aurez besoin de récuperer l'arbre des sources de MPlayer depuis le dépot Subversion. Les instructions peuvent être trouvé au bas de cette page.

Vous aurez donc dans le repertoire mplayer/ une image de l'arbre Subversion, du coté client. Maintenant mettez à jour cette image à la date voulue :

cd mplayer/
svn update -r {"2004-08-23"}

Le format de date est AAAA-MM-JJ HH:MM:SS. Utiliser ce format de date vous assure que vous pourrez extraire les patches selon la date à laquelle elles ont été fusionnés au dépot, comme dans l' archive MPlayer-cvslog.

Maintenant procéder comme pour une mise-à-jour normale :

./configure
make

Pour un non-informaticien qui lit ceci, la méthode la plus rapide d'arriver au point où le problème se produit est d'utiliser une recherche dichotomique — qui est, chercher la date où est survenu le problème en divisant à plusieurs reprises l'intervalle de recherche par moitié. Par exemple, si le problème se produit en 2003, commencez en milieu d'année, puis demandez-vous "Le problème est-il déjà présent à ce moment?". Si oui, revenez au premier Avril; si non, allez au premier Octobre, et ainsi de suite.

Si vous avez beaucoup d'espace libre sur le disque dur (une compilation complète des sources prend actuellement 100 MO, et environ 300-350 MO si les symboles de déboguage sont activés), copiez la plus vieille version fonctionnelle connue avant de la mettre à jour; cela sauvera du temps si vous devez y revenir. (Il est habituellement nécessaire de lancer 'make distclean' avant de recompiller une version plus récente, donc si vous ne faites pas une copie de sauvegarde de votre arbre source original, vous devrez tout recompiler dedans quand vous reviendrez à la version présente.)

Quand vous avez trouvé le jour où le problème survient, continuez la recherche en utilisant l'archive mplayer-cvslog (triée par date) et en affinant par des mises-à-jour depuis Subversion en précisant heure, minute et seconde :

svn update -r {"2004-08-23 15:17:25"}

Cela vous permettra de trouver facilement le patch exact à l'origine du problème.

Si vous trouvez le patch qui est la cause du problème, vous avez quasiement gagné; signalez le à MPlayer Bugzilla ou souscrivez à MPlayer-users et postez-le là. Il y a une chance pour que l'auteur s'empresse de suggérer un correctif. Vous pouvez également décortiquer le patch jusqu'à ce que le bug vous saute aux yeux :-).