Sommet de l'ASTQ est disponible sur demande! Écoutez les chefs de file de l'industrie expliquer comment ils offrent une qualité continue. Regardez maintenant >>

X
Analyse d'exécution C / C ++

Analyse d'exécution C intégrée

Propulsé par Parasoft C / C ++ test, la solution de test de développement la plus complète pour C et C ++

Analyse d'exécution pour les applications C intégrées

Le test Parasoft C / C ++ détecte les défauts d'exécution, les problèmes de stabilité et les vulnérabilités de sécurité, tels que les fuites de mémoire, les pointeurs nuls, la mémoire non initialisée et les débordements de tampon, en surveillant l'exécution lors de l'exécution d'une application basée sur l'hôte ou intégrée, ou d'une unité d'exécution tests écrits en C. Le composant d'exécution est extrêmement léger, ne nécessitant que de petites quantités de code supplémentaire et d'espace de données.

Comment ça marche?

Le test Parasoft C / C ++ instrumente automatiquement la base de code d'une application pour activer la surveillance lorsque l'application est en cours d'exécution, identifiant les défauts graves, les problèmes de stabilité et les vulnérabilités de sécurité, tels que:

  • Fuites de mémoire
  • Corruption de la mémoire
  • Lecture de la mémoire non initialisée
  • Accès à la mémoire à l'aide d'un pointeur hors de portée (par exemple, dépassement de la mémoire tampon)
  • Accéder à la mémoire à l'aide d'un pointeur nul
  • Utilisation de free () sur un pointeur invalide

L'analyse d'exécution du test Parasoft C / C ++ fournit des configurations de test prédéfinies pour prendre en charge les applications natives et intégrées avec des allocations de mémoire de type C (malloc / free). L'analyse d'exécution peut être effectuée pendant les tests unitaires, pour valider des scénarios et des chemins d'exécution spécifiques, et des tests fonctionnels, pour surveiller l'application entièrement intégrée.

Les défauts qui ont été détectés pendant les tests d'exécution peuvent être présentés directement dans l'EDI du développeur et corrélés avec d'autres résultats de test et métriques de qualité, tels que la couverture de code ou les résultats d'analyse statique du test Parasoft C / C ++, afin que l'utilisateur puisse obtenir un image complète de l'application testée, facilitant la compréhension de la cause première des défauts d'exécution.

CARACTÉRISTIQUES

Le test Parasoft C / C ++ surveille une application en cours d'exécution, détectant les problèmes liés à l'exécution (c'est-à-dire les fuites de mémoire, la corruption de la mémoire, la lecture de la mémoire non initialisée, les débordements de tampon) qui pourraient entraîner des problèmes de stabilité, des dysfonctionnements fonctionnels ou des vulnérabilités de sécurité. Contrairement à l'analyse statique, où les avertissements peuvent ne pas nécessairement entraîner des bogues dans le code en cours d'exécution (c'est-à-dire des faux positifs), les bogues détectés par l'analyse dynamique sont toujours de vrais positifs.

Le test Parasoft C / C ++ surveille les binaires de test lors de l'exécution des tests unitaires, fournissant un aperçu du code testé pour aider les utilisateurs à comprendre les échecs ou les instabilités des tests unitaires. L'analyse d'exécution peut détecter des erreurs qui ne sont pas facilement déterminées à partir des résultats des tests unitaires. Par exemple, les fuites de mémoire peuvent être ignorées lors des tests unitaires car les problèmes de mémoire ne sont pas vérifiés ou l'impact sur la mémoire n'est pas significatif. En détectant les défauts d'exécution pour les chemins d'exécution appliqués par les cas de test unitaires, le test C / C ++ peut exercer des chemins difficiles à atteindre lors de l'exécution de l'application d'origine.

L'analyse d'exécution peut être effectuée non seulement pour les applications natives, mais également pour les environnements multiplateformes / intégrés, de sorte que l'analyse est effectuée dans l'environnement de production d'origine. Les bogues peuvent ne pas se manifester avec le développement basé sur l'hôte et le code cible peut avoir une architecture de processeur, un système d'exploitation et des contraintes de périphérique différents, donc sans cela, les utilisateurs devraient effectuer un débogage compliqué sur la cible (en supposant que les défauts pourraient être détectés en ayant certains effets secondaires visibles lors des tests fonctionnels réguliers).

Les défauts d'exécution sont présentés dans l'EDI de manière unifiée avec d'autres données de test, telles que la couverture de code, les échecs de test unitaire ou les résultats d'analyse statique, il est donc plus facile d'analyser et de comprendre la cause première des défauts d'exécution.

Bénéficiez de l'approche Parasoft

Identifiez les défauts réels et les vulnérabilités de sécurité à un stade précoce, lors des tests unitaires et d'intégration, dans l'environnement intégré au Runtime d'origine

Les défauts d'exécution dans les environnements embarqués sont souvent difficiles à reproduire sur une plate-forme hôte (et souvent également sur les plates-formes cibles). En surveillant l'exécution d'exécution d'une application embarquée, dans l'environnement d'exécution embarqué d'origine, Parasoft vous aide à découvrir les défauts réels de votre logiciel.

Comprendre la cause fondamentale des défauts pour une approche préventive

En corrélant les défauts d'exécution avec les résultats de l'analyse statique, Parasoft donne aux utilisateurs une visibilité pour comprendre et identifier la cause première des défauts. Cela aide les équipes à appliquer des pratiques préventives sur l'ensemble de la base de code pour découvrir des défauts cachés supplémentaires et réduire l'apparition de défauts à l'avenir.

Trouver plus de bogues lors des tests unitaires

Les tests unitaires sont une pratique de test critique pour garantir que votre code fonctionne comme prévu dans des conditions difficiles ou impossibles à reproduire lorsque l'application est entièrement assemblée. Le test Parasoft C / C ++ vous permet de tirer parti de l'analyse d'exécution pendant l'exécution des tests unitaires, pour découvrir les problèmes d'exécution qui sont enfouis dans l'application que vous ne pouvez pas facilement reproduire dans votre environnement de pré-production.