Vérification et validation logicielles
La vérification et la validation logicielles (V&V) sont des processus complémentaires visant à confirmer que le logiciel est construit correctement par rapport à sa spécification et que le bon logiciel a été développé pour répondre aux besoins des utilisateurs.
Definition
La vérification est l'évaluation de la conformité d'un produit d'une phase de développement aux conditions imposées à son démarrage, et la validation est l'évaluation de la conformité du produit final à son utilisation prévue et aux besoins des utilisateurs.
Scope
Ce sujet couvre les techniques de V&V statiques telles que les revues, les parcours (walkthroughs) et les inspections formelles ; l'analyse statique de programmes pour la détection de défauts sans exécution ; la V&V dynamique par le biais de tests ; la planification et l'indépendance des activités de V&V ; ainsi que les normes telles que ISO/IEC/IEEE 1012 qui régissent les processus de V&V et les niveaux de rigueur.
Core questions
- En quoi la vérification et la validation diffèrent-elles en termes de question et de méthode ?
- Quels défauts les revues et inspections détectent-elles que les tests ne parviennent pas à identifier ?
- Comment l'analyse statique complète-t-elle les tests dynamiques ?
- Comment la rigueur de la V&V est-elle adaptée à la criticité du logiciel ?
Key theories
- Vérification versus validation
- La vérification se demande si nous construisons le produit correctement par rapport à sa spécification, tandis que la validation se demande si nous construisons le bon produit pour l'utilisateur ; les deux nécessitent des preuves différentes et couvrent l'ensemble du cycle de vie.
- Inspection logicielle
- L'inspection de Fagan est un processus de revue structuré et basé sur les rôles qui détecte les défauts de conception et de code tôt et à moindre coût, et demeure l'une des techniques d'élimination des défauts les plus efficaces.
Clinical relevance
Les activités de V&V, en particulier les revues précoces et l'analyse statique, permettent d'éliminer les défauts avant qu'ils n'atteignent des phases ultérieures où ils sont beaucoup plus coûteux ; pour les logiciels critiques pour la sécurité et la mission, une V&V indépendante est souvent exigée par les normes et les organismes de réglementation.
Evidence & guidelines
ISO/IEC/IEEE 1012 définit les processus de V&V et les niveaux d'intégrité, et les normes spécifiques à des domaines, telles que DO-178C (avionique) et IEC 61508 (sécurité fonctionnelle), imposent des exigences de V&V adaptées au risque.
History
L'inspection formelle a été introduite par Fagan chez IBM en 1976 et s'est avérée à plusieurs reprises très rentable ; les outils d'analyse statique ont mûri à partir des années 1990, et la V&V est devenue une discipline réglementée dans les domaines critiques pour la sécurité, codifiée dans des normes telles que IEEE 1012.
Key figures
- Michael Fagan
- Barry Boehm
- Roger Pressman
Related topics
Seminal works
- fagan1976
- ieee1012
- pressman2014
Frequently asked questions
- En quoi la vérification diffère-t-elle de la validation ?
- La vérification contrôle la conformité à la spécification à chaque étape — construire le produit correctement — tandis que la validation vérifie que le produit fini répond réellement aux besoins des utilisateurs — construire le bon produit. Un système peut être vérifié mais échouer à la validation si les exigences elles-mêmes étaient erronées.
- Les revues de code valent-elles vraiment l'effort ?
- Des études empiriques, à commencer par les travaux de Fagan, montrent constamment que les revues et inspections structurées détectent une grande partie des défauts tôt et à moindre coût, identifiant souvent des erreurs que les tests manqueraient, ce qui en fait l'une des techniques de qualité les plus rentables.