30. janvier 2019
QF-Test et l'analyse de couverture de code client Java
L'analyse de la couverture du code peut être utilisée afin d'analyser dans quelle mesure le code source d'un programme est exécuté pendant l'exécution du test. Un pourcentage élevé de code exécuté suggère un risque plus faible de bogues logiciels non détectés.
QF-Test seul n'offre pas la possibilité de générer des rapports de couverture de code. Cependant, il est possible de combiner QF-Test avec des outils Open Source comme JaCoCo. L'intégration de tels outils permet de générer de tels rapports de couverture de code pour les étapes de test effectuées par QF-Test.
Comment intégrer JaCoCo dans un test QF-Test ?
Afin d'intégrer JaCoCo dans un test QF-Test, vous devez d'abord extraire le fichier 'jacocoagent.jar' du dossier lib du fichier 'jacoco-$(version).zip'. Ce fichier zip peut être téléchargé ici.
Il est plus facile d'intégrer JaCoCo si l'application Java que vous testez est un fichier .jar ou .class. Dans ce cas, il vous suffit de localiser le nœud "Start Java SUT client" qui démarre votre application Java. Ensuite, spécifiez
-javaagent:<path to jacocoagent.jar>=destfile=<chemin+nom de fichier où jacoco doit écrire ses statistiques>
in the "parameter table" of this node.
Si vous avez une application Java .exe ou .bat, la méthode ci-dessus ne fonctionnera pas. Dans ce cas, deux scripts de serveur Jython sont nécessaires. Le premier script avec le contenu
jacocojar = "<path to jacocoagent.jar>"
destfile = "<path+filename to where jacoco should write its statistics>"
rc.setProperty("env", "JAVA_TOOL_OPTIONS", "-javaagent:%s=destfile=%s" % (jacocojar, destfile))
doit être inséré avant le nœud " Start SUT Client " et un autre script plus facultatif avec
rc.setProperty("env", "JAVA_TOOL_OPTIONS", None)
peut être inséré après le nœud "Wait for client to connect".
Remarques
- Veuillez noter que JaCoCo n'écrit pas directement son rapport dans le fichier de résultat. Le fichier de résultat est écrit lorsque l'application que vous testez se termine !
- Le fichier de résultats JaCoCo est assez illisible lorsqu'il est ouvert avec la plupart des éditeurs de texte. Pour analyser les statistiques, vous devrez donc probablement utiliser un plugin pour votre IDE.
- Afin de prendre le contrôle de l'application que vous testez, QF-Test injecte certaines de ses propres classes dans l'application. En conséquence, le fichier de résultat ne contient pas seulement des statistiques de couverture de code pour les classes de votre application, mais aussi pour certaines classes de QF-Test. Comme vous ne voulez probablement pas tester QF-Test mais votre application, vous pouvez simplement ignorer les statistiques créées pour les classes QF-Test.
- Veuillez vous assurer que le processus qui exécute votre application a le droit d'écrire le fichier de résultat JaCoCo.
- Lorsque vous spécifiez un chemin (Windows) dans un script Jython/Groovy, veuillez remplacer tous les caractères "\" du chemin par "/".