03 mai 2008

Automatisation des tests WPF

www.thoughtworks.com a un nouveau framework de test, nommé White, qui permet d'automatiser les tests fonctionnels via l'interface des applications WPF (XBAP).

Nous allons y jeter un coup d'oeil car notre première recherche ne s'était pas avérée fructueuse (voir http://agile.blogspirit.com/archive/2007/10/05/tests-dans...). En espérant que ce nouveau framework sera intéressant. Ca devrait être le cas, car généralement thoughtworks produit des choses intéressantes. Je pense par exemple à Selenium pour les tests web.

12 octobre 2007

Conception d'interface riche

La conception d'interface personne système pour des applications riches représente un nouveau défi, d'une part parce qu'elles diffèrent des applications de bureau ou web et d'autre part parce qu'elle partage des similitudes avec ces deux type d'applications.

Les applications riches sont différentes des applications purement web (HTML) notamment car elles permettent plus d'interactivité. Elles partage aussi des traits commun avec le web, par exemple l'utilisation du bouton "page précédente" ("back"), la possibilité de "bookmarker" un état de l'application et du fait qu'elle sont disponibles à l'intérieur d'un fureteur et ne requiert pas d'installation locale.

Comme les applications de bureau ("desktop application"), les applications riches réagissent rapidement et permettent de manipuler de grandes quantités d'informations.

La plupart des applications riches incorporent des caractéristiques comme:

  • glisser-déplacer (drag and drop)
  • sélection et manipulation directe d'objets
  • validation interactive en cours de saisie
  • complétion de champ de saisie (ex: GoogleSuggest)
  • utilisation de graphique vectoriel (ex. GoogleFinance)
  • utilisation de média riche comme la vidéo (ex. YouTube)

Dans le cas de notre applications de registre des demandes, on pourrait permettre de supprimer une demande simplement en la faisant glisser dans une corbeil, plutôt ou en plus d'un bouton de suppression. On pourrait imager assigner une personne à la demande en faisant glisser une demande sur une personne et/ou l'inverse.

Si la plupart des sites web ont une structure hiérarchique et que les applications de bureau sont souvent multi-fenêtres, les applications riches quant à elles sont à page unique, i.e. que toute l'interaction se produit dans une seule page qui répond au contexte d'utilisation. Le catalogue de la FNAC est un bon exemple xbap, et FamilyShow un bon exemple WPF.

C'est d'ailleur un constat (application à page unique) auquel nous sommes nous même arriver en ébauchant le concept général de nos applications XBAP. De par l'observation d'applications existante et par les limites d'une approche qui mélange le web et le bureau.

Cela à pour implication de mettre l'emphase sur la tâche de l'utilisateur, sur son objectif courant. Donc les notions de contexte, de contenu et de tâches seront des aspects centraux de la conception.

En résumé, la conception sera driver par les objectifs/tâches de l'utilisateur. La question initiale est: qui sont nos utilsateurs et quels tâches font-ils?

05 octobre 2007

Tests dans VisualStudio Suite

Hier j'ai jeter un coup d'oeil à VisualStudio pour voir le genre d'outil de test intégrés, toujours dans le but de faire du TDD (Test Driven Development) et en particulier d'automatiser les tests pour l'acceptation des users stories.

Dans VS2005 il est possible d'ajouter une projet de test à une solution. Dans ce projet de test il peu y avoir divers type de tests: web, unitaire (unit), charge (load testing) et même des tests manuels. Comme j'avais installer TestComplete, VS2005 permet même de créer ces tests à l'intérieur de VS. Donc intéressant d'un point de vue développeur, mais pas ce que je cherche pour tester nos applications XBAP.

Donc pour le moment QuickTest Pro semble le meilleur choix.

03 octobre 2007

Test des applications WPF et XBAP

Idéalement j'aimerais avoir des tests automatisés pour toutes les users stories que nous développons, dans le style de ce que FIT/FITnesse, Selenium ou GreenPepper fait. Mais voilà, il n'existe rien pour le moment qui supporte les applications WPF ou XBAP. Il n'y a rien qui soit user friendly et qui viserait le pilote du système (client). Bien sûr il est possible de tester les services web, mais je veux attendre un peu avant d'introduire plus de code.

 Du coté de l'interface il ne semble y avoir que "QuickTest Pro" de Mercury, iSimplyTest de Invivo Software et TestComplete de Automated QA.

J'ai installé QuickTest pro et j'ai lancer le produit. Première constatation, ça n'a pas l'air simple. Après quelques minutes je constate que je dois installer le add-in pour .NET si je veux enregistrer les événements dans WPF/XBAP. J'ai fait des tests avec l'application xbap "wiki explorer" et ça fonctionne relativement bien. Par contre un test avec le features explorer de la grille xceed semble montrer que QTP ne reconnait pas les controles. Avec Infragestics ça a l'air de mieux être reconnu.

iSimplyTest est une concept intéressant mais très peu évolué et qui requiert du code, donc pas ce que je recherche. Ca semble être une bonne facon d'apprendre le "UI automation" de WPF.

J'ai aussi essayer TestComplete très sommairement. Comme la vue tourne autour du code, ce choix m'apparait moins intéressant pour nos besoins.