Bienvenue sur Développement Agile

Référence sur le développement logiciel Agile. Nous traitons de conception, de programmation, de pratiques de génie logiciel, d'essais et d'autres sujets connexes.

Les essais et le développement Agile

Publié par David Beaumier le vendredi 18 novembre 2011 à 07:38

Il ne faut en général que quelques itérations aux équipes qui font du développement itératif et incrémental pour réaliser à quel point avoir une stratégie d'essais est importante. Le livre Agile Testing: A Practical Guide for Testers and Agile Teams de Janet Gregory et Lisa Crispin est une vraie mine d'informations pour en savoir plus sur les bonnes pratiques en matières d'essais. Le livre fait vraiment le tour d'une foule d'aspects, tel que: les différents niveaux et types d'essais, les rôles en assurance qualité, le rythme des itérations et l'arrimage avec l'équipe et l'organisation. Le chapitre Cultural Challenges est disponible en téléchargement depuis le site de l'éditeur.

Livre Agile Testing

Une grande partie du livre se consacre aux essais du point de vue de l'équipe TI et aborde les aspect technologiques associés. Par contre, un chapitre complet est dédié aux essais orientés "affaires" et présente des approches pour valider que le produit développé réponde bien aux besoins d'affaires auxquels il doit répondre.

Aucun livre traitant d'essais dans un contexte de développement Agile ne serait complet sans une section sur l'automatisation. Cette section est très bien faite et présente des approches pragmatiques aux problèmes communément rencontrés par les équipes. Les auteurs font le tour de la question et font bien ressortir le fait que l'automatisation c'est bien plus qu'une question d'outillage.

Outils

Si la lecture du livre vous donne envie d'explorer différents outils d'automatisation des essais, le site http://www.softwareQAtest.com propose un répertoire d'outils. Évidemment, aucun de ces outils n'est parfait et une évaluation des besoins de l'équipe est primordial. Il est en général préférable d'utiliser une approche empirique dans la mise en place d'un tel outil en débutant avec un outil simple et en réévaluant vos besoins après une certaine période de rodage.

Voici quand même quelques conseils pour orienter vos choix:

  • Impliquez toute l'équipe de développement dans les essais. La qualité est l'affaire de tous, et l'apport des développeurs est essentiel.
  • Si possible, débutez par des tests au niveau de l'API. Ils sont souvent plus simples à mettre en place que des tests sur la couche graphique et requièrent moins de maintenance à long terme. Votre plateforme de développement offre peut-être même déjà les outils nécessaires.
  • Les essais intégrés sont probablement ceux qui peuvent offrir le meilleur retour sur l'investissement à long terme. Ils permettent généralement de bonnes discussions sur les exigences à rencontrer et favorisent une collaboration entre les développeurs, les gens de contrôle qualité et les utilisateurs.
  • Débutez simplement et ayez des attentes réalistes au départ. Donnez-vous du temps pour expérimenter et apprendre.
  • Mesurez votre progression (nombre de cas, taux de succès, fréquence d'exécution, couverture fonctionnelle, etc).

Études sur l’amélioration de la qualité par l’utilisation du TDD

Publié par David Beaumier le lundi 2 mars 2009 à 17:27

Un article publié dans le Empirical Software Engineering journal présente le résultats de quatre études qui comparent l'impact de l'utilisation de TDD sur la réduction des anomalies. L'article s'intitule Realizing quality improvement through test driven development: results and experiences of four industrial teams. Les auteurs proviennent de Microsoft, IBM et de l'Université de la Caroline du Nord.

Selon ses auteurs, l'article conclu que l'application du TDD permet une réduction variant de 40 à 90% par rapport à des projets similaires n'utilisant pas cette pratique de développement. Ils dénotent aussi une augmentation du temps de développement, mais comme je l'ai mentionné dans cet article précédent, il est fort probable qu'en comparaison les équipes témoin ne faisent pas (ou très peu) de tests unitaires. N'en demeure pas moins que l'augmentation de la qualité relevée est impressionnante.

InfoQ rapporte également une publication de Maria Siniaalto datant de 2006 dans laquelle l'auteur compare 13 expérimentations portant sur l'application de TDD dans divers contextes. Ses conclusions rejoignent celles de l'article du Empirical Software Engineering journal pour ce qui touche l'amélioration de la qualité. Fait intéressant, elle note qu'aucune étude à ce jour (2006) ne mesure l'impact de TDD sur la conception logicielle, alors qu'il s'agit pourtant d'un des première promesse de cette pratique. Tiens, un autre aspect de TDD sur lequel il me faudrait fouiller un peu plus et voir si des mesures ont été publiées au cours des trois dernières années.

Archive