Dans ce tutoriel, vous apprendrez
- Que sont les systèmes embarqués?
- Qu'est-ce que le test intégré?
- Types de tests de logiciels intégrés
- Différence: tests intégrés et tests logiciels
- Défis: tests de logiciels embarqués
Que sont les systèmes embarqués?
Les systèmes embarqués sont les dispositifs contrôlés électroniquement où le logiciel et le matériel sont étroitement couplés. Les systèmes embarqués peuvent contenir une variété de dispositifs informatiques. Il s'agit de PC intégrés à d'autres appareils pour exécuter des fonctions spécifiques à l'application. L'utilisateur final n'est généralement même pas au courant de leur existence.
Test embarqué
Le test intégré est un processus de test permettant de vérifier les attributs fonctionnels et non fonctionnels du logiciel et du matériel dans un système embarqué et de s'assurer que le produit final est exempt de défauts. L'objectif principal des tests embarqués est de vérifier et de valider si le produit final du matériel et des logiciels embarqués répond ou non aux exigences du client.
Les tests de logiciels embarqués vérifient et s'assurent que le logiciel concerné est de bonne qualité et conforme à toutes les exigences auxquelles il doit répondre. Les tests de logiciels intégrés sont une excellente approche pour garantir la sécurité des applications critiques telles que les équipements médicaux, les chemins de fer, l'aviation, l'industrie automobile, etc.
Comment effectuer des tests de logiciels intégrés
En général, vous testez pour quatre raisons:
- Pour trouver des bogues dans le logiciel
- Aide à réduire les risques pour les utilisateurs et l'entreprise
- Réduisez les coûts de développement et de maintenance
- Pour améliorer les performances
Dans Embedded Testing, les activités suivantes sont effectuées:
1. Le logiciel est fourni avec certaines entrées.
2. Un morceau du logiciel est exécuté.
3. L'état du logiciel est observé et les sorties sont vérifiées pour les propriétés attendues telles que si la sortie correspond au résultat attendu, la conformité aux exigences et l'absence de pannes du système.
Types de tests de logiciels intégrés
Fondamentalement, il existe cinq niveaux de test qui peuvent être appliqués aux logiciels embarqués
Tests unitaires logiciels
Le module d'unité est soit une fonction, soit une classe. Les tests unitaires sont effectués par l'équipe de développement, principalement le développeur et sont généralement effectués dans un modèle d'évaluation par les pairs. Basé sur la spécification des cas de test du module sont développés.
Test d'intégration
Les tests d'intégration peuvent être classés en deux segments:
- Test d'intégration de logiciels
- Test d'intégration logiciel / matériel.
Au final, l'interaction du domaine matériel et des composants logiciels est testée. Cela peut inclure l'examen de l'interaction entre les périphériques intégrés et les logiciels.
Le développement de logiciels embarqués a une caractéristique unique qui se concentre sur l'environnement réel dans lequel le logiciel est exécuté, est généralement créé en parallèle avec le logiciel. Cela entraîne des inconvénients pour les tests, car des tests complets ne peuvent pas être effectués dans des conditions simulées.
Test des unités système
Maintenant, le module à tester est un cadre complet qui se compose d'un code logiciel complet en plus de tous les éléments liés au système d'exploitation en temps réel (RTOS) et à la plate-forme tels que les interruptions, les mécanismes de gestion des tâches, les communications, etc. Le protocole Point of Control n'est plus un appel à une fonction ou une invocation de méthode, mais plutôt un message envoyé / reçu en utilisant les files d'attente de messages RTOS.
Les ressources système sont observées pour évaluer la capacité du système à prendre en charge l'exécution du système intégré. Pour cet aspect, le test en boîte grise est la méthode de test privilégiée. En fonction de l'organisation, le test des unités système relève soit du développeur, soit d'une équipe d'intégration système dédiée.
Test d'intégration de système
Le module à tester commence à partir d'un ensemble de composants dans un seul nœud. Les points de contrôle et d'observations (PCO) sont un mélange de protocoles de communication liés au réseau et de RTOS, tels que les messages réseau et les événements RTOS. En plus d'un composant, un testeur virtuel peut également jouer le rôle d'un nœud.
Test de validation du système
Le module à tester est un sous-système avec une implémentation complète ou le système embarqué complet. L'objectif de ce test final est de répondre aux exigences fonctionnelles des entités externes. Notez qu'une entité externe peut être une personne, ou un appareil dans un réseau de télécommunications, ou les deux.
Différence: tests intégrés et tests logiciels
Test de logiciel | Test embarqué |
---|---|
Les tests logiciels concernent uniquement les logiciels. | Les tests intégrés sont liés à la fois au logiciel et au matériel. |
En moyenne, 90% des tests effectués dans le monde sont des tests de boîte noire purement manuels. | Les tests intégrés sont effectués sur des systèmes ou des puces embarqués.Il peut s'agir d'un test de boîte noire ou de boîte blanche. |
Les principaux domaines de test sont les contrôles d'interface graphique, la fonctionnalité, la validation et un certain niveau de test de base de données. | Les principaux domaines de test sont le comportement du matériel pour le non. des contributions qui lui sont données. |
Les tests logiciels sont principalement effectués sur des applications client-serveur, Web et mobiles. | Tests intégrés généralement effectués sur le matériel. |
par exemple, Google Mail, Yahoo Mail, applications Android. | par exemple, les machines du domaine de la santé, les microcontrôleurs utilisés dans les ordinateurs. |
Défis: tests de logiciels embarqués
Certains des défis auxquels on peut faire face lors des tests de logiciels embarqués:
Dépendance matérielle
La dépendance matérielle fait partie des principales difficultés rencontrées lors des tests de logiciels embarqués en raison d'un accès limité au matériel. Cependant, les émulateurs et les simulateurs peuvent ne pas représenter précisément le comportement du périphérique réel et peuvent donner une mauvaise idée des performances du système et de la convivialité de l'application.
Logiciels open source
La majorité des composants logiciels embarqués sont de nature open source, non créés en interne et il n'y a pas de test complet disponible pour cela. Il existe une large gamme de combinaisons de tests et de scénarios résultants.
Défauts logiciels ou matériels
Un autre aspect est lorsque le logiciel est en cours de développement pour un matériel nouvellement créé, au cours de ce processus, un taux élevé de défauts matériels peut être identifié. Le défaut détecté n'est tout simplement pas limité au logiciel. Cela peut également être lié au matériel.
Défauts reproductibles
Les défauts sont plus difficiles à reproduire / recréer dans le cas du système embarqué. Cela oblige la procédure de test intégrée à évaluer chaque occurrence de défaut considérablement plus élevée que dans un cas standard, autre que de collecter autant de données que cela pourrait raisonnablement être nécessaire pour modifier le système afin de trouver le fondement du défaut.
Mises à jour logicielles continues
Les systèmes embarqués nécessitent des mises à jour logicielles régulières telles que la mise à niveau du noyau, des correctifs de sécurité, différents pilotes de périphériques, etc. Les contraintes identifiées avec l'influence des mises à jour logicielles rendent l'identification des bogues difficile. En outre, cela augmente l'importance de la procédure de génération et de déploiement.
Résumé
Il y a des difficultés à tester les tests de logiciels embarqués qui les rendent plus difficiles que les tests de logiciels réguliers. Le problème le plus fondamental est la forte dépendance à l'égard de l'environnement matériel qui est préparé simultanément avec le logiciel et qui est régulièrement requis pour effectuer des tests logiciels fiables. Parfois, il est même difficile de tester le logiciel sans outils personnalisés, ce qui rend la concentration sur les tests tardifs extrêmement attrayante.
L'une des choses les plus importantes à laquelle vous devriez penser est le fait que vous devriez souvent opter pour des tests logiciels automatisés. Le test automatisé intégré est un processus plus rapide qui prendrait quelques heures, et de cette manière, le problème de votre logiciel est réglé.