Bonjour et bienvenue dans la section «Test statique» de notre cours.
Nous avons mentionné les tests statiques dans le premier section de ce cours et a déclaré que statique
les techniques testent le logiciel sans exécuter le code du logiciel. Tandis que Les tests dynamiques, en revanche, nécessitent la exécution du logiciel sous test.
Les tests statiques peuvent être considérés comme la première ligne de défense en minimisant les défauts de la
finale logiciel en supprimant les défauts des produits de travail que nous utiliserons dans la construction de notre logiciel ou base de test.
Et donc rend ces défauts moins chers et plus facile à réparer.
Les tests statiques sont souvent un domaine oublié tests de logiciels
- et les entreprises perdent beaucoup en ne techniques de test statique dans leur logiciel cycle de vie du développement.
Comme nous l'avons dit, les tests statiques reposent sur examiner les produits de travail logiciel.
L'examen est soit un examen manuel de produits de travail (i. e. , avis) ou en utilisant un logiciel outils et utilitaires (i. e. , analyse statique).
Que l'examen soit manuel ou à l'aide d'outils, les deux types évaluent le code ou un autre
produit de travail testé sans réellement exécuter le code ou le produit de travail testé.
Le programme se concentre davantage sur la revue processus que je devais enregistrer quelques vidéos Explique le.
En attendant, il ne mentionnait que l'analyse statique par outils très brièvement. Voici tout ce que vous devez savoir est cette analyse statique.
l'analyse statique est essentielle pour la sécurité critique systèmes informatiques (e. g. , aviation, médical ou nucléaire),
mais l’analyse statique est également devenue essentielle et commun dans d'autres paramètres. Par exemple, statique l'analyse est une partie importante des tests de sécurité.
L’analyse statique est également souvent intégrée systèmes de construction et de livraison
automatisés, par exemple, dans le développement Agile, livraison et déploiement continu.
Différences entre les tests statiques et dynamiques
Comme nous parlions de tests dynamiques. voyons parler avec les différences entre statique et les
tests dynamiques Comme nous l'avons mentionné précédemment, les tests statiques et les tests dynamiques peuvent avoir les mêmes objectifs.
Objectif tel que fournir une évaluation des la qualité des produits de travail et l'identification défauts le plus tôt possible.
Les tests statiques et dynamiques se complètent d'autres en trouvant différents types de défauts.
Permettez-moi de vous donner un exemple pour que vous puissiez différence principale entre statique et dinamique essai.
Dans les techniques de test dynamique régulières, développeur va écrire le code et construire un exécutable et passez
le logiciel exécutable au testeur pour le tester. Le testeur nécessité de concevoir des cas de test et des procédures
de test, exécuter les procédures de test et comparer le résultat attendu au résultat réel et s'ils ne sont pas identiques, le testeur essaiera le plusieurs
fois pour vous assurer qu'il s'agit bien d'un échec. Le testeur créera alors un rapport de bogue et envoyez-le au développeur pour le corriger.
Le développeur tentera le scénario et pourrait communiquer avec le testeur plusieurs fois jusqu'à ce qu'il peut vérifier l'échec.
Le développeur tentera alors de trouver la cause
première de l'échec et croyez-moi, cela pourrait prendre des jours pour le trouver .. et si trouvé que le développeur va essayer de le réparer, ce qui encore une fois pourrait également prendre beaucoup de temps.
Une fois le bogue corrigé, le développeur envoyer le nouveau logiciel exécutable avec le correctif à le testeur pour confirmer le correctif ..
dans le cas où le bogue n'est pas réellement corrigé, alors le le cycle sera répété plusieurs fois jusqu'au test confirme la correction et ainsi de suite….
alors… c'est un très long voyage Imaginez
maintenant une situation où une personne ou un outil logiciel peut examiner le code source écrit
par le développeur et trouve directement le punaise .. il sera facile de corriger le bogue alors .. et nous sommes fait… c'est la magie des tests statiques.
Trouver des défauts et non des échecs est l'un des principaux distinction entre les tests statiques et dynamiques.
Un défaut peut résider dans un produit de travail pour une très longtemps sans provoquer de panne.
Le chemin où se trouve le défaut peut être rarement exercé ou difficile à atteindre, il ne sera donc pas
facile de construire et d'exécuter un test dynamique qui le rencontre. Les tests statiques peuvent être en mesure de trouver le défaut avec beaucoup moins d'effort.
Une autre distinction est que les tests statiques peuvent être utilisé pour améliorer la cohérence et interne qualité des produits de
travail, tandis que les tests dynamiques se concentrent généralement sur comportements visibles de l'extérieur.
Utilisation de techniques de test statiques pour trouver des défauts puis la correction rapide de ces défauts est presque toujours beaucoup moins
cher pour l'organisation que d'utiliser des tests dynamiques pour trouver des défauts dans l'objet à tester, puis réparer eux, surtout
si l'on considère les coûts supplémentaires associés à la mise
à jour d'autres produits de travail et effectuer des tests de confirmation et de régression.
Même si les tests statiques ressemblent à de la magie mais nous aurons encore besoin de faire des
tests dynamiques car l'exécution du code exécutable peut trouver d'autres types de défauts. Les tests statiques sont donc Complémentaire aux tests dynamiques.
Comparé aux tests dynamiques, défauts typiques qui sont plus faciles et moins chers à trouver et à réparer par le biais
de tests statiques comprennent: • Les défauts d'exigence (e. g. , incohérences, ambiguïtés, contradictions, omissions, inexactitudes et
redondances) • Défauts de conception (e. g. , des algorithmes inefficaces ou structures de bases
de données, couplage élevé, faible cohésion) • Défauts de codage (e. g. , variables non définies valeurs, variables déclarées mais jamais utilisé, code inaccessible, code en double)
• Écarts par rapport aux normes (e. g. , manque de respect des
normes de codage) • Spécifications d'interface incorrectes (e. g. , en utilisant entiers au lieu de flottants lors du passage paramètres
entre les composants) • Failles de sécurité (e. g. , sensibilité à débordements de tampon) •
Lacunes ou inexactitudes dans la traçabilité des bases de couverture (e. g. , tests manquants pour une acceptation critère) De plus, la plupart des types
de défauts de maintenabilité ne peut être trouvé que par des tests statiques (e. g. , le code est trop
complexe à entretenir, mauvaise modularisation, mauvaise réutilisation des composants, code difficile à analyser et modifier sans introduire de nouveaux défauts).