
Par Simon Roy, cofondateur de Coherent Laboratories
Simon Roy est cofondateur de Coherent Laboratories, une nouvelle entreprise dont l'objectif est de relever les défis liés à la vérification en continu auxquels sont confrontées les équipes lors du développement de systèmes embarqués de pointe. Ancien ingénieur en micrologiciels chez Tesla, il a travaillé à la conception, à la mise en œuvre et à la mise en production d'algorithmes de contrôle des moteurs et de micrologiciels d'onduleurs pour la gamme de véhicules de l'entreprise.

La transition vers l'électrification, des véhicules électriques aux systèmes de stockage par batterie à grande échelle, se caractérise par une innovation rapide, des logiciels en constante évolution et la complexité croissante des systèmes cyber-physiques. Cela oblige les ingénieurs en logiciels embarqués à livrer des logiciels de plus en plus complexes, plus rapidement, tout en conservant la rigueur technique nécessaire à la conception de systèmes critiques pour la sécurité. Les organisations repensent donc les méthodologies de conception traditionnelles et adoptent un nouveau paradigme de développement.
Le modèle de développement traditionnel en V, qui est une évolution du modèle en cascade, se caractérise par ses phases de conception séquentielles, sa structure à plusieurs niveaux et ses étapes distinctes de conception et de vérification. Il repose sur une planification minutieuse de ce qu’il faut construire, de la manière de le construire et de la manière de le tester. Le modèle en V est imposé par certaines réglementations du secteur comme la méthodologie de pointe obligatoire pour la conception de systèmes critiques pour la sécurité.

Dans le domaine des systèmes logiciels embarqués, les phases de vérification comprennent généralement :
01 –Tests unitaires
Le niveau de test le plus bas, axé sur les plus petites unités testables, telles que des fonctions individuelles ou des blocs logiques, afin de vérifier la bonne mise en œuvre.
02 –Intégration et tests du système
Tester les interfaces et les interactions entre les principaux sous-systèmes ou composants afin de s'assurer qu'ils fonctionnent ensemble.
03 –Essais HIL/SIL
Tests au niveau des composants du système embarqué à l'aide de plateformes de test « Software-in-the-Loop » (SIL) ou « Simulation HIL » (HIL).
04 –Tests de réception
Le niveau le plus élevé de contrôle visant à vérifier la conformité totale du produit.
Le modèle en V permet d’apporter des modifications à la conception lorsque des problèmes sont détectés au cours de la vérification. Ce processus implique de revenir sur les phases de conception précédentes, de mettre à jour tous les artefacts en aval et de répéter les séquences de test de manière linéaire. Cependant, l’identification tardive de problèmes de conception au cours de la phase de vérification peut entraîner de longs retards et des reconceptions coûteuses. De plus, l’exigence du modèle en V d’une définition statique du produit est en décalage avec la nature dynamique des environnements en constante évolution, et sa volonté de concevoir le produit correctement dès le départ entre en conflit avec les réalités pratiques du développement de systèmes embarqués. Seuls les tests effectués sur le produit physique permettent d’affiner la conception matérielle et logicielle. Pour pallier ces lacunes, une approche hybride dite « Agile-V » est de plus en plus adoptée.
Agile-V conserve la structure globale et la rigueur technique du modèle en V tout en intégrant des itérations Agile rapides. En rendant rapidement le produit opérationnel, Agile-V facilite la détection précoce des problèmes critiques liés à la conception logicielle et matérielle. Des fonctionnalités supplémentaires et des améliorations sont intégrées lors des itérations suivantes, également appelées « sprints ».
Les organisations logicielles Agile mettent en œuvre ce processus en s’appuyant sur le concept de vérification continue. Au cours d’un sprint, des versions ciblées du modèle en V sont appliquées à des tâches individuelles. Une fois spécifiées, implémentées et testées, ces modifications sont vérifiées selon un cycle de vérification plus restreint avant d’être fusionnées dans la base de code. À l’échéance fixée pour l’achèvement des fonctionnalités d’un sprint, la base de code est verrouillée en état de publication, seules les corrections critiques étant autorisées. Une vérification complète est effectuée sur l’ensemble des modifications combinées, clôturant ainsi de manière effective le modèle en V au sens large pour le sprint concerné.
Dans le domaine des systèmes embarqués, le non-respect de ces principes peut entraîner des retards de production coûteux, des rappels de produits et du matériel inutilisable. Les équipes d'ingénierie doivent adopter la culture, les mesures incitatives et les outils adaptés pour garantir la réussite du processus Agile-V.

L'ADOPTION D'AGILE-V IMPLIQUE LE RESPECT DE PRINCIPES CLÉS :
- Maintenir à jour les exigences, la conception et la traçabilité : bien que la méthode Agile-V permette d’apporter directement des modifications à l’implémentation, les responsables de composants doivent veiller à ce que tous les artefacts de conception pertinents restent à jour, malgré la tendance, dans le cadre d’un sprint, à se concentrer sur la livraison des fonctionnalités immédiates. Cela permet d’éviter toute confusion chez les parties prenantes et tout non-respect des processus.
- Élargir et maintenir la couverture des cas de test : le développement et l'adaptation continus du logiciel du produit impliquent également d'ajouter et de mettre à jour des cas de test conformément aux indicateurs de couverture requis.
- Optimiser l'automatisation des tests : la vérification continue nécessite une infrastructure de tests hautement automatisée. Réaliser une part plus importante de la vérification globale avant la fusion réduit le risque de régressions du produit détectées tardivement au cours du sprint. Dans ce modèle, les tests manuels sont difficilement évolutifs.
Coherent Laboratories aide les équipes à optimiser la couverture et l'automatisation de leurs tests en générant automatiquement des cas de test sur des plateformes HiL et SiL. Nos agents d'intelligence artificielle s'appuient sur les exigences et une compréhension approfondie du dispositif testé pour générer et maintenir des cas de test traçables. Le temps consacré à l'ajout et à la mise à jour des tests est ainsi économisé, ce qui permet aux ingénieurs logiciels de se concentrer davantage sur les exigences, la conception et la mise en œuvre.


