Comment commencer à écrire un outil de couverture de code?

Vous cherchez des livres ou d'autres références qui parlent en fait comment écrire un outil de couverture de code en Java; quelques-unes des différentes techniques ou astuces - l'instrumentation par code source ou octet.

Ceci est pour un langage de script qui génère du code octet Java sous le capot.

0

3 Réponses

Si vous parlez de ColdFusion (dont je suppose que vous êtes des tags) alors je ne suis pas sûr que ce soit faisable mais je peux me tromper ici ...

IIRC, Quand CF compile il compile essentiellement dans une forme interprétée du CFML comme un simple fichier source java, il est ensuite compilé dans la classe. Par conséquent, toute instrumentation que vous pourriez avoir s'appliquera à la version intermédiaire plutôt qu'à la CFML elle-même.

En disant que, cependant, Adobe a maintenant le débogueur CF qui peut passer par le code, alors s'il vous plaît me prouver le contraire - j'aimerais la couverture de code en CFML.

0
ajouté
Voir ma réponse à propos de "La couverture des branches pour les langues arbitraires en toute simplicité". L'instrumentation du code CFML directement puis sa compilation en Java donnerait toujours des données de couverture de test directement pour CFML. (Je construis des outils de couverture de test pour vivre).
ajouté l'auteur Ira Baxter, source
Qu'est-ce que tout cela signifie? Couverture du code Rancho pour ColdFusion kunalsaini.blogspot.in/2012 / 05 / & hellip;
ajouté l'auteur J.T., source

Est-ce que le bytecode de votre langage de script est généré? Génère-t-il des métadonnées de débogage? Si oui, l'instrumentation bytecode est probablement le chemin à parcourir. En fait, les outils existants fonctionneront probablement; peut-être avec une modification minime (le problème typique est que les outils sont écrits pour fonctionner avec Java et supposent que com.foo.Bar.class correspond à com / foo / Bar.java.) Dénouer cette hypothèse peut être fastidieux.) EMMA est un ClassLoader qui effectue une réécriture de code octet pour la collecte de code-couverture en Java. Le style de codage est un peu génial, mais je recommande de lire la source pour quelques idées.

Si votre langage de script est interprété, vous aurez besoin de quelque chose de plus haut niveau (niveau source) qui se connecte à l'interpréteur.

0
ajouté

Vous pouvez également utiliser quelque chose comme BCEL pour analyser les lignes de la source qui existent réellement dans le byte-code. Vous ne voulez pas signaler que des éléments comme des lignes vides et des commentaires n'ont pas été couverts.

0
ajouté
Ce n'est pas une bonne idée à moins que les numéros de ligne dans BCEL correspondent exactement à ceux de la liste DSL de l'OP. Si ce n'est pas le cas, vous bénéficiez d'une couverture sur les «mauvaises» sources.
ajouté l'auteur Ira Baxter, source