# TMap

TMap (Test Management Approach) est une approche en matière de test et d'assurance qualité des logiciels.
TMap repose sur quatre grands thèmes :
* le Cycle de Vie (C) des activités de test ;
* une forte imbrication dans l'Organisation (O) ;
* les Infrastructures et outils adaptés (I) ;
* les Techniques utilisées (T).
TMap a été créé par Sogeti Pays-Bas en 1992.
En s'appuyant sur les concepts de la norme CMMI appliquée aux tests, TMap aide à définir une stratégie basée sur les risques induits par le projet, les contraintes de budget, de délais et de ressources, et évidemment les exigences fonctionnelles, techniques et qualitatives.
TMap et TPI (Test Process Improvement) sont des marques déposées du groupe Sogeti. TMap est fondé sur l'expérience théorique plutôt que pratique, mais c'est avant tout un ensemble de bonnes pratiques structuré par une démarche pragmatique - bien que ne donnant aucune marche à suivre concernant la réalisation de dossiers de tests. TMap se voudrait être un standard international reconnu et « est utilisé par des entreprises de différents secteurs industriels » (lesquelles ? Donner des noms).

## Le cycle de vie ou Lifecycle

À l'instar d'un processus de développement, un processus de test est composé d'un certain nombre d'activités. Tout comme l'on retrouve des modèles de cycle de vie dans le développement, TMAp propose un modèle de cycle de vie pour les processus de Test. Ce modèle décrit l'enchainement des activités à chaque étape du processus de test.

### Les cinq phases du cycle de vie

Dans TMAp, le cycle de vie du processus de test est divisé en 5 phases. Dans chacune de ces phases, plusieurs activités sont distinguées. Toutes ces activités proposées ne sont pas toujours utiles pour un même projet, il convient alors au responsable des tests de sélectionner les activités adéquates.

#### Planification et suivi

Cette phase commence lors de la phase de spécifications fonctionnelles du projet. Elle est la base d’un processus de test gérable et de qualité. Elle a pour but d’anticiper le processus de test bien qu’il ne soit pas aisé à ce stade d’évaluer précisément les difficultés que l’on va rencontrer lors de la gestion et du contrôle du processus. Cette phase se déroule tout au long des autres phases et permet une réactivité et une gestion maitrisée des activités. Il s’agit ici de préparer et d’élaborer le plan de tests qui précisera :
* ce qui sera testé
* par qui
* comment
* quand.
Puis de coordonner, piloter, contrôler et donner de la visibilité sur les objets testés. Et enfin dans une troisième partie d’informer, c'est-à-dire de prendre en compte et d’organiser un reporting régulier des activités de tests ainsi que des résultats obtenus. Cette phase se décompose donc en deux étapes, préparer puis suivre, chaque étape est composée d’un nombre d’activités clairement défini. Ainsi la phase de préparation comprend 10 activités qui aboutissent à l’élaboration du plan de test, et la phase de suivi comprend 4 activités destinées à assurer le contrôle, le pilotage et la coordination du processus de test.

#### Préparation

Le but de cette phase est de préparer les revues de testabilité et d'effectuer les choix techniques de tests. Au cours de cette phase, on détermine si les entrants du test sont de qualité suffisante pour garantir le succès des phases suivantes. On divise alors le système à tester en sous-systèmes composés d'unités de test, cohérentes à mener séparément.

#### Spécification

Le but de cette phase de spécification des tests est la création des cas de tests, et ce pour chaque partie fonctionnelle du programme, ainsi que pour chaque phase d'intégration. Ces cas de tests sont rédigés d'après les spécifications techniques des tests et en prenant en compte les résultats de l'analyse de risques. Ils sont basés sur les techniques prescrites pour le projet. TMAp prévoit cependant le cas où aucune technique particulière n'a été choisie pour le projet. La phase de spécification permet également de préparer l’exécution des tests. Outre la spécification des tests eux-mêmes, cette phase contient également la création des utilitaires de tests identifiés. Il s'agit de tous les prérequis à l'exécution des tests. On retrouve notamment les sous-programmes consacrés aux tests, les scripts spécifiques qui ne seront utilisés que pour l'activité de test, ainsi que les drivers et autres interfaces nécessaires.

#### Exécution

Cette phase commence quand l'environnement de test a été implémenté, que les outils de tests sont disponibles et référencés, et que le programme qui fera l'objet du test est prêt. La phase d'exécution comprend bien sûr l'exécution des tests tels qu'ils ont été spécifiés précédemment dans la stratégie de test. Mais elle contient également les activités d'analyse et de comparaison des résultats obtenus. Ces activités sont les plus importantes du processus de tests et représentent le cœur du métier du testing. C'est au cours de cette phase que seront remontées les anomalies rencontrées. Après la correction des anomalies détectées, les tests concernés sont rejoués afin de valider les modifications. Un compte rendu des tests est également créé, en combinant les cas de tests tels que rédigés au cours de la phase de spécification aux résultats de tests.

#### Clôture

La phase de capitalisation comprend deux activités majeures, la préservation du testware et l'évaluation du processus de test. La préservation du testware est l'activité la plus importante de cette phase. Elle consiste en la sélection de tous les éléments du processus de test qui peuvent être conservés pour des tests futurs avec d'éventuels ajustements mineurs. On effectue alors un inventaire des documents utilisés, les livrables réalisés sont également listés. Cette phase permet également de maintenir un environnement de test adapté pour les tests de non-régression, qui pourraient être nécessaire lors des opérations de maintenance sur le projet.

## L'infrastructure

Le testing, pour être réalisé dans de bonnes conditions, nécessite un environnement de test spécifique. Cet environnement doit être :
* stable
* sous contrôle
* représentatif des attentes
* adapté au projet
Ces conditions permettent l’exécution de tests reproductibles. L'infrastructure décrit également les outils de test utilisés ainsi que les environnements de travail (bureau, fournitures,...).

## L'organisation

Le processus de test est mené par des personnes humaines et nécessite donc une organisation qui décrit d'une part les équipes de tests et les interactions avec les autres intervenants du projet. L'organisation permet également de cerner et d'attribuer de façon claire les responsabilités, et améliore les différentes communications.

## Les techniques

L'activité de tests nécessite une boite à outils (toolbox), qui décrit les outils et pratiques permettant de dégager une stratégie de test :
* adaptée ;
* structurée ;
* reproductible.
TMap répond à ce besoin en fournissant une check-list des caractéristiques de qualité à satisfaire sur une activité de tests. Font également partie de cette toolbox les méthodes d'analyse de risque, et les outils de gestion des plannings.