20 juin 2007

Brainstorm sur les tests fonctionnels...

J'ai pu discuter avec un "core developer" de spring sur un sujet qui lui a chatouillé les neurones : comment effectue des tests fonctionnels (tests d'interface web) reproductibles sur une application qui dépend au niveau métier d'un serveur distante (MQ, Tuxedo, ...) ?

Le problème : comment contrôller
  1. que l'infrastructure est en place (queues MQ, simulateurs configurés...)
  2. que le simulateur effectue le traitement exact prévu par le test
le tout sans se prendre la tête avec 2 tones de conf et de frameworks...

Une idée : l'application est lancée en utilisant la classe de test elle-même comme objet "mock" à la place de l'invocation du serveur distant. Le code de test est alors à la fois dans la JVM de l'application web (comme simulateur du service) et dans la JVM qui pilote le test. L'écriture du test est donc très simple et à la portée d'un "junior developer".

Il suffit alors de prévoir dans le "setup" du test de contrôler le serveur pour le faire utiliser la classe de test comme simulateur du service, chose qui n'est pas très compliquée par JMX interposé. Reste a package cette partie pour que n'apparaisse que le strict minimum aux développeurs et pas tous les rafinements techniques que nous aimons tous...

Bref, ça commence dur cette édition 2007 de Springone ! J'espère qu'ils auront encore tout plein de bonnes idées à me passer.