J'ai eu une discussion avec un responsable des tests sur le rôle des tests unitaires et d'intégration. Elle a demandé aux développeurs de signaler ce qu'ils ont testé et comment l'unité a été testée. Mon point de vue est que les tests unitaires et d'intégration font partie du processus de développement, pas du processus de test. Au-delà de la sémantique, je veux dire que les tests unitaires et d'intégration ne devraient pas être inclus dans les rapports de test et que les testeurs de systèmes ne devraient pas s'en préoccuper. Mon raisonnement repose sur deux choses.
Les tests unitaires et d'intégration sont planifiés et réalisés contre une interface et un contrat, toujours. Que vous utilisiez ou non des contrats formalisés, vous testez toujours ce que, par exemple, une méthode est censée faire, c'est-à-dire un contrat.
Lors des tests d'intégration, vous testez l'interface entre deux modules distincts. L'interface et le contrat déterminent quand le test réussit. Mais vous testez toujours une partie limitée de l'ensemble du système. En revanche, les tests des systèmes sont planifiés et exécutés en fonction des spécifications du système. La spécification détermine quand le test réussit.
Je ne vois aucune valeur à communiquer l'ampleur et la profondeur des tests unitaires et d'intégration au testeur (systèmes). Supposons que j'écrive un rapport qui répertorie les types de tests unitaires qui sont effectués sur une classe de couche métier particulière. Que doit-il retirer de cela?
Juger de ce qui devrait et ne devrait pas être testé à partir de cela est une fausse conclusion car le système peut toujours ne pas fonctionner comme l'exigent les spécifications, même si tous les tests unitaires et d'intégration réussissent.
Cela peut sembler une discussion académique inutile, mais si vous travaillez dans un environnement strictement formel comme moi, c'est en fait important pour déterminer comment nous faisons les choses. Quoi qu'il en soit, je me trompe totalement?