20 august 2020PG










Les tests unitaires ont-ils du sens sans mesurer la couverture de code?
La couverture de code vous montre quelles parties de votre logiciel ont été testées. Si vous exécutez des tests unitaires sans mesurer la couverture de code, vous n'aurez pas un aperçu de ce que vous avez testé et de ce qui vous reste à faire. Il est probable que vous testerez plusieurs fois certaines parties du code - une perte de temps et d'argent - et que d'autres parties de votre logiciel seront négligées, celles qui peuvent contenir des erreurs graves (et coûteuses) par exemple. Si des erreurs surviennent plus tard chez le client final, vous ne savez pas où les rechercher.Sans couverture de code, il n´y a aucune visibilité sur ce qui a déjà été fait. Les tests unitaires sans couverture, c'est comme pêcher dans des eaux troubles ou se promener dans le brouillard ... sans radar.
Pour les logiciels dits critiques pour la sécurité dans les domaines tels que l'aviation, l'automobile ou la médecine, la mesure et la vérification de la couverture du code sont obligatoires.
Même pour les logiciels non soumis aux normes (DO-178C, EN 50128, IEC 61508, IEC 62304, ISO 26262... etc.), il est primordial à notre époque de mesurer la couverture de code. Cela peut augmenter considérablement la qualité du logiciel. La couverture de code à elle seule ne garantit pas de bons tests, mais il est clair que sans une couverture suffisante, le logiciel est définitivement inadéquat ou si il a été testé « sur une base aléatoire », votre logiciel est comme une banane qui mûrit uniquement chez le client ...
« Beaucoup de développeurs pensent qu'ils ont des bonnes liste d'exigences et par là même de bons tests, pour découvrir plus tard, via une analyse de couverture de code, que ces « bons tests » ne couvraient que 60% du code. De toute évidence, ils avaient des exigences faibles, ou des tests faibles, ou très probablement : LES DEUX.
« La couverture du code vous ouvre les yeux. Franchement, même les logiciels non critiques pour la sécurité, devraient être soumis à la couverture de test. Pas pour atteindre 100%, pas du tout; mais plutôt s'assurer qu'ils couvrent au moins 75%, et ainsi pouvoir affirmer qu'ils ont de bonnes exigences et de bons tests.»
(Vance Hilderman, Directeur technique, AFuzion Inc. / Auteur des livres: « Avionics Certification » et « The Avionics Development Ecosystem »)
D'ailleurs, il est très motivant pour un testeur de voir l'avancement de son travail via la couverture de code.
Comme déjà mentionné, les cas de test redondants peuvent être évités grâce à la couverture de code.
Si le logiciel change, les cas de test doivent être adaptés. Avec trop de cas de test - ce qu'on n'aurait pas fait si la couverture de code avait été mesurée - une dépense de temps importante est alors nécessaire. Cela engendre pas seulement des coûts élevés, mais souvent des imprévus dans le projet, ils conduisent alors à désactiver les tests unitaires au lieu de les ajuster. Conçue comme une mesure immédiate, cette « solution temporaire » conduit à terme à une couverture de test définitivement plus faible et à une qualité logicielle médiocre.
retour aux FAQ
Avantages
- Compatible avec tous les compilateurs natifs ou croisés
- Compatible avec toutes les cibles embarquées et tous les microcontrôleurs
- Analyses pour tous les niveaux de couverture jusqu´à MC/DC et MCC
- Conforme aux normes de sécurité
- Kit de qualification disponible
- Certifié par TÜV Süd Rail GmbH
- Simplification des tests d'intrusion
- Support des langages C, C++, Java et C#
- Effectue la couverture du noyau
- Intégré dans des chaînes de compilation et des environnements de test
- Fonctionne avec de nombreux systèmes d´exploitation
- Fonctionne avec tous les outils de test unitaires
- Intégration avec de nombreux EDI
- Rapports clairs et explicites
- Très facile à utiliser
- Des milliers de licences utilisées pour les développements critiques
- Témoignages d´utilisateurs
- Présentations en direct, Formations, Workshops,Trainings, Webinaires
- Présentations en ligne, Vidéos, Webinaires enregistrés
Foire aux questions / Frequently Asked Questions