Nos partenaires

CNRS

Rechercher





Accueil du site > Français > Thèmes de recherche > Thème 7 - Sûreté de développement du logiciel > Equipe MACAO > Propositions de stages, thèses et post-doc > Thèses

Test Driven Development pour une Ingénierie Système Agile / Test Driven Development for System Engineering (19/06/2014)

Contact : Hervé Leblanc et Christian Percebois

Laboratoire IRIT — Thème 7 — Equipe MACAO

Direction et unité d’accueil

  • Domaine scientifique principal du thème concerné : Informatique
  • Libellé ACI/Programme ou discipline concernée : Génie Logiciel
  • Formation doctorale de rattachement (spécialité) : Informatique
  • Directeur : Christian Percebois, professeur en Informatique à l’université de Toulouse 3
  • Encadrant : Hervé Leblanc, maître de conférences à l’université de Toulouse 3
  • Institut de Recherche en Informatique de Toulouse (IRIT)
  • Equipe : MACAO
  • Début de la thèse : septembre 2014

Contexte

L’Ingénierie Système considère l’étude et la production de logiciels et matériels sur lesquels s’exécutent ces logiciels de manière conjointe. C’est en général le cas pour des systèmes dits embarqués. Ces systèmes, de nature complexe, nécessitent des plans et campagnes de tests d’envergure dans des cycles de développement dits en V ou W s’il existe une phase de prototypage. La production parallèle d’éléments logiciels et matériels est élaborée dans une phase de co-conception qui utilise différents formalismes et savoir-faire.

Les campagnes de tests sont exécutées grâce à des environnements dédiés appelés bancs de test. Un banc de test est lui-même un système logiciel et matériel en charge d’exécuter et d’analyser des plans de tests. En fonction des éléments d’un système à tester, le banc de test est reconfigurable tant au plan matériel (câblages, composants) que logiciel (nouveaux plans de tests). Le but du projet FUI ACOVAS est de concevoir une nouvelle génération de bancs de test permettant de diminuer les temps de reconfiguration d’un banc de test par une forte adaptation au changement de spécifications, qu’elles portent sur le système sous test ou le banc de test lui-même. Ainsi, les cycles de maintenance propres au processus en V seraient plus courts et plus simples à mettre en œuvre.

Au niveau logiciel, les méthodes agiles permettent des cycles de développement courts entre lesquels toute demande de changement peut être prise en compte sans perturber la qualité attendue. Nous voudrions les mêmes résultats avec l’Ingénierie Système. L’un des points clés des méthodes agiles est le test-first qui permet d’avoir à tout moment des tests de non-régression à jour permettant l’adaptabilité au changement dans des conditions sécurisées. Le but de cette thèse est de transposer les techniques associées au test-first de l’ingénierie logicielle vers l’Ingénierie Système.

L’axe de recherche principal est la transposition des ubiquitous langages propre à l’ATDD (Acceptance Test Driven Development) et au BDD (Behavioral Driven Development) afin de s’approcher de spécifications exécutables et permettre la traçabilité dans les plans de tests et les procédures de configuration du banc de test. Un corollaire serait l’adjonction d’un langage à base d’expectations propre aux Mocks (objets simulés à l’intérieur d’un test) afin d’optimiser l’utilisation du banc de test.

Ces deux langages peuvent être décrits et instrumentés par des techniques provenant des DSL (Domain Specific Langages). D’autres approches, telle l’ingénierie dirigée par les modèles, pourront être utilisées.

Context

System engineering deals with the analysis, design and production of complex systems consisting of hardware and associated software. The parallel production of hardware and software is developed in a co-design phase that uses various formalisms and know-how. These complex systems require plans and major test campaigns in development cycles expressed in V or W (if there is a prototyping phase).

Test campaigns are performed on dedicated platforms called test benches. A test bench is itself a hardware-software system developed to perform and analyze test plans. In use, test benches are reconfigurable, both on hardware (cables, components) and on software (new test plans), to respond to changes concerning system under test or test bench itself. The project FUI ACOVAS aims to develop a new generation of test benches that reduces reconfiguration time between two test plans thanks to its high adaptability to changes. Thus, the maintenance cycles specific to the V process would be shorter and simpler to implement.

In software engineering, agile methods enable short development cycles in order to take into account frequently change requests without disrupting an iteration while keeping the expected quality intact. We would like to have the same results for system engineering. One of the key solutions of agile methods is the test-first paradigm that allows having, at any-time, updated non-regression tests which permit an adaptability to change in a secured way. The purpose of this work is to transpose techniques associated with test-first in the software engineering field toward the system engineering field.

The main research axis is the implementation of ubiquitous languages dedicated to ATDD (Acceptance Test Driven Development) and BDD (Behavioral Driven Development) for approaching towards executable specifications and enabling traceability in test plans and test bench configuration procedures. A corollary would be the addition of a language based on expectations as Mocks (simulated objects inside a test) to optimize the use of the test bench.

Both languages can be described and instrumented by techniques derived from DSL (Domain Specific Languages). Other approaches, such as the model driven engineering, may be used.

Références

  • Gerard Meszaros. 2006. Xunit Test Patterns : Refactoring Test Code. Prentice Hall PTR, Upper Saddle River, NJ, USA.
  • Lisa Crispin and Janet Gregory. 2009. Agile Testing : A Practical Guide for Testers and Agile Teams (1 ed.). Addison-Wesley Professional.
  • Marjan Mernik, Jan Heering, and Anthony M. Sloane. 2005. When and how to develop domain-specific languages. ACM Comput. Surv. 37, 4 (December 2005), 316-344.
  • Alexandru-Robert-Ciprian Guduvan. A Model-Driven Development of Tests for Avionics Embedded Systems. Phd Thesis. Université de Toulouse. 2013.