11
votes

Quels sont certains outils logiciels disponibles utilisés dans le micrologiciel de test aujourd'hui?

Je suis un ingénieur logiciel qui sera / peut être embauché en tant qu'ingénieur de test de microprogramme. Je veux juste avoir une idée de certains outils logiciels disponibles sur le marché utilisé dans le micrologiciel des tests. Pouvez-vous les énoncer et vous expliquer un peu sur le type de test qu'ils fournissent au micrologiciel? Merci d'avance.


2 commentaires

Je vois beaucoup d'offres d'emploi pour le travail de style embarqué Vous voulez une familiarité avec JTAG Débogage.


@snold: JTag lui-même n'est pas un "outil de test"; Il s'agit simplement de la connexion physique et de la communication entre un débogueur d'hôte de développement et un processeur incorporant du matériel de débogage à puce, évitant ainsi le besoin de matériel d'émulateur de circuit externe coûteux ou des moniteurs de débogage à distance basés sur des logiciels moins robustes. Toute personne qui l'appelle comme une exigence de travail spécifique a probablement peu de compréhension de ce qu'elle est, et veut simplement simplement une expérience de débogage / de glace en général. De toute façon, je ne pense pas que cela soit extrêmement pertinent pour la question à la main.


3 Réponses :


10
votes

Voici quelques techniques de test de microprogrammes que j'ai trouvées utiles ...

  1. test unitaire sur le PC; C'est-à-dire extraire une fonction du micrologiciel et compilez-la et testez-la sur une plate-forme plus rapide. Cela vous permettra, par exemple, de tester de manière exhaustive une fonction alors que cela prendrait du temps interditilement in situ.

  2. Instrument Les gestionnaires d'interruption du micrologiciel à l'aide d'une minuterie de matériel d'exécution gratuite: Ticks à l'entrée et à la sortie et au nombre d'interruptions. Gardez une trace de la fréquence et de la période maximale de la fréquence minimale pour chaque gestionnaire d'interruption. Ces données peuvent être utilisées pour évaluer l'analyse monotonique ou la date limite d'analyse monotonique.

  3. Utilisez un protocole standard, comme Modbus RTU, pour créer une gamme de données d'état disponibles sur demande. Ceci peut être utilisé pour les données de configuration et de vérification.

  4. Construisez le numéro de version du micrologiciel dans le code à l'aide d'un processus de construction automatisé, par exemple, en obtenant les informations de version du référentiel de code source. Faites le numéro de version disponible à l'aide du n ° 3.

  5. Utilisez la peluche ou un autre outil d'analyse statique. Demandez zéro avertissement de la peluche et du compilateur avec -wall.

  6. augmente vos outils de construction avec un moyen d'intégrer le CRC du micrologiciel dans le code et de le vérifier au moment de l'exécution.


0 commentaires

13
votes

Les tests se présentent sous un certain nombre de formulaires et peuvent être effectués à différentes étapes. Outre la validation de la conception avant même que le code est même écrite, les tests de codes peuvent être divisés en essais d'unités, tests d'intégration, tests de test et d'acceptation du système (bien que les termes exacts et le nombre d'étages peuvent très). Dans le modèle V, ceux-ci correspondraient horizontalement avec des étapes dans les exigences et le développement de la conception. En outre, dans le développement et la maintenance, vous pourriez effectuer des tests de régression - garantissant que les bogues fixes restent fixes lorsque d'autres modifications sont appliquées.

En ce qui concerne les outils, ceux-ci peuvent être divisés en analyse statique et analyse dynamique. Les outils statiques analysent le code source sans exécution, alors que l'analyse dynamique concerne le comportement du code lors de l'exécution. Certains outils (coûteux) effectuent une "exécution abstraite" qui est une technique d'analyse statique qui détermine la manière dont le code peut échouer pendant l'exécution sans exécution réelle, cette approche est calculée en calcul, mais peut traiter des chemins d'exécution et des états variables beaucoup plus qu'une analyse dynamique traditionnelle. < / p>

La forme d'analyse statique la plus simple est la révision du code; Obtenir un humain à lire votre code. Il existe des outils pour aider même avec ce processus manuel ostensiblement tel que Collaborateur de code de Smartbear . De même, la forme la plus simple d'analyse dynamique consiste simplement à parcourir votre code dans votre débogueur, voire de lancer votre code avec divers scénarios de test. Le premier peut être fait par un programmeur lors du développement de l'unité et du débogage, tandis que cette dernière est plus adaptée aux tests d'acceptation ou d'intégration.

Bien que le code de code effectué bien peut supprimer une grande quantité d'erreurs, notamment des erreurs de conception, il n'est peut-être pas si efficace pour trouver certains types d'erreurs causées par une sémantique subtile ou arcanique de langages de programmation. Ce type d'erreur se prête à la détection automatique à l'aide d'outils d'analyse statiques tels que Outils PC-Lint et Flexelint de Gimpel , ou Outils d'assurance qualité de la recherche de programmation , bien que des approches de coûts moins chères, telles que la définition du niveau d'avertissement de votre compilateur et la compilation avec plus d'un compilateur sont également utiles.

Les outils d'analyse dynamiques se présentent sous un certain nombre de formes telles que l'analyse de la couverture du code, le profilage des performances de code, l'analyse de la gestion de la mémoire et la vérification des limites.

Les outils / vendeurs supérieurs incluent les goûts de Coverity , Polyspace (un outil d'analyse abstraite), cantata , LDRA et Klocwork . À la partie inférieure (en prix, pas nécessairement de l'efficacité) sont des outils tels que PC-Lint et Tessy , ou même la source ouverte Splint (C uniquement) et un grand nombre de Outils de test unitaire


2 commentaires

Il est important de souligner que les analyseurs statiques extrêmement chers ne sont pas meilleurs que ceux qui coûtent un 10ème du prix. J'utilise moi-même LDRA et cela coûte une fortune, mais cela ne fonctionne pas mieux que d'autres outils. La différence est que la LDRA est extrêmement heureuse et heureuse et même avec un grand nombre de chèques retirés, il donne environ 100 fausses erreurs pour chaque problème réel. C'est une bonne idée de vérifier le code avec plusieurs analyseurs différents, car ils ont tous leurs défauts.


@Lundin: Absolument. J'ai mentionné que, bien que peut-être pas l'emphase. @Lemual voulait savoir sur les outils disponibles, je présume qu'il veut savoir ce qu'il peut rencontrer. Si elle était chargée de sélectionner un tel outil, cela justifierait un type de réponse différent.



0
votes

J'ai trouvé des tests de stress utiles. Cela signifie généralement donner à l'un système un système un système peu de temps et voir comment il le gère. L'entrée pourrait être

  • Un fichier avec beaucoup de données à traiter. Un exemple me serait un fichier avec des données d'onde qui doivent être analysées par un périphérique d'alarme.
  • Data reçues par une application exécutée sur une autre machine. Par exemple, un programme qui génère un écran tactile aléatoire Appuie / libère des données et l'envoie à un périphérique d'un port de débogage.

    Ces types de tests peuvent ébranler beaucoup de bugs (en particulier dans les systèmes où la performance est essentielle et limitée). Un bon système de journalisation est également bon d'avoir à suivre les causes des erreurs soulevées par un test de résistance.


0 commentaires