Test Logiciel et Assurance Qualité

Aller au contenu | Aller au menu | Aller à la recherche

samedi 6 février 2010

Deux définitions du test

Comme tant de domaines, le test logiciel a souvent été défini. On trouvera une définition différente dans chaque livre, dans chaque glossaire. Avec un peu de chance, on constatera que ces définitions expriment globalement la même idée. Est-ce bien le cas ?

La définition classique : le test pour vérifier la conformité

Le glossaire du CFTL donne une définition large et conventionnelle du test logiciel :

Processus consistant en toutes les activités du cycle de vie, statiques et dynamiques, concernant la planification et l’évaluation de produits logiciels et produits liés pour déterminer s’ils satisfont aux exigences, pour démontrer qu’ils sont aptes au objectifs et détecter des anomalies.

Voilà une définition qui tache de ne rien oublier : les techniques statiques, si facilement évincées, l'application à tout le cycle de vie du logiciel et non aux activités qui précèdent la mise en production... Quant au but, il est clair : le test permet de vérifier que le logiciel livré et maintenu est le bon. Celui qui est conforme aux attentes des utilisateurs, aux besoins, aux exigences, aux standards... Oh, et s'il y a des défauts, ils sont détectés.

Cette description est assurément positive. Le test permet d'améliorer la qualité. Au fait, comment pourrait-il en être autrement ? Contrairement au développement, le test contribue pas directement au logiciel produit. En passant commande, le client achète du code (fut-il compilé) et de la documentation, pas des tests. Par conséquent, le test n'aurait pas sa place dans les projets s'il n'annonçait pas sa capacité à apporter de la valeur.

La définition destructive : le test qui casse le logiciel

Dans The Art of Software Testing, Glenford Myers donne une toute autre version :

Tester est le processus consistant à exécuter un programme dans le but d'y trouver des erreurs. *

L'approche est radicalement différente. Point de qualité ou de conformité, mais un but précis et résolument négatif. Trouver des bugs. Mettre en défaut le travail des développeurs.

Curieuse approche, voir carrément suicidaire. Entretien d'embauche : "Bonjour Monsieur l'Employeur. Vous devez savoir que j'aime les bugs. Je les collectionne.Si vous m'offrez ce poste, je m'évertuerai à démontrer que vos logiciels sont bourrés d'erreurs". D'accord, cette approche sarcastique ne dupe personne. On voit bien que la définition de Myers a du sens. Néanmoins la question se pose : comment deux définitions si différentes peuvent-elle coexister ?

Une question de buts et de taches

Dans le test comme dans la vie, on a des buts :

  • Vérifier la conformité d'un logiciel
  • Apprendre le chinois
  • Partir en voyage

Cet buts permettent de savoir où l'on va. Cependant, ils ne sont pas réalisables tel quel. Ils ne sont pas actionables comme le décrit David Allen dans son best seller Getting Things Done. On en peut pas débuter la journée en se disant "Aujourd'hui, j'apprends le chinois", car l'apprentissage du chinois prend des années. Pour réaliser ces buts, il faut :

  • Implémenter les cas de test spécifiés la veille, déclencher une réunion pour discuter de ces tests qui n'en finissent pas d'échouer, lancer les tests sur le dernier build...
  • Chercher les cours de chinois qui se déroulent dans le quartier, apprendre 10 idéogrammes, regarder un film chinois en VO...
  • Renouveler son passeport, rechercher le meilleur rapport qualité/prix sur Internet, faire la liste des choses à acheter avant le départ...

Autrement dit, on a besoin de décomposer les buts en sous-projets et finalement en taches qui sont concrètement réalisables. C'est ce que fait la définition de The Art of Software Testing par rapport à celle du CFTL. Un testeur ne peut pas poser les mains sur le clavier en pensant "Je vais vérifier que le logiciel satisfait aux exigences". Il devrait avoir cela en tête pour ne pas perdre le Nord, mais cela ne lui dira pas s'il doit lire un document, ouvrir un fichier ou lancer un test. En approfondissant, le testeur peut déterminer ses activités :

  • Lire et comprendre les exigences, faire des retours s'il y détecte des incohérences
  • Participer à une revue de code
  • ...

L'une de ses activités lui est dictée par la définition de Myers : exercer le logiciel dans le but d'y trouver des erreurs. A nouveau, le testeur devra réfléchir aux taches concrètes qui découlent de ce sous-objectif : écrire un test, exécuter ce test, lire The Art of Software Testing...

* Testing is the process of executing a program with the intent of finding errors.

dimanche 29 novembre 2009

Comment passer l'examen CFTL/ISTQB niveau Fondation ?

ISTQB Certified TesterLe CFTL permet de passer l'examen pour obtenir la certification ISTQB, niveau Fondation. Cette certification est de plus en plus populaire en France et dans le monde. De quoi s'agit-il et comment s'y prendre ?

L'examen

L'examen porte sur le Foundation Level Syllabus, soit le Syllabus Niveau Fondation, traduit en français par le CFTL (avec une version de retard à ce que je comprends, bien que cela ne fasse pas grande différence). Ce document couvre l'essentiel du test logiciel : intérêt du test, place du test dans le cycle de vie, techniques de test, etc.

L'inscription se fait en ligne sur le site du CFTL.

L'épreuve est un QCM de 40 questions. Chaque question s'accompagne de 4 réponses dont une seule est correcte. Il n'y a pas de pénalité : une mauvaise réponse ne retire pas de point. Pour passer l'examen, il faut au minimum 65% de réponses correctes, soit 26 bonnes réponses.

L'examen dure une heure. C'est une durée tout à fait suffisante. Les questions sont relativement simples : soit on sait, soit on ne sait pas. Quelques difficultés de formulation ou de petits exercices peuvent demander un peu de temps, mais globalement toutes les questions trouveront réponse rapidement. Ainsi on remplit le questionnaire en 45 minutes environ, tandis que les 15 minutes restantes sont bien utiles pour se relire et revenir sur les questions délicates.

Pendant l'épreuve, les documents sont interdits, de même que les brouillons. Si vous devez noter quelque chose, vous pouvez griffonner sur le questionnaire lui-même. Vos commentaires seront de toute façon ignorés, seules les croix comptent.

Les résultats sont communiqués par mail sous une semaine. Par la suite, le candidat reçoit un justificatif par courrier.

Préparer l'examen

Il existe plusieurs options pour se préparer à l'examen. A vous de trouver celle qui vous convient.

Aucune préparation !

Se présenter à l'examen les mains dans les poches, après tout pourquoi pas ? Le niveau Fondation couvre les bases du test logiciel. Lorsqu'on a plusieurs d'années d'expérience, on peut estimer posséder le bagage nécessaire.

Bien que cette approche soit raisonnable, je la déconseille. Même si vous avez la connaissance pour vous lancer, je vous recommande d'éviter deux difficultés :

  • Vocabulaire : Ça n'a l'air de rien, mais il est facile de se laisser surprendre par un point de vocabulaire. L'ISTQB définit un glossaire dont on retrouve les termes dans le questionnaire. Il est donc utile de consulter le glossaire français afin d'éviter les surprises.
  • Questionnaire : La forme d'un QCM peut laisser penser que l'examen est plus facile que si les réponses avaient été libres. C'est en partie vrai, et cependant les différents choix peuvent laisser perplexes. On a parfois l'impression que toutes les réponses sont bonnes, alors qu'une seule est correcte. En réalité la formulation de la question permet toujours d'isoler la bonne réponse, encore faut-il acquérir certains réflexes. Le plus simple est de se familiariser en effectuant un examen blanc. Knowledge Department en propose un d'une vingtaine de questions. On trouve aussi des examens en anglais.

Au delà de la préparation, l'examen blanc vous permettra de déterminer si vous pouvez vraiment vous présenter à l'examen sans apprentissage ou si quelques révisions s'imposent.

Coût de cette approche : 250€, soit le prix de l'examen.

Effectuer une formation puis passer l'examen

Des sociétés accréditées proposent des formations de 3 jours. Ces formations se focalisent sur le syllabus du CFTL, de sorte qu'elles préparent véritablement au passage de l'examen. C'est en fait le package "formation + examen" qui est proposé : les auditeurs passent l'examen aussitôt la formation terminée. Tant mieux, autant battre le fer tant qu'il est chaud. Par contre, j'ignore si c'est systématiquement ainsi que cela se passe. Vous devriez donc vous renseigner.

Le site du CFTL recense les sociétés qui dispensent ces formations.

N'ayant pas assisté à une telle formation, je ne peux pas les commenter d'avantage. Si vous-même vous avez cette expérience, je vous invite à laisser un commentaire pour donner vos impressions.

Coût de cette approche : environ 1500€, selon la formation.

Auto-formation

Moins cher qu'une formation et plus prudent que la simple confiance en soi, il est possible de se préparer soi-même à l'examen.

On peut opter pour le syllabus publié par le CFTL. Après tout c'est sur ce document que porte l'examen, impossible de se tromper. Malheureusement ce document est un peu austère. Le professionnel pressé saura y trouver les informations dont il a besoin pour se présenter à l'examen en toute quiétude. Le débutant risque en revanche d'avoir plus de mal à aborder ce document. Jetez-y un coup d'œil et voyez si c'est la formule qui vous convient ou pas.

Autre possibilité, il existe plusieurs ouvrages en anglais qui traitent du syllabus ISTQB niveau Fondation. J'ai opté pour Foundations of Software Testing: ISTQB Certification (vous trouverez sur Amazon.com commentaires et critiques des lecteurs, mais pour commander passez par Amazon.fr... ou par un autre site). Ce livre est très bien :

  • Véritable préparation à l'examen : Comme promis sur la couverture, le livre suit le syllabus afin que le lecteur se familiarise avec ce qu'il va rencontrer lors de l'examen. Chaque chapitre s'achève par un QCM de quelques questions, et le dernier chapitre, qui traite de l'examen lui-même, comporte un QCM complet de 40 questions. Ainsi, en répondant à toutes les questions, on effectue l'équivalent de deux examens blancs.
  • Pas trop de blabla : C'est toujours un plaisir de lire, mais autant aller à l'essentiel. Le livre compte 200 pages de contenu, auxquelles s'ajoutent le glossaire, les réponses aux QCM, etc. C'est le bon volume.
  • Agréable à lire : Cet ouvrage se veut comme un livre à lire, et non une énumération rébarbative. En fait, il constitue une bonne introduction au test logiciel, ISTQB ou pas. On pourra donc s'y plonger sans que ça soit une corvée.

Il y a évidemment un risque à se former en anglais tandis que l'examen est en français. Il serait malheureux de se laisser attraper par une traduction improbable. Le glossaire du CFTL est bilingue, ce qui permet de repérer les traductions délicates. A vrai dire, le parcours en diagonale auquel je me suis livré n'a pas révélé de piège : "regression testing" devient bien "test de régression", etc. Pas de piège. Cela s'est vérifié lors de l'examen.

Quid d'un ouvrage français pour se préparer ? Il existe bien un livre prometteur, Pratique des tests logiciels : Concevoir et mettre en oeuvre une stratégie de tests - Préparation à la certification ISTQB. Malheureusement, il est difficile de déterminer ce qu'il apporte vraiment par rapport à la certification ISTQB. On parle simplement de "préparer au passage de la certification ISTQB du métier de testeur". L'ouvrage se focalise-t-il sur cet objectif ? Ou s'agit-il simplement d'une caractéristique dont peut se prévaloir tout texte traitant du test logiciel ? Le niveau visé n'est même pas cité : Fondation ? Avancé ? En l'absence de détails, j'ai préféré m'abstenir. Si vous avez lu ce livre, publiez un commentaire, ici ou ailleurs, afin d'éclairer les lecteurs hésitants !

Coût de cette approche :

  • Un livre : 30€ environ
  • L'examen : 250€

Bonne certification !

Un débutant trouvera avantage à passer l'examen CFTL/ISTQB niveau Fondation. Il couvre l'essentiel du test logiciel. Pour le testeur expérimenté, l'examen correspond plus à une validation d'acquis qu'à un véritable apprentissage. C'est un bon point de départ pour faire reconnaitre son expérience.

Quel que soit votre niveau et la façon dont vous préparerez l'examen, je vous souhaite bonne chance !