Écrit par Jonny Steiner
L'industrie automobile est une industrie technologique. Si vous ne me croyez pas, ne cherchez pas plus loin que Tesla, qui vous vendra un superordinateur de 50 XNUMX $ fourni avec une voiture. Au plus haut niveau, le logiciel gère tout, depuis les performances du moteur jusqu'à safelié au divertissement et à la navigation. Les logiciels et applications embarqués fournissent des données de diagnostic en temps réel et s'intègrent de manière transparente (le conducteur l'espère) aux smartphones et autres appareils.
Les mises à jour logicielles en direct qui maintiennent les voitures à jour avec les dernières applications et améliorations de performances sont également de plus en plus courantes. Nous avons vu cette technique utilisée par VinFast, un fabricant vietnamien de véhicules électriques qui, confronté aux réactions négatives du public concernant les performances et les capacités de ses véhicules, a promis d'apporter des modifications aux futures mises à jour logicielles.
L'industrie évolue avec la technologie
Deux facteurs principaux entrent en jeu lorsqu’on parle de tests de logiciels pour l’industrie automobile :
- Avec des dizaines de millions de lignes de code par voiture en moyenne dans chaque voiture, les constructeurs d'équipement d'origine (OEM) doivent écrire, intégrer, tester et deploy coder rapidement et efficacement. Ils utilisent des techniques avancées pour accélérer le processus (nous en reparlerons dans un instant).
- Simultanément, le logiciel en développement a évolué de l'assistance aux fonctionnalités du moteur et d'infodivertissement aux systèmes d'aide à la conduite et à la conduite autonome, ce qui augmente la complexité des tests.
Dans le même temps, les sprints des développeurs se raccourcissent et la demande d’applications fonctionnant parfaitement pousse les OEM à proposer leurs nouvelles fonctionnalités plus près du début de la production. Les développeurs et les testeurs ont besoin de boucles de rétroaction plus courtes (permises par continuous testing) pour mettre à jour le code en permanence.
Ces changements surviennent de manière familière
Comme beaucoup d’autres industries dans les années 2020, l’industrie automobile adopte Développement agile, ce qui ouvre la porte à l’accélération d’autres processus, comme DevOps livraison axée sur continuous testing.
Cette évolution vers un développement itératif, où les équipes écrivent, intègrent et testent continuellement leur code, convient bien aux OEM. Les API intègrent des applications et des fonctionnalités dans un intégration continue/livraison continue (CICD), qui permet aux équipes de développeurs de mettre à jour le code tout au long de la vie d'un véhicule, en prenant le code le plus performant et en le réutilisant ailleurs pour minimiser les erreurs et réduire les coûts.
Se préparer à l'impact
Grâce à la transformation numérique accrue dans tous les secteurs, les voitures évoluent vers des machines interconnectées qui dépendent de systèmes logiciels pour fonctionner à leur plein potentiel.
Le premier cas d’utilisation qui me vient à l’esprit concerne les moteurs et les transmissions. Les unités de commande du moteur (ECU) aident à optimiser les performances et le rendement énergétique. Ces calculateurs utilisent des algorithmes pour gérer l'injection de carburant, le calage de l'allumage et d'autres paramètres, ce qui entraîne une meilleure économie de carburant et une réduction des émissions. Dans certaines supercars haut de gamme, ces paramètres sont personnalisables, offrant aux conducteurs une expérience de conduite unique adaptée à leurs préférences.
Il y a bien plus au-delà de la performance. Dans un monde obsédé par safeAujourd’hui, l’industrie automobile déploie des logiciels dans le cadre de ses principales innovations. Les systèmes avancés d’aide à la conduite (ADAS), tels que l’assistance au maintien de voie, le régulateur de vitesse adaptatif et le freinage d’urgence automatique, s’appuient fortement sur des algorithmes logiciels. Grâce à ses capacités permettant de freiner ou de tourner en cas d'impact, ce logiciel contribue à réduire les accidents et à sauver des vies.
Le cas d’utilisation le plus pertinent pour notre discussion est la connectivité transparente offerte par les systèmes d’infodivertissement. Ces systèmes offrent de nombreuses fonctionnalités, depuis l'intégration de smartphones jusqu'à la navigation, la reconnaissance vocale et de nombreuses autres applications embarquées. Le système d'infodivertissement de Tesla propose même une option de coussin whoopie pour rendre la conduite plus pratique et, oserais-je dire, amusante. Cette complexité croissante est ce qui nécessite la nécessité d'une automatisation continuous testing pour assurer la fiabilité.
Les défis du développement et des tests de logiciels automobiles
À mesure que nous approfondissons les défis, nous devons séparer les listes car il y a deux niveaux. Il existe des défis dans le test des logiciels automobiles dans leur ensemble et dans le test des systèmes d'infodivertissement. Examinons les deux de plus près.
Automatiser continuous testing dans l’industrie dans son ensemble présente les défis suivants :
- SafeSystèmes critiques : Il est essentiel de garantir que les systèmes avancés d’aide à la conduite (ADAS) fonctionnent parfaitement. Le principal défi consiste à créer des tests automatisés capables de simuler rigoureusement des scénarios réels pour tester ces capacités.
- Intégrations complexes : Ces systèmes sont tous interconnectés, en commençant par les systèmes ADAS et en passant par le contrôle moteur et l'infodivertissement. Le défi ici réside dans la complexité de ces systèmes et dans la capacité à maintenir la compatibilité entre les modèles de véhicules.
- Conformité : En tant qu'industrie hautement réglementée, les efforts de test doivent s'aligner sur les réglementations en vigueur pour garantir et démontrer la conformité.
- Volume et analyse des données : Nous connaissons tous la grande quantité de données générées par continuous testing processus. Ajoutez maintenant à cela la complexité des systèmes automobiles et vous aurez une idée de l’importance et de la difficulté d’analyser les données pour identifier les problèmes et apporter des améliorations.
- Systèmes hérités : Les voitures plus anciennes utilisent encore des systèmes logiciels et matériels existants. Cependant, ces systèmes doivent toujours être pris en charge et maintenus à mesure que le reste de la gamme de produits passe à des systèmes et à des processus de test plus récents pour garantir la compatibilité.
Examinons plus en détail la nature de l'infodivertissement et abordons certains des défis liés au test de ces systèmes :
- Tests centrés sur l'utilisateur : Les tests automatisés doivent imiter les interactions réelles des utilisateurs, car les systèmes d'infodivertissement sont au service de l'utilisateur final. Les tests doivent se concentrer sur la convivialité UX et la conception de l'interface utilisateur.
- Intégrations: Ces systèmes s'intègrent à d'autres systèmes du véhicule comme safeTy et navigation. Les tests doivent garantir ces intégrations sont transparents et ne compromettent pas les performances du véhicule.
- Interfaces multimodales : Avec la prise en charge des commandes vocales, des écrans tactiles, des boutons physiques et des gestes, chaque interface doit être testée pour garantir un comportement cohérent à tous les niveaux.
- Contenu et connectivité : Les systèmes d'infodivertissement utilisent différentes sources de contenu telles que les services de streaming, la connectivité des smartphones et les mises à jour en direct. Les tests doivent prendre en compte tous ces formats de contenu, conditions de réseau et compatibilité.
- Performances et utilisation des ressources : Ces systèmes doivent fonctionner efficacement afin de ne pas affecter les performances globales du véhicule. Test de performance doit analyser la consommation du processeur et de la mémoire pour garantir la réactivité du système.
L'IA et le ML font désormais partie de la chaîne de montage
Quand on parle de tests automatisés Dans l’industrie automobile, qui est constamment à la recherche des développements les plus innovants, nous devons définir comment utiliser l’IA et le ML pour tester ces systèmes.
- Création de tests basée sur l'IA : À l’aide d’algorithmes d’IA tels que des logiciels de traitement du langage naturel, les exigences peuvent être analysées pour générer des cas de test. Cela réduit le temps et les efforts nécessaires pour créer des tests manuellement.
- Analyse intelligente : Les tests automatisés génèrent de nombreuses données à l'aide du Machine Learning pour analyser les résultats des tests et identifier les modèles de défauts, ce qui aidera les testeurs à prioriser et à se concentrer sur les problèmes critiques.
- Intelligence prédictive: L'utilisation de modèles ML pour s'entraîner sur des données historiques permet d'identifier des modèles en corrélation avec des défauts logiciels. Les modèles peuvent ensuite utiliser cette formation pour prédire la probabilité de défauts dans le nouveau code, éliminant ainsi les problèmes de manière proactive avant qu'ils ne deviennent un problème.
- Auto-guérison: Les cas de test brisés peuvent être réparés automatiquement pendant l'exécution des tests, ce qui contribue à réduire la charge de maintenance des tests. Cela garantit que les suites de tests continueront à fonctionner à mesure que le logiciel grandit et évolue.
L’IA et le ML contribuent à révolutionner les tests automatisés pour les constructeurs automobiles en automatisant les tâches répétitives et chronophages. L'IA et le ML contribuent à améliorer la fiabilité, l'efficacité et l'efficience du processus de test. Le résultat est un logiciel de meilleure qualité livré à grande échelle et rapidement.
Certains grands constructeurs emploient déjà ces techniques :
- Tesla utilise l’IA pour analyser les données de la flotte et identifier les défauts potentiels. Ces données sont utilisées pour améliorer les logiciels embarqués.
- GM utilise l'apprentissage automatique pour l'intelligence prédictive afin de corriger les défauts du nouveau code. Ils utilisent ces données pour prioriser les efforts de test.
- Ford génère des cas de test pour son système d'infodivertissement à l'aide de l'IA. Cela les aide à réduire le temps et les efforts nécessaires pour créer manuellement des cas de test.
L'industrie automobile dépend de plus en plus des logiciels. continuous testing émerge pour résoudre les problèmes de qualité et de fiabilité. Cela n’est pas sans défis, car les systèmes ADAS, les composants interconnectés et l’analyse des données nécessitent un processus de test rigoureux.
Les techniques d'IA et de ML continuent d'émerger et de révolutionner l'automatisation continuous testing en automatisant les tâches répétitives et en améliorant l'efficacité des tests, ce qui facilite la prédiction et l'identification des défauts.
Adopter l'automatisation continuous testing et tirer parti de l’IA et du ML aidera les constructeurs automobiles à fournir rapidement et de manière fiable des logiciels fiables et de haute qualité pour leurs voitures. Il garantira que l'avenir de l'industrie automobile soit innovant, safe, et interconnectés.
Révolutionnez vos tests de logiciels automobiles avec Digital.ai's Continuous Testing solutions – où l'innovation rencontre la fiabilité sur la voie rapide !
Êtes-vous prêt à faire évoluer votre entreprise ?
Explorer
Quoi de neuf dans le monde de Digital.ai
Résumé de l'incident CrowdStrike et de la prévention avec Digital.ai Solutions
Le 19 juillet 2024, une mise à jour de configuration logicielle défectueuse de…
Sélection des bons outils de test automatisés : introduction
Apprenez à sélectionner le bon outil de test automatisé pour votre pile technologique. De la gestion des tests aux tests multi-navigateurs, nous couvrons les fonctionnalités clés que vous devez connaître.
La logique des tests : comment la vitesse, la sécurité et la qualité forment un script parfait
Découvrez la logique des tests : comment continuous testing, la sécurité des applications et la collaboration débloquent la vitesse, la sécurité et la qualité pour une livraison efficace des logiciels.