Qualité de la conception de tests logiciels : plate-forme de conception et processus de test
Résumé
Nowadays, car electronics become more and more complex and represents more than 30% of the total cost of a car. For instance, in a 2008 BMW 5 series model, one can find up to 80 electronic modules communicating together and representing 10 million lines of software code. Facing this growing complexity, carmakers and automotive electronic suppliers are looking for efficient methods to develop, verify and validate electronic modules. In fact, they focus on the software part of these modules since it accounts for more than 80% of the total number of problems detected on these modules. In this context, we achieved our research project with the aim of proposing a global approach able to improve the quality of automotive embedded software. We started with an audit of the software practices currently used in automotive industry and we pinpointed potential levers to improve the global software quality. Based on the results of the audit and the literature review related to software quality, we developed a global approach to improve the design of test cases for software products. In fact, we developed a test generation platform to automatically generate test cases for a software product. It is mainly based on modeling the software functional requirements in order to be simulated when testing the software, focusing on critical tests to be done (because of their higher probability to detect a bug) and monitoring the automatic generation of tests by quality indicators such as the structural and functional coverage but also the tests cost. The generation of critical tests is based on the definition of real use profiles by software product and on the reuse of bugs and test cases capitalized on previous projects. Besides the computational aspects of software testing, our approach takes into account organizational matters such as knowledge management, competency management and project management. Our approach have been implemented in a computer platform and experimented on two typical case studies of an automotive electronic supplier, with historical test data. The results of our experiments reveal significant improvement in software quality: more bugs are detected earlier and in less time.
L'électronique dans les voitures devient de plus en plus complexe et représente plus de 30% du coût global d'une voiture. Par exemple, dans une BMW série 5 modèle 2008, on peut trouver jusqu'à 80 calculateurs électroniques communiquant ensemble et représentant aux alentours de 10 millions de lignes de code logiciel. Face à cette montée en complexité, les constructeurs et équipementiers électroniques de l'automobile s'intéressent de plus en plus à des méthodes efficaces de développement, vérification et validation de modules électroniques. Plus précisément, ils focalisent leurs efforts sur la partie logicielle de ces modules puisqu'elle est à l'origine de plus de 80% des problèmes détectés sur ces produits. Dans ce contexte, nous avons mené un travail de recherche dont l'objectif est de proposer une approche globale d'amélioration de la qualité des logiciels embarqués dans les véhicules. Notre recherche part d'un audit des processus et outils actuellement utilisés dans l'industrie électronique automobile. Cet audit a permis d'identifier des leviers potentiels d'amélioration de la qualité logicielle. En se basant sur les résultats de l'audit et en tenant compte de la littérature dans le domaine de la qualité logicielle, nous avons proposé une approche globale de conception de cas de test pour les produits logiciels. En effet, nous avons développé une plateforme de génération automatique de tests pour un produit logiciel. Cette plateforme consiste à modéliser les spécifications du produit logiciel pour le simuler lors de tests, à se focaliser sur les tests critiques (ayant une forte probabilité de détecter des défauts) et à piloter la génération automatique des tests par des critères de qualité ; telles que la couverture du code et de la spécification mais aussi le coût des tests. La génération de tests critiques est rendue possible par la définition de profils d'utilisation réelle par produit logiciel, ainsi que par la réutilisation des défauts et des tests capitalisés sur des anciens projets. En plus des aspects algorithmiques du test logiciel, notre approche prend en compte des aspects organisationnels tels que la gestion des connaissances et des compétences et la gestion de projet logiciel. Notre approche a été mise en œuvre sur deux cas d'étude réels d'un équipementier électronique automobile, disposant de données de tests historiques. Les résultats de nos expérimentations révèlent des gains de qualité significatifs : plus de défauts sont trouvés plus tôt et en moins de temps.
Origine | Version validée par le jury (STAR) |
---|