REX Tests d’acceptation automatisés Jean-Emmanuel Houdu [email_address]
Un bon test d’acceptation <ul><li>Livraison gratuite </li></ul><ul><li>La livraison gratuite est offerte aux clients VIP q...
Tests d’acceptation dans Scrum <ul><li>Les tests d’acceptation ont une place importante dans Scrum : </li></ul><ul><ul><li...
Bénéfices de l’automatisation <ul><li>Le contexte Scrum est itératif, incrémental et time-boxé. </li></ul><ul><li>Les test...
Spécifications exécutables <ul><li>Les tests d’acceptation sont compréhensibles par nature. Ils s’adressent à tous les pub...
Fitnesse <ul><li>Fitnesse est un wiki qui permet de gérer les tests d’acceptation </li></ul><ul><ul><li>Il permet d’écrire...
Table et Fixture <ul><li>public class LivraisonGratuite { </li></ul><ul><li>private String typeDeClient; private int nbLiv...
Selenium <ul><li>Selenium est un moteur de test pour les IHM d’applications web </li></ul><ul><ul><li>Il permet d’enregist...
Syntaxe Selenium
Intégration Fitnesse Selenium Application de test Moteur de tests Fixtures API client Selenium Selenium RC Cas de test htt...
Ce qui change <ul><li>En faisant appel à l’API cliente de Selenium dans les Fixtures : </li></ul><ul><ul><li>Il est possib...
Avantages de l’intégration <ul><li>Les responsables qualité peuvent créer/exécuter/gérer des tests d’IHM </li></ul><ul><li...
Démonstration
Projet SPPC <ul><li>Le SPPC (Socle de Pilotage de la Production Copernic) assure le pilotage et la supervision de la produ...
Vision de l’Outillage de test <ul><li>Pour  la MOA et la MOE de la DGFiP </li></ul><ul><li>Qui  recettent l’application SP...
Features (1/2) <ul><li>Gérer les tests </li></ul><ul><ul><li>Créer, exécuter une suite et un cas de test </li></ul></ul><u...
IHM SPPC
Features (2/2) <ul><li>Interagir avec la plateforme de test (Serveurs) </li></ul><ul><ul><li>Arrêter et démarrer les serve...
Bilan MOE <ul><li>Charge de réalisation de l’outillage </li></ul><ul><ul><li>40 jours pour : </li></ul></ul><ul><ul><ul><l...
REX MOE <ul><li>L’équipe MOE a adopté l’outil pour la recette usine. Cela permet de : </li></ul><ul><ul><li>Créer des jeux...
Bilan MOA <ul><li>Spécifications de l’outillage </li></ul><ul><ul><li>Analyse du cahier de test manuel existant : 20 jours...
REX MOA <ul><li>Avantages </li></ul><ul><ul><li>Vérification des corrections et de la non-régression accélérée </li></ul><...
Prochain SlideShare
Chargement dans…5
×

Presentation tests d'acceptations automatisés sug v1.1

2 595 vues

Publié le

Feedback on automated acceptance tests with Fitnesse and Selenium

0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 595
Sur SlideShare
0
Issues des intégrations
0
Intégrations
78
Actions
Partages
0
Téléchargements
74
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Presentation tests d'acceptations automatisés sug v1.1

  1. 1. REX Tests d’acceptation automatisés Jean-Emmanuel Houdu [email_address]
  2. 2. Un bon test d’acceptation <ul><li>Livraison gratuite </li></ul><ul><li>La livraison gratuite est offerte aux clients VIP qui ont déposé un certain nombre de livres dans </li></ul><ul><li>leur panier. Les clients normaux et les clients VIP qui n'atteignent pas le seuil ne se voient pas </li></ul><ul><li>proposer la livraison gratuite. </li></ul><ul><li>Exemples : </li></ul><ul><li>Etant donné que le seuil est fixé à 10 livres et plus, alors nous attendons les résultats suivants : </li></ul><ul><li>(source : http://gojko.net/2010/06/16/anatomy-of-a-good-acceptance-test/) </li></ul>
  3. 3. Tests d’acceptation dans Scrum <ul><li>Les tests d’acceptation ont une place importante dans Scrum : </li></ul><ul><ul><li>Ils peuvent servir de base pour les développements (ATDD) </li></ul></ul><ul><ul><li>Ils permettent de vérifier les conditions de satisfaction des stories </li></ul></ul><ul><ul><li>Ils constituent une suite de tests de non régression </li></ul></ul><ul><li>Le Product Owner doit s’assurer du caractère fini de chaque stories. Il est donc concerné par les tests d’acceptations : </li></ul><ul><ul><li>Il les rédige et / ou les valide </li></ul></ul><ul><ul><li>Il vérifie les résultats des tests </li></ul></ul>Story A Test 1 Test 2 Test 3 Condition 1 Condition 2
  4. 4. Bénéfices de l’automatisation <ul><li>Le contexte Scrum est itératif, incrémental et time-boxé. </li></ul><ul><li>Les tests d’acceptation automatisés réduisent le temps alloué aux activités de test. </li></ul><ul><li>La non-régression permet aux développeurs de : </li></ul><ul><ul><li>Se concentrer sur les stories dans le périmètre du sprint en cours </li></ul></ul><ul><ul><li>De vérifier qu’il n’y a pas de régressions sur les stories finies lors des sprints précédents </li></ul></ul><ul><ul><li>D’améliorer (refactoriser) le code </li></ul></ul><ul><li>La vérification du caractère fini permet de : </li></ul><ul><ul><li>Consacrer moins de temps à la validation </li></ul></ul><ul><ul><li>Consacrer moins de temps à la démonstration </li></ul></ul><ul><ul><li>Mesurer facilement l’avancement </li></ul></ul>
  5. 5. Spécifications exécutables <ul><li>Les tests d’acceptation sont compréhensibles par nature. Ils s’adressent à tous les public : </li></ul><ul><ul><li>Développeurs </li></ul></ul><ul><ul><li>Fonctionnels (Product owner, Utilisateurs, Experts métier) </li></ul></ul><ul><ul><li>Responsables qualité </li></ul></ul><ul><ul><li>Décisionnaires </li></ul></ul><ul><li>Automatisés : </li></ul><ul><ul><li>Ils sont à jour en permanence </li></ul></ul><ul><ul><li>Ils constituent une source d’information fiable sur l’application </li></ul></ul><ul><li>Outillés de façon à présenter leur contenu et résultats clairement, ils constituent des spécifications exécutables </li></ul>
  6. 6. Fitnesse <ul><li>Fitnesse est un wiki qui permet de gérer les tests d’acceptation </li></ul><ul><ul><li>Il permet d’écrire des tests sous forme de tables. </li></ul></ul><ul><ul><li>Il assure le lien entre les tests et l’application testée grâce à des fixtures (pièces de code) </li></ul></ul><ul><ul><li>Il permet d’exécuter les tests </li></ul></ul><ul><ul><li>Il présente des résultats précis et permet de les historiser. </li></ul></ul><ul><li>Fitnesse s’adresse à tous : managers, fonctionnels, responsables qualité et équipes de développement : </li></ul><ul><ul><li>La syntaxe wiki est facile à prendre en main </li></ul></ul><ul><ul><li>Les tests sont rédigés de façon compréhensible par tous </li></ul></ul>
  7. 7. Table et Fixture <ul><li>public class LivraisonGratuite { </li></ul><ul><li>private String typeDeClient; private int nbLivresDansLePanier; public void setTypeDeClient(String typeClient) { this.typeDeClient = typeClient; } public void setNbLivresDansLePanier (int nbLivres) { this.nbLivresDansLePanier = nbLivres; } public String offrirLivraison() { (&quot; VIP&quot;.equals(typeDeClient) && nbLivresDansLePanier >= 10) ? &quot;Oui&quot; : &quot;Non&quot;; } </li></ul><ul><li>} </li></ul>
  8. 8. Selenium <ul><li>Selenium est un moteur de test pour les IHM d’applications web </li></ul><ul><ul><li>Il permet d’enregistrer et de passer des tests dans un navigateur grâce à Selenium IDE </li></ul></ul><ul><ul><li>Il propose un serveur et des bibliothèques clientes (java, php, etc.) pour : </li></ul></ul><ul><ul><ul><li>Intégrer les tests enregistrés dans un framework de tests unitaires (junit) </li></ul></ul></ul><ul><ul><ul><li>Intégrer Selenium avec un autre produit </li></ul></ul></ul><ul><li>Selenium s’adresse principalement aux équipes de développement </li></ul><ul><ul><li>Le résultat d’un test unitaire est vrai / faux </li></ul></ul><ul><ul><li>Il faut faire du code spécifique pour les tests compliqués </li></ul></ul>
  9. 9. Syntaxe Selenium
  10. 10. Intégration Fitnesse Selenium Application de test Moteur de tests Fixtures API client Selenium Selenium RC Cas de test http Système de fichier http GET http GET 1 2 3 4 5 6 7 Système testé Navigateur Fitnesse Client Léger http Java, .Net, Ruby, Python, Perl
  11. 11. Ce qui change <ul><li>En faisant appel à l’API cliente de Selenium dans les Fixtures : </li></ul><ul><ul><li>Il est possible de définir une nouvelle grammaire pour les actions et les assertions </li></ul></ul><ul><ul><li>On peut également créer des actions et assertions spécifiques au système testé </li></ul></ul>
  12. 12. Avantages de l’intégration <ul><li>Les responsables qualité peuvent créer/exécuter/gérer des tests d’IHM </li></ul><ul><li>La grammaire est définie par les utilisateurs </li></ul><ul><li>Les résultats des tests sont détaillés et historisés </li></ul><ul><li>Les tests d’IHM peuvent-être complétés par d’autres actions : </li></ul><ul><ul><li>Gérer les jeux de données </li></ul></ul><ul><ul><li>Gérer la plateforme de recette </li></ul></ul><ul><ul><li>Vérifier les logs </li></ul></ul><ul><ul><li>Vérifier les données en base </li></ul></ul>
  13. 13. Démonstration
  14. 14. Projet SPPC <ul><li>Le SPPC (Socle de Pilotage de la Production Copernic) assure le pilotage et la supervision de la product° du SI Copernic de la DGFiP </li></ul><ul><ul><li>Le SI Copernic est composé de MA (Modules Applicatifs) </li></ul></ul><ul><ul><li>Les commandes permettent de démarrer et d’arrêter les services des MA ainsi que de lancer leurs traitements </li></ul></ul><ul><li>Le SPPC offre les fonctionnalités suivantes : </li></ul><ul><ul><li>Importer et consulter les Plans de Production Prévisionnel </li></ul></ul><ul><ul><li>Générer, consulter et gérer les Plans de Production Opérationnel </li></ul></ul><ul><ul><li>Modifier une commande contenue dans le plan </li></ul></ul><ul><ul><li>Lancer les commandes à la date planifiée puis suivre leur avancement </li></ul></ul>
  15. 15. Vision de l’Outillage de test <ul><li>Pour la MOA et la MOE de la DGFiP </li></ul><ul><li>Qui recettent l’application SPPC </li></ul><ul><li>L’outillage de test SPPC est un wiki </li></ul><ul><li>Il permet d’automatiser les tests d’acceptation </li></ul><ul><li>A la différence de la pratique actuelle qui </li></ul><ul><li>consiste à passer en 5 jours un cahier de tests manuels et linéaires </li></ul>
  16. 16. Features (1/2) <ul><li>Gérer les tests </li></ul><ul><ul><li>Créer, exécuter une suite et un cas de test </li></ul></ul><ul><ul><li>Analyser les résultats d’une suite et d’un cas de test </li></ul></ul><ul><ul><li>Consulter l’historique des tests </li></ul></ul><ul><li>Simuler l’activité des utilisateurs </li></ul><ul><ul><li>Saisir la valeur d’un champ </li></ul></ul><ul><ul><li>Vérifier l’accès concurrent avec deux utilisateurs (spécifique) </li></ul></ul><ul><ul><li>etc... </li></ul></ul><ul><li>Analyser les résultats </li></ul><ul><ul><li>Vérifier la valeur des champs </li></ul></ul><ul><ul><li>Vérifier une barre de planification (spécifique) </li></ul></ul><ul><ul><li>etc... </li></ul></ul>
  17. 17. IHM SPPC
  18. 18. Features (2/2) <ul><li>Interagir avec la plateforme de test (Serveurs) </li></ul><ul><ul><li>Arrêter et démarrer les serveurs </li></ul></ul><ul><ul><li>Modifier l’heure des serveurs </li></ul></ul><ul><ul><li>Sauvegarder et charger la base de données </li></ul></ul><ul><ul><li>Charger un Plan de Production Prévisionnel </li></ul></ul><ul><li>Interagir avec le bouchon NAD (Nœud d’Administration d’un Module Applicatif) </li></ul><ul><ul><li>Vérifier la présence et l’état d’une commande </li></ul></ul><ul><ul><li>Créer une commande </li></ul></ul><ul><ul><li>Modifier l’état d’une commande </li></ul></ul>
  19. 19. Bilan MOE <ul><li>Charge de réalisation de l’outillage </li></ul><ul><ul><li>40 jours pour : </li></ul></ul><ul><ul><ul><li>dossier d’architecture, guide utilisateur, guide d’installation </li></ul></ul></ul><ul><ul><ul><li>Réalisation et réception </li></ul></ul></ul><ul><li>Nombre de fonctionnalités </li></ul><ul><ul><li>47 pour simuler l’activité d’un utilisateur et analyser les résultats </li></ul></ul><ul><ul><li>9 pour gérer la plate-forme </li></ul></ul><ul><li>2046 lignes de code (sans commentaires) </li></ul><ul><li>Peu de demandes de support de la part de la MOA une fois l’outil mis en place </li></ul><ul><li>Peu de demandes d’évolution pour le passage de la version 1.7.1 à la version 1.7.2 de SPPC </li></ul>
  20. 20. REX MOE <ul><li>L’équipe MOE a adopté l’outil pour la recette usine. Cela permet de : </li></ul><ul><ul><li>Créer des jeux de données rapidement </li></ul></ul><ul><ul><li>Automatiser les tests les plus long à passer </li></ul></ul><ul><li>Les rapports avec la MOA se sont améliorés : </li></ul><ul><ul><li>L’outillage est innovant et répond aux besoins </li></ul></ul><ul><ul><li>La MOA gagne en confiance sur l’application SPPC </li></ul></ul>
  21. 21. Bilan MOA <ul><li>Spécifications de l’outillage </li></ul><ul><ul><li>Analyse du cahier de test manuel existant : 20 jours </li></ul></ul><ul><ul><li>Spécifications des fonctionnalités attendues : 10 jours </li></ul></ul><ul><li>Réception de l’outillage </li></ul><ul><ul><li>Rédaction du cahier de recette : 30 jours </li></ul></ul><ul><ul><ul><li>La réception a été réalisée avec l’outillage lui-même. </li></ul></ul></ul><ul><ul><ul><li>Cela a permis à la MOA de se former </li></ul></ul></ul><ul><ul><li>Correction des tests : 3 jours </li></ul></ul><ul><li>Rédaction des tests SPPC 1.7.1 : 105 jours </li></ul><ul><li>Adaptation des tests 1.7.2 : 37 jours (pour environ 500 jours de développement) </li></ul><ul><li>Nombre de tests : 130 </li></ul>
  22. 22. REX MOA <ul><li>Avantages </li></ul><ul><ul><li>Vérification des corrections et de la non-régression accélérée </li></ul></ul><ul><ul><li>Passage des tests compliqués ou longs à dérouler facilité </li></ul></ul><ul><ul><li>Construction des jeux de données automatisée (rejeu possible) </li></ul></ul><ul><ul><li>Chaque test est exécutable à tout moment grâce à l’indépendance des tests </li></ul></ul><ul><ul><li>Rédaction et exécution des tests à partir des postes MOA </li></ul></ul><ul><ul><li>Intervention de la MOE inutile </li></ul></ul><ul><li>Inconvénients </li></ul><ul><ul><li>les tests libres sont toujours nécessaires (pour l’expérience utilisateur) </li></ul></ul><ul><ul><li>l’investigation des tests non-passants est obligatoire </li></ul></ul><ul><ul><li>la mise au point des tests peut être longue (correction-relance) </li></ul></ul>

×