Qu'est-ce que les tests intégrés dans les tests de logiciels ?
Que sont les systèmes embarqués ?
Les systèmes embarqués sont des dispositifs contrôlés électroniquement dans lesquels les logiciels 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 à une application. L’utilisateur final n’est généralement même pas conscient de leur existence.
Tests intégrés
Tests intégrés est un processus de test permettant de vérifier les attributs fonctionnels et non fonctionnels des logiciels et du matériel dans un système embarqué et de garantir 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 garantissent que le logiciel concerné est de bonne qualité et répond à toutes les exigences auxquelles il doit répondre. Les tests de logiciels embarqués constituent une excellente approche pour garantir la sécurité dans des applications critiques telles que les équipements médicaux, les chemins de fer, l'aviation, l'industrie automobile, etc. Des tests stricts et minutieux sont essentiels pour accorder la certification des logiciels.
Comment effectuer des tests de logiciels embarqués
En général, vous testez pour quatre raisons :
- Pour trouver des bugs dans un 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 les tests intégrés, les activités suivantes sont effectuées :
1. Le logiciel est fourni avec quelques 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, comme si la sortie correspond au résultat attendu, la conformité aux exigences et l'absence de panne du système.
Types de tests de logiciels embarqués
Fondamentalement, il existe cinq niveaux de tests pouvant être appliqués aux logiciels embarqués.
Tests unitaires logiciels
Le module 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 selon un modèle d'évaluation par les pairs. Sur la base des spécifications du module, des cas de tests sont développés.
Test d'intégration
Les tests d'intégration peuvent être classés en deux segments :
- Tests d'intégration de logiciels
- Tests d'intégration logiciel/matériel.
En fin de compte, 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 présente une caractéristique unique qui se concentre sur l'environnement réel dans lequel le logiciel est exécuté et 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.
Tests unitaires du système
Maintenant, le module à tester est un framework complet qui comprend le code logiciel complet en plus de tous système d'exploitation en temps réel (RTOS) et des éléments liés à la plate-forme tels que les interruptions, les mécanismes de 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é/obtenu 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, test de boîte grise est la méthode de test privilégiée. Selon l'organisation, les tests unitaires du système relèvent soit du développeur, soit d'une équipe d'intégration système dédiée.
Tests d'intégration système
Le module à tester commence à partir d’un ensemble de composants au sein d’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 de nœud.
Tests 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 soit une personne, soit 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 | Tests intégrés |
|---|---|
| Les tests logiciels concernent uniquement les logiciels. | Les tests intégrés concernent à la fois les logiciels et le matériel. |
| En moyenne, 90 % des tests effectués dans le monde sont des tests purement manuels en boîte noire. | Les tests intégrés sont effectués sur des systèmes ou des puces embarqués. Il peut s'agir d'un test en boîte noire ou en boîte blanche. |
| Les principaux domaines de test sont les vérifications de l'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 numéro. des apports qui lui sont apportés. |
| Les tests logiciels sont principalement effectués sur des applications client-serveur, Web et mobiles. | Tests embarqués généralement effectués sur le Matériel. |
| par exemple, Google Mail, Yahoo Mail, Android applications. | par exemple, machines du domaine de la santé, microcontrôleurs utilisés dans les ordinateurs. |
Défis : tests de logiciels embarqués
Certains des défis auxquels on peut être confronté lors des tests de logiciels embarqués :
Dépendance matérielle
La dépendance au matériel fait partie des principales difficultés rencontrées lors des tests de logiciels embarqués en raison de l'accès limité au matériel. Cependant, les émulateurs et les simulateurs peuvent ne pas représenter avec précision le comportement du périphérique réel et donner une fausse idée des performances du système et de la convivialité de l'application.
Logiciel Open Source
La majorité des composants logiciels embarqués sont de nature open source, non créés en interne et absence de tests complets disponibles pour ceux-ci. Il existe un large éventail de combinaisons de tests et de scénarios résultants.
Défauts logiciels ou matériels
Un autre aspect est que lorsqu'un logiciel est développé pour un matériel fraîchement créé, au cours de ce processus, un taux élevé de défauts matériels peut être identifié. Le défaut trouvé ne se limite pas 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 à valoriser chaque occurrence de défaut de manière sensiblement plus élevée que dans un cas standard, autre que la collecte d'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 continues du logiciel
Les systèmes embarqués nécessitent des mises à jour logicielles régulières comme 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. De plus, cela augmente l’importance de la procédure de construction et de déploiement.
Résumé
Il existe certaines difficultés lors des tests de logiciels embarqués, ce qui les rend plus difficiles que les tests de logiciels classiques. Le problème le plus fondamental est la dépendance étroite à 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 extrêmement tentant de se concentrer sans effort sur les tests à des stades avancés.
L’une des choses les plus importantes à prendre en compte est le fait que vous devriez souvent opter pour des tests logiciels automatisés. Les tests automatisés intégrés sont un processus plus rapide qui prendrait quelques heures et de cette façon, le problème de votre logiciel est résolu.
