Parasoft C / C ++test
Effectuer analyse statique, tests unitaires et couverture de code pour développer du code C et C++ de haute qualité qui est robuste, sûr, sécurisé et conforme aux normes de l'industrie.
La couverture du code structurel est l'identification du code qui a été exécuté et enregistré dans le but de déterminer si le système a été testé de manière adéquate.
La couverture de code exprime le degré auquel le code source de l'application est exercé par toutes les pratiques de test, y compris les tests unitaires, les tests manuels, les tests fonctionnels automatisés, etc. Ça aussi:
Par conséquent, la couverture des applications fournit un aperçu extrêmement puissant des risques. Dans la plupart des organisations, les tests unitaires sont le principal moyen de couverture. Et bien que les tests unitaires soient une pratique de test précieuse qui offre également plusieurs avantages axés sur les processus, ils sont également coûteux en termes d'expertise et de temps pour créer, gérer et maintenir les tests.
La couverture du code peut être exploitée dans le cadre du processus d'intégration continue (CI), ainsi que dans le cadre du flux de travail du bureau du développeur. Vous pouvez également effectuer des analyses avancées sur le code source et identifier les tests unitaires qui doivent être réexécutés en fonction des modifications de code effectuées par le développeur.
Ces outils de couverture de code sont particulièrement utiles dans les industries pour le développement intégré d'applications critiques pour la sécurité et la sûreté où les systèmes logiciels ne peuvent pas échouer, ou des vies seront perdues.
L'étendue de la couverture des systèmes critiques pour la sécurité dépend de la métrique du niveau d'intégrité de sécurité de l'application (SIL ou ASIL) utilisée dans diverses industries et du niveau d'assurance de développement (DAL) couramment utilisé en avionique. La minutie fait référence aux éléments structurels du code. Ceux-ci sont généralement décomposés en instruction de code, branche, décisions de condition modifiées et avec Parasoft, vous pouvez également accéder à un niveau de granularité de couverture beaucoup plus fin, comme le code objet ou le langage d'assemblage.
La couverture du code est souvent identifiée ou mesurée par l'instrumentation du code. Cela se fait en ornant le code source avec un code de suivi supplémentaire pour déterminer pendant son exécution si chaque chemin d'instruction, de branche et/ou de décision de condition modifiée (MC/CD) a été exécuté.
Il est important de savoir que l'instrumentation du code provoque un gonflement du code. L'augmentation de la taille du code n'est généralement pas un problème. Pour les cibles embarquées avec des contraintes de mémoire, l'augmentation peut avoir un impact sur la capacité à charger le code sur votre matériel cible pour les tests.
Les objectifs de pourcentage de couverture de code peuvent être subjectifs dans certains cas. Dans d'autres cas, ils sont obligatoires. Lors de la création d'applications critiques pour la sécurité où une défaillance peut entraîner la mort, les normes réglementaires et industrielles exigent une couverture à 100 % du code structurel.
Pour les applications qui ne sont pas critiques pour la sécurité, la couverture du code a tendance à être laissée à l'organisation de développement pour décider. Le niveau de confort commun pour ces types de circonstances est d'atteindre un objectif de couverture du code de 80 %.
Déployez la suite de produits Parasoft pour assurer la couverture du code structurel des applications écrites en C, C ++, Java, C # et VB.NET.
Collectez la couverture des tests unitaires, des tests système, des tests manuels, ainsi que de toutes les autres méthodes d'exécution de test utilisées. Parasoft C/C++test prend en charge une gamme de métriques de couverture (Branch, Statement, MC/DC, etc.), que les équipes peuvent utiliser dans le développement d'applications natives et croisées.
Demander une démoCollectez et surveillez la couverture du code lors des tests fonctionnels manuels ou automatisés effectués sur votre application Java. Les utilisateurs peuvent envoyer des données de couverture et des résultats de test à fusionner et à mettre en corrélation pour l'analyse, ce qui fournit des informations sur la qualité des tests de l'application et la qualité de vos tests.
Lancer Essai gratuitCollectez des informations sur la couverture du code pour les applications autonomes et Web écrites en C# et VB.NET. Installez l'application surveillée sur la même machine où dotTEST est installé ou sur une autre machine.
Demander une démoL'obtention de la quantité de code exercé lors des tests est une métrique puissante afin de comprendre le niveau de risque restant dans l'application. Voici quelques bonnes pratiques à suivre.
L'intégration des tests et de la couverture du code dans votre système de build augmentera l'efficacité, favorisera la collaboration et offrira une plus grande visibilité sur l'ensemble de votre cycle de vie de développement logiciel.
Tirez parti de vos tests système pour obtenir une couverture de code et identifier les tests manquants qui peuvent exposer des bogues cachés.
Ne perdez pas de temps à essayer de déterminer toutes les valeurs d'entrée et les conditions préalables requises dans un scénario de test afin d'obtenir une couverture sur une instruction insaisissable, une branche ou une ligne de code MC/CD. Utilisez le conseiller en couverture.
Utilisez les différentes méthodes de test que vous devez effectuer pour accélérer vos besoins de couverture. Une couverture globale peut être obtenue à partir de tests système, d'intégration, unitaires et manuels.
Les solutions Parasoft peuvent analyser et générer automatiquement des cas de test unitaires pour éliminer les problèmes de pointeur nul, les conditions de valeur hors limites, la division par zéro et de nombreux autres types de défauts. De plus, ces cas de test peuvent être activés pour produire une couverture de code et, dans certains cas, vous fournir jusqu'à 90 % de couverture de code structurel.
L'instrumentation du code provoque un gonflement du code et l'augmentation de la taille du code peut avoir un impact sur la capacité à charger le code sur votre matériel cible à mémoire limitée pour le test. Instrumentez des portions de votre code à la fois, exécutez vos tests et agrégez vos métriques de couverture à chaque exécution.
Si vous devez satisfaire une couverture de code structurel à 100 % mais que vous disposez d'un code défensif qui ne s'exécutera que lorsque le système entrera dans un état de panne qui pourrait prendre des semaines, des mois, voire des années (ou peut-être jamais), utilisez votre débogueur pour simuler les conditions nécessaires et effectuer une inspection visuelle de l'exécution/couverture du code.
Si du code est trouvé parce qu'il n'a aucun chemin vers son exécution, pour des raisons de sécurité et de sûreté, assurez-vous qu'il est supprimé et qu'il ne sort jamais sur le terrain.
Couverture du code Parasoft dans les solutions de reporting et d'analyse de tableau de bord IDE et DTP.
Pour commencer à collecter une couverture de code, familiarisez-vous avec vos besoins en matière de couverture. Peut-être que votre secteur d'activité et votre type d'application ne nécessitent pas l'obtention de métriques de couverture, mais vous souhaitez garantir ou améliorer la qualité du code, donc 75 % pourrait être votre objectif initial.
Si votre secteur exige la conformité à une norme fonctionnelle telle que DO-178C pour l'avionique ou ISO 26262 et ISO 21434 pour l'automobile ou CEI 62304 pour le médical, déterminez si vous devez obtenir une couverture de code à 100 % ou si un autre pourcentage de couverture de code est recommandé. Sachez également quel type de couverture de code structurel vous devez satisfaire. Il peut s'agir de la fonction, de la ligne, de l'instruction, du bloc, de l'appel, du chemin, de la décision, de la condition simple, du MC/DC, de l'objet/de l'assemblage ou d'une combinaison de ceux-ci.
L'un des moyens les plus simples d'obtenir une couverture de code est lors de la mise en œuvre, lorsque les ingénieurs créent des cas de test unitaire pour tester leur code. Avec des solutions comme Parasoft C/C++test et Jtest,
Sachez que l'instrumentation du code peut entraîner une surcharge du code et si vous testez sur du matériel cible, vous devrez peut-être effectuer une instrumentation partielle. Le code instrumenté peut également altérer les performances de l'exécution, vous pouvez donc souhaiter vous familiariser avec les différentes fonctionnalités d'optimisation qui s'offrent à vous.
La collecte et le reporting de vos métriques de couverture de code sont essentiels. Il existe plusieurs méthodes selon que votre application s'exécute sur une cible intégrée ou sur un système ou un serveur entièrement doté de ressources.
En fin de compte, vous obtiendrez ou fusionnerez les données de couverture pour obtenir vos métriques de couverture complète du code. Des rapports de couverture peuvent être générés à partir de votre IDE, et ils peuvent être exportés vers le DTP du tableau de bord de rapport et d'analyse de Parasoft. Dans DTP, les utilisateurs peuvent inspecter visuellement les zones à haut risque, comprendre ce qui doit être traité ensuite et produire des rapports de conformité et d'audit.
La solution de Parasoft pour la couverture de code fournit des commentaires critiques sur l'exhaustivité et la rigueur du processus de test, en corrélant les tests et les résultats de la couverture de code structurel. Vous pouvez utiliser ces résultats ou métriques pour évaluer l'exhaustivité des tests au niveau des unités, de l'intégration et du système grâce à notre prise en charge de tous les types importants de couverture de code (fonction, appel, ligne, instruction, bloc, chemin, décision, condition simple et MC/ DC), y compris la couverture des objets/assemblages.
Les résultats de couverture sont disponibles directement dans l'IDE, avec des vues et des faits saillants pratiques dans l'éditeur de code source, ainsi que sous la forme de rapports HTML ou pdf statiques, et de rapports dynamiques via le tableau de bord de reporting centralisé de Parasoft.
Les utilisateurs peuvent surveiller les applications exécutées nativement sur le bureau, sur plusieurs plates-formes à l'aide de simulateurs ou sur du matériel embarqué réel. Le module de couverture de C/C++test est optimisé pour minimiser l'impact sur les performances d'exécution et l'empreinte binaire de test, ce qui le rend adapté à une utilisation avec des applications haut de gamme basées sur des serveurs, ainsi qu'avec des systèmes très limités basés sur 16 bits. microcontrôleurs.
Lorsqu'ils sont connectés au Process Intelligence Engine de Parasoft, les utilisateurs bénéficient de l'analyse d'impact des tests. Pour chaque test effectué, y compris manuel, au niveau du système ou basé sur l'interface utilisateur, les tests sont enregistrés non seulement pour les tests/échecs et les résultats, mais également pour leur impact sur la couverture de la base de code.
Chaque test supplémentaire est superposé à ces informations existantes, créant une image complète de la réussite et de la couverture des tests. Au fur et à mesure que le code est modifié, l'impact est clairement visible sur l'enregistrement sous-jacent, mettant en évidence les tests de couverture qui échouent désormais ou le code qui n'est plus testé. La collecte de ces informations à divers degrés de détail permet aux développeurs et aux testeurs d'identifier rapidement ce qui doit être modifié/corrigé pour la prochaine exécution de test.
Avec Parasoft, les équipes peuvent se concentrer sur la couverture du code pour les domaines de développement actif, au lieu de l'intégralité de la base de code, ce qui peut être particulièrement problématique lorsque l'on travaille avec des bases de code héritées. Plutôt que d'essayer uniquement d'obtenir un numéro de couverture pour l'ensemble de la base de code, Parasoft vous aide à identifier les parties du code qui changent.
Le tableau de bord de reporting de Parasoft corrèle les données du test C/C++ avec les changements observés dans la base de code pour concentrer l'équipe de développement sur l'obtention de niveaux plus élevés de couverture de code pour ces parties spécifiques et modifiées de la base de code. Avec Parasoft, vous pouvez minimiser l'impact des changements en gérant efficacement le changement lui-même.
La couverture du code structurel est l'identification du code qui a été exécuté et enregistré dans le but de déterminer si le système a été testé de manière adéquate. La couverture de code exprime le degré auquel le code source de l'application est exercé par toutes les pratiques de test.
La couverture du code doit être déterminée par vos besoins ou objectifs de couverture. Avez-vous besoin de satisfaire à une norme fonctionnelle de sécurité (DO-178C pour l'avionique ou ISO 26262 pour l'automobile, ou CEI 62304 pour le médical) qui impose ou recommande une couverture à 100 % ? Ou peut-être voulez-vous simplement améliorer la qualité de votre code, donc 60% pourrait être votre objectif initial.
Nous recommandons une couverture de code minimale de 60 %, qui devrait être facile à obtenir. Cela vous rassurera un peu mais savoir que 40% du code n'a pas été testé risque de vous donner des nuits blanches. Certains recommandent 70 à 80 %, mais la meilleure façon de déterminer si vous devez augmenter votre pourcentage de couverture est basée sur le nombre de défauts qui ont été identifiés.
Oui, il est possible d'obtenir une couverture de code à 100 %. Vous pouvez y parvenir grâce à l'agrégation de diverses méthodes de test et à l'observation de l'exécution du code à l'aide de votre débogueur, mais pour les lignes de code qui nécessitent des circonstances très spécifiques pour s'exécuter, comme le code défensif, cela peut prendre des semaines, des mois, des années, ou vous peut ne jamais atteindre cet événement.
Savoir que vos tests n'ont omis aucun code non testé est votre signal. Cependant, vos objectifs d'analyse de couverture de code doivent être basés sur toute exigence de conformité ou sur l'objectif de votre organisation d'améliorer la qualité du code.
Absolument! Les solutions d'automatisation des tests de Parasoft ont intégré l'intégration dans les pipelines Azure et avec d'autres outils tels que GitHub, GitLab, Jira et d'autres qui automatisent votre workflow d'intégration continue et de livraison continue.