Product Design, Manufacturing & Innovation Resources
Maison » Vérification statique et vérification dynamique (IT)

Vérification statique et vérification dynamique (IT)

1970
Ingénieur logiciel effectuant une vérification statique à l'aide d'outils d'analyse de code en informatique.

(Image générée à titre d'illustration uniquement)

Verification techniques are broadly classified as static or dynamic. Static verification (or static analysis) examines the system’s code or design without executing it. Examples include code reviews, inspections, and automated static analysis tools. Dynamic verification (or testing) involves executing the system with a set of inputs and observing its behavior to find defects. Both are complementary for comprehensive quality assurance.

La vérification statique et la vérification dynamique sont des approches complémentaires pour la détection des défauts. La vérification statique est effectuée dès les premières étapes du cycle de développement, souvent avant même la compilation du code. Elle permet d'analyser l'intégralité du code source et d'identifier des problèmes tels que les erreurs de syntaxe, les incompatibilités de types, les déréférencements de pointeurs nuls et les violations des normes de codage. N'exigeant pas d'exécution, elle peut déceler des problèmes dans des parties du code difficiles d'accès par les tests. Les outils d'analyse statique automatisés font désormais partie intégrante des flux de travail de développement modernes, fournissant un retour d'information immédiat aux développeurs directement dans leurs environnements de développement intégrés (IDE).

La vérification dynamique, communément appelée test, se concentre sur le comportement du logiciel lors de son exécution. Elle consiste à exécuter le programme avec des entrées spécifiques et à comparer la sortie obtenue à la sortie attendue. C'est le seul moyen de détecter certains types d'erreurs, comme les goulots d'étranglement des performances, les fuites de mémoire qui apparaissent au fil du temps ou une gestion incorrecte des interactions utilisateur complexes. La vérification dynamique comprend différents niveaux de test, allant des tests unitaires qui vérifient chaque composant aux tests système qui valident l'application dans son ensemble. Bien que puissant, le test dynamique est par nature incomplet ; il ne peut prouver la présence de bogues que pour les entrées testées, et non leur absence pour toutes les entrées possibles.

Une stratégie de vérification complète utilise les deux méthodes. L'analyse statique permet de détecter rapidement et à moindre coût une catégorie d'erreurs, tandis que les tests dynamiques valident le comportement fonctionnel et non fonctionnel du système en fonctionnement, garantissant ainsi son bon fonctionnement en conditions réelles d'utilisation.

UNESCO Nomenclature: 1203
- Informatique

Taper

Système abstrait

Perturbation

Substantiel

Usage

Utilisation généralisée

Précurseurs

  • compilateur théorie (pour l'analyse syntaxique et sémantique)
  • techniques de débogage précoces (par exemple, instructions d'impression)
  • logique formelle
  • processus d'analyse et d'inspection du code

Applications

  • Outils d'analyse statique dans les IDE (par exemple, lint, findbugs)
  • frameworks de tests unitaires (par exemple, JUnit, Pytest)
  • processus d'inspection du code et d'examen par les pairs
  • tests de performance et de charge
  • tests d'intrusion de sécurité

Brevets:

NA

Idées d'innovations potentielles

  • hybrid application security testing (hast) combining static and dynamic analysis
  • ai-driven static analysis for predicting likely bug locations
  • fuzz testing (fuzzing) as an advanced form of automated dynamic testing
  • runtime application self-protection (rasp) using dynamic analysis techniques
  • concolic testing, a hybrid technique that uses dynamic testing to guide static analysis
  • static analysis of infrastructure-as-code (iac) templates
  • dynamic analysis within sandboxed environments for malware detection
  • integration of static and dynamic analysis into a single ci/cd pipeline report
En lien avec : analyse statique, analyse dynamique, tests, vérification, qualité logicielle, revue de code, tests unitaires, lint.

Contexte historique

Vérification statique et vérification dynamique (IT)

1960
1960
1967
1970
1970
1970
1970
1956
1960
1967
1967
1970
1970
1970
1970-01-01

(si la date est inconnue ou non pertinente, par exemple « mécanique des fluides », une estimation arrondie de son émergence notable est fournie)

10e année anniversaire

Les images en pleine résolution et les téléchargements sont uniquement disponibles, et 100% gratuits, pour les membres inscrits.