---
title: "Solution au défi des tests logiciels utilisant des automates à états"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: Cet article présente une solution à un problème de conception de machines à états rencontré dans Altova UModel, en abordant plus particulièrement le comportement du système en mode veille.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/fr/category/uml.md)
# Solution au défi des tests logiciels utilisant des automates à états

Le mois dernier, dans notre article de blog sur [les tests logiciels pour les automates à états](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html) utilisant [Altova UModel](https://www.altova.com/fr/umodel.html), nous avons constaté un comportement inattendu dans notre modèle d'un système de climatisation et nous avons invité nos lecteurs à améliorer la conception. Cet article décrit une solution possible. Lorsque nous avons exécuté l'application de test pour notre modèle, nous avons constaté que l'interrupteur d'alimentation ne coupait pas le système lorsqu'il était en mode veille. Dans le [schéma de l'automate à états](https://www.altova.com/fr/umodel/state-diagrams.html) de notre modèle initial, le seul moyen d'entrer en mode veille depuis le mode de fonctionnement est via le bouton de veille, et le seul moyen de sortir du mode veille est de presser à nouveau le bouton de veille, comme le montre le détail ci-dessous. 

[![Détail d'un diagramme d'automate d'état dans Altova UModel](https://lh5.ggpht.com/_REdrfeVqYdU/TbBqA8gVCnI/AAAAAAAAAYE/3PfcEd2PcKo/clip_image002%5B6%5D.jpg?imgmax=800 "Detail of a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html) 

Nous pouvons créer une sortie alternative pour éteindre le système depuis l'état de veille en ajoutant simplement une nouvelle ligne de transition allant de l'état de veille à l'état d'arrêt, et en attribuant la fonction `powerButton()` comme l'événement qui déclenche cette transition. UModel facilite cette opération en proposant une fenêtre contextuelle qui liste les événements déjà définis dans le modèle. 

[![Liste déroulante des déclencheurs pour les transitions dans un diagramme de machine à états dans Altova UModel](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqBGFuyKI/AAAAAAAAAYI/63ZNLF_dU3A/clip_image004%5B6%5D.jpg?imgmax=800 "Pop-up list of triggers for transitions in a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html)

Voici à quoi ressemble la version modifiée du modèle, intégrant la nouvelle transition entre les modes "veille" et "arrêt" :

[![Diagramme d'état dans Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/TbBqBUKsVYI/AAAAAAAAAYM/jSeTZcHJL4g/Snap10_new%20transition_thumb%5B6%5D.png?imgmax=800 "State machine diagram in Altova UModel")](https://www.altova.com/umodel.html) 

Après avoir régénéré le code Java et compilé la nouvelle version, nous pouvons relancer l'application Tester. La fenêtre de sortie du débogueur indique que le système est entré en mode veille lors de l'événement 3. L'événement 4, l'activation du bouton d'alimentation, met désormais l'état sur "éteint". 

[![Application de test pour machines à états, générée par Altova UModel](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqCLuSc2I/AAAAAAAAAYU/13GMhNPkg7s/clip_image008_thumb%5B2%5D.jpg?imgmax=800 "State machine test application generated by Altova UModel")](http://lh6.ggpht.com/_REdrfeVqYdU/TbBqBgADPsI/AAAAAAAAAYQ/0AsFb3WdtAU/s1600-h/clip_image008%5B5%5D.jpg) 

**Découvrez par vous-même comment vous pouvez améliorer la logique de vos propres diagrammes d'automates finis grâce à Altova UModel –** [**téléchargez une version d'essai gratuite de 30 jours**](https://www.altova.com/fr/download/umodel/uml_tool_enterprise.html) **aujourd'hui !**
