Mode d’emploi du TP PathCrawler Génération de tests à l’aide de PathCrawler d’une fonction de recherche dichotomique Le programme bsearch.c prend en entrée un tableau d’entiers et un entier et rend 0 si l’entier ne se trouve pas dans le tableau et 1 sinon. Vous allez tester à l’aide de PathCrawler une implémentation défectueuse de ce programme afin de le mettre au point. 1. Allez sur ma page web, enseignement, cours de test Uni. Strasbourg. Récupérez les fichiers du TP. 2. Se placer dans ce répertoire : cd bsearch Nous allons d'abord tester le fichier bsearch_bug1.c 3. Nous allons utiliser la version en ligne de PathCrawler disponible sur http://pathcrawler-online.com Notez que votre session sera fermée après quelques minutes d'inactivité, penser donc à garder vos modification (surtout l'oracle) dans un fichier enregistré pour ne pas le perdre, comme indiqué ci-dessous. 4. Modifier le fichier oracle_Bsearch.c par défaut pour coder l'oracle en utilisant les macros dans le commentaire au début du fichier. Attention ! on ne modifiera pas le nom et les paramètres de la fonction, seulement le corps de la fonction. 5. Faire une archive bsearch_bug1.zip (ou bsearch_bug1.tar) contenant le fichier sous test (bsearch_bug1.c) et l'oracle (oracle_Bsearch.c). Aller sur http://pathcrawler-online.com/ page "Test your code", indiquer l'archive, la fonction sous test (Bsearch) et le fichier sous test. Cliquer sur "Customize test parameters" 6. Les paramètres par défaut et l'oracle soumis vont s'afficher. Définir la précondition (les paramètres de test) nécessaires pour la fonction Bsearch. Pour des raisons de lisibilité, il est également demandé de limiter le test aux valeurs des éléments du tableau, et de celui recherché, dans l’intervalle [-500,500] 7. Confirmer les paramètres pour lancer la génération automatique des cas de test. Patienter pendant la génération (on ne peut pas interrompre une génération en cours). 8. Visualiser les résultats de la génération. Rappel : dans un chemin, on écrite +10 pour le passage par la branche "vrai" de la condition de la ligne 10, et -10 pour le passage par la branche "faux". Attention ! si jamais vous lancez la génération plusieurs fois sur la même version de bsearch, les cas de test générés pourront être différents à chaque fois, mais le nombre de tests, les chemins testés et leurs prédicats ne varieront pas (mais peuvent changer d’ordre). 9. Étudier les chemins des cas de test qui n’ont pas donné la bonne réponse afin de localiser l’erreur dans le code source de bsearch_bug1.c. 10. Copier bsearch_bug1.c dans bsearch.c, et corriger l'erreur dans bsearch.c 11. Faire une nouvelle archive bsearch.zip (ou bsearch.tar) contenant le fichier sous test (bsearch.c) et l'oracle (oracle_Bsearch.c). Aller sur http://pathcrawler-online.com/ page "Test your code", indiquer l'archive, la fonction sous test (Bsearch) et le fichier sous test (bsearch.c). Cliquer sur "Customize test parameters" et entrer les paramètres de test. Confirmer pour lancer la génération. 12. Vérifier qu’il n’y a plus de « failure » dans les résultats après la correction 13. Nous allons maintenant tester le fichier bsearch_bug2.c de la même façon avec le même oracle et les mêmes paramètres de test. 14. Étudier le rapport de test. 15. N’oublier pas de répondre aux questions.