2010-01-23 5 views
5

Je travaille actuellement sur un grand projet BPM au travail qui utilise l'ensemble d'outils Global 360 BPM appelé Process 360. Juste pour donner un peu d'arrière-plan; ce produit fonctionne comme beaucoup d'autres solutions BPM en ce sens que vous concevez plusieurs «schémas de processus» qui définissent le flux d'un processus métier particulier que vous essayez de modéliser, et chaque carte de processus est composée de plusieurs nœuds de tâches reliés entre eux. (appeler des services Web, etc.)Les tests unitaires conviennent-ils au développement de BPM?

Actuellement, nous rencontrons des problèmes assez sérieux au cours des phases d'assurance qualité de nos versions car il n'existe aucun moyen fourni par l'ensemble d'outils pour automatiser les tests des itinéraires de la carte de processus. Donc, lorsqu'un processus important et complexe est développé et transmis à notre équipe de test, il y a souvent un grand nombre de problèmes qui surgissent. Bien que vous vous attendiez à des problèmes de QA, je ne peux m'empêcher de penser qu'un grand nombre de bugs auraient pu être détectés pendant le développement si nous avions un framework de test automatisé construire un ensemble de tests unitaires qui ont prouvé les différentes routes dans la (les) carte (s) de processus. À l'heure actuelle, les seuls véritables tests de développement qui se produisent s'apparentent davantage à des tests fonctionnels effectués par les développeurs, qui sont documentés comme un ensemble d'étapes manuelles par cas de test. Le problème avec cette approche est qu'il est très long pour les développeurs de s'exécuter manuellement, et à cause de cela, est également relativement sujettes à l'erreur. Aussi; parce que nous sommes habituellement sur un calendrier assez serré, les tests ne sont souvent pas exécutés assez souvent pour repérer les problèmes tôt.

Comme je l'ai mentionné plus tôt; le jeu d'outils actuel ne permet pas d'effectuer ce type de test automatisé. Ce qui m'a vraiment fait penser pourquoi? Étant tout nouveau dans la scène du BPM, je pensais que c'était juste une caractéristique qui manquait dans le produit, mais je me demande aussi si les "tests unitaires" ne sont pas faits traditionnellement dans le monde du BPM. Peut-être que ce n'est pas bien adapté à ce genre de travail?

Je serais intéressé de savoir si quelqu'un d'autre a déjà rencontré ce genre de problèmes, et aussi ce qui peut être fait pour améliorer les choses.

Répondre

2

J'ai effectué des tests unitaires avec K2.net 2003, un autre BPM commercial. J'appelle vraiment ce test d'intégration, car il nécessite un serveur de test et c'est relativement lent. Cependant, il est automatisé.

Il y a une bonne discussion de ceci dans le livre Professional K2 blackpearl (cela s'applique également à K2.net 2003). Pour l'appliquer à votre plate-forme, l'ensemble d'outils doit avoir une API permettant de démarrer des instances de processus, d'obtenir des éléments de travail, de compléter des tâches, etc. Vous écrivez des tests en utilisant n'importe quelle langue prise en charge (C#) un framework de test (j'ai utilisé NUnit). Si l'API prend en charge les appels synchrones, c'est plus facile à faire.Pour chaque test:

  1. Démarrer le processus en cours de test
  2. Progress l'élément de travail à un point de décision
  3. Définir les données d'instance de processus appropriée
  4. Compléter l'élément de travail
  5. Assertion que l'élément de travail est maintenant à l'activité attendue
  6. Supprimer ou terminer l'instance de processus

Les classes de test de base ou les méthodes auxiliaires peuvent faciliter cette tâche. Vous pouvez même écrire un DSL pour tester des cartes. Essentiellement, vous voulez une «couverture de test» complète du processus/de la carte. Testez chaque point de décision et assurez-vous que la branche correcte est prise.

3

J'ai vu quelque chose à ce sujet, mais pas Global 360 relatées: using bpelunit for testing processes

Je développe un outil de workflow et il y a une demande accrue pour l'ouverture des outils de test utilisés pour tester le moteur pour les utilisateurs finaux.

1

Deux aspects de BPM sont liés mais pas identiques.

Il existe des BPM que les fournisseurs d'outils et de technologies préconisent pour tout ce qui concerne les fonctionnalités.

Il y a aussi BPM que les architectes d'entreprise préconisent pour ce qui est de créer des centres d'excellence.

Le premier est où une entreprise achète un logiciel. Dans ce dernier cas, une entreprise apporte des changements systémiques et inhérents au comportement de ses informaticiens.

Le premier est supposé être au service de ce dernier mais ce n'est pas forcément le cas. Acquérir le premier est nécessaire mais pas suffisant pour atteindre le dernier.

Je ne sais pas exactement comment Global 360 prend en charge ce qui est connu sous le nom de développement piloté par les tests, mais JBoss jBPM fournit quelques tool support pour écrire facilement des tests JUnit. Cependant, l'outil ne peut pas et ne forcera pas les développeurs à les écrire ou à adopter les principes TDD.