Webinaire en vedette : Tests d'API améliorés par l'IA : une approche de test sans code | Voir le séminaire
Tests de systèmes logiciels
Les tests système testent le système dans son ensemble. Une fois tous les composants intégrés, l'ensemble du système est testé rigoureusement pour vérifier qu'il répond aux exigences fonctionnelles, de sécurité, de sûreté et autres exigences non fonctionnelles spécifiées.
Des équipes de test spécialisées effectuent ce type de tests sur les logiciels critiques pour la sécurité. Les tests système relèvent du domaine des tests de boîte noire. En tant que tels, ils ne devraient nécessiter aucune connaissance de la conception interne du code ou de la logique.
Une distinction importante avec les tests au niveau du système est que le système est testé dans un environnement proche de l'environnement de production dans lequel l'application sera déployée. À ce stade, des fonctions de sécurité spécifiques sont validées et des tests de sécurité à l'échelle du système sont exécutés.
Tests des systèmes automobiles au niveau du service
Les systèmes individuels d'une automobile ne peuvent pas être considérés comme faisant partie d'un service. Cependant, la connectivité avec des systèmes plus vastes signifie qu'ils devraient l'être. Par exemple, dans une automobile, le rôle de l'unité de contrôle du moteur (ECU) est de garantir une combustion et des émissions adéquates dans le moteur, mais la voiture surveille la consommation de carburant à l'aide de l'ECU et la transmet à un serveur central via une connexion sans fil.
Ces données de kilométrage sont ensuite utilisées pour planifier les itinéraires et estimer les coûts d'exploitation. Soudain, l'ECU devient un nœud de décision essentiel dans un processus de prise de décision commerciale.
Au lieu de considérer la qualité du système en termes de satisfaction des exigences de chaque appareil, le champ d'application est élargi pour prendre en compte la qualité des services fournis. Les tests au niveau du service garantissent que les exigences non fonctionnelles sont respectées. Par exemple, les performances et la fiabilité sont difficiles à évaluer au niveau de l'appareil ou lors des tests unitaires du logiciel. Les tests basés sur les services peuvent simuler l'environnement opérationnel d'un appareil pour fournir des charges réalistes. Dans l'exemple du CVC, le nouveau capteur de température peut être testé avec des taux de demande variables pour voir s'il répond aux exigences de performances.
La sécurité est une préoccupation majeure dans les systèmes automobilesLes cyberattaques proviennent très probablement du réseau lui-même en attaquant les API exposées. Les tests basés sur les services peuvent créer des environnements simulés pour des tests de sécurité robustes, soit par fuzzing (saisies de données aléatoires et erronées), soit par des attaques par déni de service. Un nouveau capteur de température dans l'exemple CVC peut fonctionner correctement avec les requêtes attendues, mais tomber en panne en cas de surcharge. Un attaquant pourrait être en mesure d'exploiter cela pour surcharger le système et provoquer une panne.
Environnement de test virtuel et tests de niveau de service
Un laboratoire d'essai réel nécessite la représentation physique la plus proche de l'environnement dans lequel une automobile est censée fonctionner. Même dans le laboratoire le plus sophistiqué, il est difficile de reproduire un environnement réaliste. Un laboratoire virtuel résout ce problème.
Les laboratoires virtuels ne nécessitent plus de dépendances matérielles difficiles à trouver (ou inexistantes). Ils utilisent une virtualisation de services sophistiquée avec d'autres outils d'automatisation de tests clés.
Virtualisation des services
Simule toutes les dépendances nécessaires au périphérique testé pour effectuer des tests complets du système. Cela inclut toutes les connexions et tous les protocoles utilisés par le périphérique avec des réponses réalistes à la communication. Par exemple, virtualisation des services La virtualisation peut simuler un serveur d'entreprise avec lequel une automobile communique. De même, la virtualisation peut simuler de manière réaliste un système dépendant, comme des données de trafic ou de météo.
Tests de services et d'API
Proposez un moyen de piloter le système testé de manière à garantir que les services qu'il fournit (et les API fournies) fonctionnent parfaitement. Ces tests peuvent être manipulés via la plateforme d'automatisation pour effectuer des tests de performance et de sécurité selon les besoins.
Gestion et analyse du laboratoire de test
Assurer le contrôle global des laboratoires virtuels. Une fois virtualisée, la configuration complète du laboratoire peut être répliquée selon les besoins et les tests peuvent être automatisés et répétés. Les analyses fournissent le résumé nécessaire des activités et des résultats.
Surveillance du temps d'exécution
Détecte les erreurs en temps réel sur le système testé et capture des informations de trace importantes.
Améliorez vos tests logiciels avec les solutions Parasoft.
Explorez les chapitres
- Introduction "
- 1. Aperçu »
- 2. Analyse statique »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERT »
- 6. CWE »
- 7. Tests unitaires »
- 8. Tests de régression »
- 9. Tests d'intégration de logiciels »
- 10. Test du système logiciel »
- 11. Couverture du code structurel »
- 12. Matrice de traçabilité des exigences »
- 13. Qualification des outils »
- 14. Rapports et analyses »