Cours 4



Les autres types de tests
L'analyse des tests
Les outils de tests
Documentation associée aux tests



Les autres types de tests
Les tests statistiques


Les tests de non régression


Commentaires

1   Les autres types de tests

Il existe beaucoup de types de tests : Chaque type de tests à pour but de valider un aspect du système logiciel. Il faut donc bien les connaître afin de faciliter le processus de tests.



Les tests statistiques


Commentaires

2   Les tests statistiques

Le but des tests statistiques est plus d'évaluer la fiabilité d'un système plutôt que d'identifier des anomalies. Ils sont généralement réalisés après la campagne de tests.
Ces tests consiste à générer les entrées du système suivant une loi probabiliste (distribution uniforme, distribution stochastique,
...), et à comparer les résultats fournis par le système avec les résultats d'un ``oracle''. Cet oracle peut être un second système dans le cas d'une programmation en N-versions, ou un modèle du système dans un langage plus abstrait (Prolog, Asa, ...).
Avantages
Inconvénients


Tests de non-régression
Revalidation d'un système logiciel suite à des modifications
Identification des tests à réexécuter
Identification des tests à ajouter


Commentaires

3   Tests de non régression

Les logiciels subissent continuellement des modifications (par exemple : maintenance corrective, maintenance évolutive). Il est par conséquent nécessaire d'effectuer une revalidation du logiciel. Pour des raisons de coûts et de délais, il n'est pas raisonnable de ré-exécuter l'ensemble des tests effectués sur la version initiale.
Le but des
tests de non régression est d'optimiser le processus de validation d'un logiciel suite à ces modifications. C'est un processus de démonstration de la couverture de l'impact des modifications.
De la même façon que le processus de tests, les tests de non-régression se déroulent durant chaque phase de développement des modifications (i.e. de la spécification des modifications jusqu'au codage). Ils font partie du processus d'analyse d'impact des modifications du logiciel.




L'analyse des tests
Justification de la couverture de tests
Injection de fautes


Commentaires

4   L'analyse des tests

Lorsque l'on fait réaliser des tests, il est légitime de vouloir savoir la pertinence du dossier de tests fournis. Par exemple, une autorité de sûreté a besoin de connaître la ``qualité'' des tests réalisés afin de pouvoir se prononcer sur la sûreté du système. Pour cela, il existe plusieurs techniques d'analyse de jeux de tests.
La
justification de la couverture de tests est la technique la plus utilisée. Elle consiste à vérifier à l'aide d'outils ou de matrice de traçabilité la couverture effective des jeux de tests.
La seconde, l'
injection de faute, consiste à créer des mutants d'un programme original afin de vérifier que les jeux de tests permettent de trouver ce mutant. Un programme mutant est une altération d'un programme original. Par exemple : Plusieurs techniques existent sur l'injection judicieuse de fautes.



Les outils de tests (1/2)
But Nombreux outils industriels existants : Attol, Devisor, C-Cover, ...


Commentaires

5   Les outils de tests (1/2)

Les outils de détermination de la couverture de tests permettent de déterminer plusieurs couverture de tests comme : Ces outils ne permettent pas de vérifier le comportement désiré pour le logiciel. C'est-à-dire que la vérification des jeux de tests par rapport à la spécification reste à la charge du testeur.
Il existe de nombreux outils de tests industriel :


Les outils de tests (2/2)


Commentaires

6   Les outils de tests (2/2)

Ces outils fonctionnent en instrumentant le code source. C'est-à-dire qu'il ajoute des instructions de trace dans le code afin de connaître les parties du code activées par un ensemble de jeux de tests. Ceci a deux désavantages : Ceci impose donc de rejouer l'ensemble des jeux de tests sur le code source de départ.



Documentation associée aux tests
Software Test Plan (STP) Software Test Report (STR)


Commentaires

7   Documentation associée aux tests

Comme le processus de développement, le processus de tests a sa propre documentation. Il existe deux documents à produire pour chaque phase de tests.

L'ensemble des plans type de la DoD 2167A sont disponible sur le site du Département américain de la Défense.




Software Test Plan (STP)
  1. Scope
  2. Software test environment
  3. Test identification
  4. Test schedule
  5. Requirements tracability

Commentaires

8   Software Test Plan (STP)

Afin de réaliser des tests, il est nécessaire d'écrire le plan de tests du logiciel. Le plan de tests du logiciel de la DoD 2167A : Le chapitre 1 permet d'identifier exactement le système à tester (son nom, son numéro d'identification, la version/release à tester. Il présente aussi une description succinte du système à tester ainsi que l'ensemble de la documentation applicable et de référence.
Le chapitre 2 présente l'environnement de tests du logiciel.
Le chapitre 3 présente les tests à réaliser.
Le chapitre 4 présente la planification de la campagne de tests.
Le chapitre 5 présente les moyens mis en oeuvre afin d'assurer la traçabilité des tests.




Software test environment
  1. Software items
  2. Hardware and firmware items
  3. Other materials
  4. Proprietary nature, acquirer's right and licensing
  5. Installation, testing and control
  6. Participating organizations
  7. Personnel
  8. Orientation plan

Commentaires

9   Software test environment



Test identification
  1. Test levels
  2. Test classes
  3. General test conditions
  4. Test progression
  5. Data recording, reduction and analysis
  6. Planned tests

Commentaires

10   Test identification



Software Test Report (STR)
  1. Scope
  2. Overview of the test results
  3. Detailed test results
  4. Test log

Commentaires

11   Software Test Report (STR)



Références

[1]
B. Beizer. Software testing techniques. V.N. Reinhold, 1992.

[2]
G. Meyers. The art of software testing. J. Wiley, 1979.

[3]
C. K. S. Xanthakis, P. Régnier. Le test des logiciels. Hermès, 2000.

[4]
M. Shooman. Software Engineering. Internationnal Student Edition, 1985.
et aussi le
Journal of Software Testing, Verification and Reliability édité par J. Wiley


Commentaires

12   Bibliographie

The art of software testing, premier ouvrage de référence sur les tests (épuisé). Une très bonne introduction sur le rôle des tests et des testeurs. Description détaillée des couvertures de tests. La partie sur les outils de tests date un peu.
Software testing techniques, ouvrage de référence sur les tests. Il est très complet.
Software Engineering, ouvrage décrivant l'ensemble des phases de développment d'un logiciel. Le chapitre sur les tests est assez complet. Il contient aussi un chapitre fourni sur la fiabilité des systèmes à base de logiciel.
Le test des logiciels, ouvrage en français récent. Il présente les différentes couvertures de tests ainsi que les méthodes et stratégies de tests. Chaque type de tests est illustré par un exemple.
Journal of Software Testing, revue consacrée au test sous toutes ses formes.


Ce document a été traduit de LATEX par HEVEA.