Nous avons construit un nombre substantiel de tests unitaires pour notre programme principal au fil des ans. Plusieurs milliers. Le problème est que nous n'avons pas une idée claire de quels tests nous avons parce qu'il y en a tellement. Et c'est un problème parce que nous ne savons pas où nous sommes faibles sur les tests (ou où nous avons des doublons).
Notre application est un moteur de reporting. Vous pouvez donc avoir un modèle qui est utilisé pour tester l'analyse (lisons-nous toutes les propriétés de la table), fusionnant les données (avons-nous conservé les bonnes propriétés de la table dans la fusion), formatant la page finale (la table est-elle placée correctement sur la page ) et / ou le format de sortie (le fichier DOCX créé est-il correct).
Ajoutez à cela ce que nous devons tester. Prenez le remplissage autour d'une cellule de tableau (nous utilisons Word, Excel et PowerPoint pour la conception du rapport). Nous devons tester le remplissage entre les sauts de page, pour un tableau à l'intérieur d'une cellule, des cellules fusionnées verticalement, des cellules fusionnées horizontalement, une cellule fusionnée verticalement et horizontalement qui contient un tableau avec des cellules fusionnées verticalement et horizontalement dans le tableau interne, où ce tableau traverse une page.
Alors, dans quelle catégorie ce test entre-t-il? Remplissage de tableau, sauts de page, cellules imbriquées, cellules fusionnées verticalement, cellules fusionnées horizontalement ou autre chose?
Et comment documenter ces catégories, nommer les tests unitaires, etc.?
Mise à jour: Un certain nombre de personnes ont suggéré d'utiliser des outils de couverture pour vérifier que nous avons une couverture complète. Malheureusement, cela est d'une utilité limitée dans notre cas, car les bogues ont tendance à être dus à des combinaisons spécifiques, c'est donc le code qui a tous été testé, mais pas dans cette combinaison.
Par exemple, un client hier a commencé un signet Word à la fin d'une boucle forEach dans son modèle (un document Word) et l'a terminé au début de la boucle forEach suivante. Tout cela utilisait du code qui a des tests unitaires, mais nous n'avions pas pensé à la combinaison d'un modèle développant un signet commençant à être démarré 25 fois, puis terminé 10 fois (les deux boucles forEach avaient un nombre différent de lignes).