Mes employeurs organisent un concours mensuel de tests unitaires. Une journée entière est consacrée à la rédaction des tests unitaires - nous faisons évidemment plus de tests tout au long du mois, mais c'est une journée entière - et le "gagnant" du concours reçoit un prix. Cependant, nous trouvons qu'il est difficile de déterminer qui est le gagnant.
Nous attribuions des points pour chaque cas de test. Donc, si vous avez écrit un test unitaire comme celui-ci ...
for (int i = 0; i < 100; i++) {
assertTrue(i*i, square(i));
}
vous obtiendrez 100 points. Évidemment, il s'agit d'un exemple simpliste, mais il montre les problèmes liés à l'attribution de "points" à chaque scénario de test.
Nous sommes principalement une boutique Java et Javascript. J'ai donc suggéré de compter le nombre de branches de code testées en tant que métrique. Nous pouvons facilement compter les branches testées via un outil de couverture de code (comme EclEmma). Cependant, je ne sais pas comment nous ferions cela avec nos tests Selenium et obtenir une couverture de code sur les sources Javascript (des idées?)
Quelqu'un a-t-il des suggestions sur la façon dont nous pourrions mieux déterminer le gagnant de ce concours?
Éditer
Je sais comment écrire des tests unitaires, je sais comment écrire des tests unitaires efficaces, je n'ai pas besoin d'aide pour déterminer quoi tester. Je n'ai aucun contrôle sur cette compétition - la compétition continuera. Donc, soit j'ajoute une contribution pour l'améliorer, soit je continue à jouer aux tests (oui, je les joue. Bien sûr que je les joue. Il y a des prix à gagner)
Éditer
Cette question ici est évidemment pas un doublon, mais il contient des informations utiles sur la façon de trouver de bons cas de test, il ne fournit pas de mesures utiles pour évaluer la concurrence.