Avant que cette question soit marquée comme dupliquée, veuillez le lire. ;) Il existe déjà plusieurs questions sur les outils de couverture et telles que celles-ci sont un peu différentes que les habituelles (j'espère).
Selon ici un petit exemple: p> public class Dummy {
public int a = 0;
public int b = 0;
public int c = 0;
public void doSomething() {
a += 5;
b += 5;
c = b + 5;
}
}
public class DummyTest {
@Test
public void testDoSomething() {
Dummy dummy = new Dummy();
dummy.doSomething();
assertEquals( 10, dummy.c );
}
}
3 Réponses :
Comme vous pouvez le constater, le test aura une couverture de 100% de lignes, l'affirmation de la valeur du champ 'c' couvrira ce champ et couvrira indirectement le champ 'B', mais il n'y a pas de couverture d'affirmation sur le terrain 'une'. Cela signifie que le test couvre 100% des lignes de code et assure que c contient la valeur attendue et la plupart probablement également B contient le bon, mais A n'est pas affirmé du tout et peut une valeur complètement incorrecte. P> blockQuote>
Eh bien, "couverture" signifie malheureusement différentes choses à différentes personnes ... ce test exercices em> 100% des lignes de code, mais ce n'est pas tester em> tous . P>
Ce que vous cherchez est bien géré par Test de mutation . P>
regarder Jester , qui utilise des tests de mutation pour signaler la couverture de code. P>
S'il y a quelque chose ici méritant un vote, j'apprécierais de savoir ce que c'est.
Peut-être que vous avez des ennemis personnels ici? Je n'ai rien trouvé à l'objet, alors je considère que le bowvote est également injuste. Je vais le faire bon avec un upvote de la mienne.
Votez-vous, merci pour l'information que cela a déjà été très intéressant et va dans la direction de ce que je cherchais. Merci beaucoup. Je ne le marquerai toujours pas comme répondit juste pour voir quelle entrée entrera toujours.
Il y a des centaines de définitions de "couverture de test", dont les outils de Lits de COT ne gèrent que très peu au mieux. (Ma société construit des outils de couverture de test afin de suivre ce genre de chose). Voir Cette conférence sur la couverture de test pour une vue d'ensemble intéressante . p>
La définition la plus proche que j'ai entendue est une pour la couverture de données; Selon votre définition: - {Il vous dit que chaque élément de données a été écrit et lu lors de l'exécution. La conférence parle de vérifier que chaque em> écrire et chaque em> a été exercée comme cas particulier. P>
Je ne connais pas les centaines de définitions par cœur, mais vous avez peut-être déjà inventé une autre: la couverture des données limitée aux assertions. P>
Merci pour la contribution informative, ma question est encore trop vague ... cela ne devrait pas être limité aux «affirmations», c'est ma terminologie de dire que les valeurs réelles sont vérifiées contre une valeur attendue. L'outil devrait donner une information utile sur les états internes / champs / valeurs de retour «utilisés» dans un test, mais dont les valeurs réelles n'ont pas été vérifiées contre une valeur attendue. PPPF ... des sons assez compliqués, j'espère que c'est compréhensible ...
Si vous êtes uniquement préoccupé par les états / champs / valeurs "utilisés" dans un test, vous souhaitez une couverture de données. ... Tous les outils de couverture des tests sont compliqués; Vous souhaitez extraire des informations sur ce qui se passe sans casser le code et sans beaucoup de travail. Fondamentalement, vous avez besoin d'instrumentation pour collecter les données d'intérêt; Cette introduction doit être un coût modeste pour exécuter et ne pas casser la fonction du programme, et quelque chose doit interpréter les résultats. Non, je ne pense pas que vous allez trouver un tel outil hors de l'étagère. Est-ce juste un souhait ou est une exigence fondamentale pour votre tâche?
C'est un souhait, l'idée est venue tout en écrivant un test de l'unité et en vérifiant sa couverture en termes de lignes de code exécutées. Après avoir cherché un peu quelque chose, je n'ai rien trouvé de correspondance de mon idée et je me demandais simplement si quelqu'un a déjà fait le travail;) Merci d'avoir commu la rétroaction.
Il y a assertions en Java si C'est ce que vous recherchez. P>
Pour voir combien de code a été couvert il y a des outils que vous pouvez utiliser ici sont quelques exemples: coobertura trèfle p>
Alors ... vous recherchez une sorte d'outil pour faire la couverture du flux d'informations? Cela serait effectivement utile, même si je ne sais pas de rien. Avoir un +1.
Ouais, depuis que je suis paresseux;) J'aimerais quelque chose qui me dit, hey tu as oublié de tester la valeur du champ xy en classe YZ.