De l'importance de l'amélioration du processus de tests

Avec la complexité croissante des applications, la vérification du bon fonctionnement des programmes devient centrale. Un enjeu pour lequel la mise sur pied d'une cellule de test est recommandée.

Toutes les entreprises et toutes les organisations sont désormais tendues vers des objectifs d'agilité (pour innover et mettre à disposition des clients des produits et services plus rapidement), de qualité et d'efficacité. Ces objectifs sont en grande partie conditionnés par les systèmes d'information qui supportent les processus associés.

C'est ainsi que beaucoup d'investissements ont été réalisés pour donner ces propriétés d'agilité, de qualité et d'efficacité aux systèmes d'information ; tant sur les applications que sur les infrastructures. Ces systèmes de plus en plus ouverts et communiquant présentent des facteurs de complexités certains, de par l'hétérogénéité des composants, de par la diversité des technologies employées, sans oublier la diversité (culturelle et géographique) des utilisateurs.

Raison pour laquelle les processus de développement se sont considérablement industrialisés; permettant ainsi des opportunités nouvelles de réductions de coûts en externalisant, éventuellement en offshore la réalisation et/ou la maintenance.

Dans ce contexte, les activités de vérifications sont devenues cruciales. D'une part du fait des dommages considérables que peut avoir une anomalie, d'autre part du fait de l'énergie qu'il faut désormais y consacrer. Dans une situation où tout tester est impossible, les budgets et délais accordés faibles, comment faire et quel compromis trouver ?

La mise en place d'un processus de test autonome et parallèle aux processus de maintenance et de développement est une solution qui permet d'industrialiser et de professionnaliser les tests. Il permet de définir un cycle de vie spécifique au tests (corolaire des cycles de vies des applications et des produits), de décrire de façon non redondantes les activités de tests en fonction du temps, du types de tests et des vérifications souhaitées, d'anticiper les coûts de tests pour un niveau de qualité prédéterminé et de définir des rôles et compétences optimales.

La création d'une cellule de tests dédiée permet en complément de capitaliser, sur les exigences et le Testware (Ensemble des données et documents de tests), une automatisation poussée et une réutilisation optimale lors des non régressions. Le test est devenu une affaire de spécialistes qui doivent maîtriser les méthodes associées, les techniques de tests, et les outils spécifiques des tests. Leur concentration permet leur mobilisation immédiate, source de gain de temps et leur mutualisation.

De plus une telle cellule joue un rôle fédérateur de toutes les parties prenantes : maîtrises d'ouvrage, maîtrises d'oeuvre, production, sous traitants et agir de bout en bout, dans les applications et sur les infrastructures, en cherchant systématiquement l'anticipation la plus forte (plus les anomalies sont trouvées tôt, moins leur correction coûte cher) et la juste proportion de tests ajustée aux risques.

La mise en place d'un processus de tests, d'outils automatisés et d'une cellule de qualification et/ou de packaging apportent des résultats rapides en délais, en qualité et en coûts. Comment gagner encore plus ?

L'amélioration continue du processus de test permet un second niveau de gains significatifs. Pour pouvoir l'améliorer, il faut disposer d'une analyse de maturité initiale (et donc d'une modélisation des meilleures pratiques), se donner des objectifs et se doter de plan d'actions de progrès atteignable et démontrables : c'est-à-dire pouvant être mis en oeuvre très rapidement sur un pilote.

A ce jour les organisations les plus avancées développent la notion de « global testing » qui regroupe les propriétés suivantes : continuité des activités de testing dans le temps (sur tous le cycle de vie des applications, de l'idée à l'extinction) ; couverture bout en bout de tous les tests (y compris techniques et infrastructures) ; prise en comptes des activités de packaging et de conformité, intégration des activités de tests réparties et/ou distribuées, prise en compte des situations d'externalisation des développements et/ou de la maintenance et enfin professionnalisation continue des équipes.

S'y ajoute des déclinaisons spécifiques à des évolutions technologiques récentes comme la généralisation des open-source, les cas particulier des ERP, les méthodes de développement Agile et Xtrem Programing et les applications de type « mashup ».

En conclusion le processus de test matérialise l'industrialisation des activités de vérifications, à la fois ultime rempart garant de la qualité et contributrice aux objectifs des entreprises.

Littérature : compléments d'information
TPI® : Test Process Improvment : amélioration du processus de tests
TMap® : Test Managment Approach : Approche structurée des tests
TMap® Next : Global Testing