Un filet de sécurité pour se lancer dans la refonte d’un module Puppet

Le but de cet article est d’étudier la façon dont on peut se construire un filet de sécurité quasi automatiquement avant de se lancer dans la réécriture d’un obscur module Puppet.

Le vieux module AKA la bête à 7 têtes

Ce module, vous le connaissez, vous l’avez peut-être même écrit quand vous débutiez avec Puppet.

Il n’a aucun tests, il est écrit à la va-vite, aucun commentaire, une paire d’appels à des scripts externes pas plus documentés et puppet-lint en viendrait même à se demander si c’est bien du Puppet …

Bref il faut le revoir.

Ce module, ça pourrait être lui. Mais ça pourrait aussi être son cousin avec 10 lignes de Puppet et 1500 lignes de shell.

Normalement en voyant ça, on prend peur, on veut le jeter, repartir de zéro, écrire des commentaires, faire du TDD (enfin du TDI ici), faire du serverspec, du beaker ou du test kitchen

Oui mais, ce module il fonctionne et a donc déjà de la valeur ! Lire la suite

Reprise de données lors d’une refonte IT agile

Les données sont au cœur de votre business. Susceptible de reporter la mise en production de votre nouvelle application, il faut considérer la reprise de données comme une étape importante de votre processus de refonte.

La reprise de données est un aspect technique particulier de la refonte qui doit être pris en charge par une équipe dédiée (il suffit d’un développeur et d’un PO pour former une équipe) dès le début du projet afin d’anticiper la complexité des règles de reprise, de vérifier le bon fonctionnement de l’application (et oui !) et d’éviter des choix de conception logicielle pouvant bloquer la reprise.

Si vous comptez vous lancer dans cet exercice périlleux, voici quelques retours d’expériences issus d’un projet de refonte d’une application client lourd vers une architecture cible classique (web, java, hibernate, …), mené en agile, avec en parallèle et sur le même rythme agile, le projet de reprise de données.

Lire la suite

Formations sur les méthodes agiles à partir de septembre

L’Universite du SI, événement organisé par OCTO s’est terminé le 26 juin dernier.
Certaines sessions touchent à l’agilité, le lean et à ses pratiques:
Nous organisons des formations d’approfondissement sur les méthodes agiles à partir de septembre qui peuvent vous intéresser:

Les Patterns des Grands du Web – Test A/B

Description

Le test A/B est une méthode de développement produit qui permet d’expérimenter la performance d’une fonctionnalité.  On peut par exemple tester un mail, une page d’accueil, une bannière publicitaire ou un parcours de paiement.

Cette stratégie de test permet de valider les différentes versions d’un objet en agissant sur une unique variable : le libellé d’un objet de mail ou le contenu d’une page par exemple.

Lire la suite

Kinect, I mock you so much

Derrière cette formulation humoristique se cache un des fondements de l’industrialisation des développements : le fait de pouvoir tester de manière automatisée tout ou partie d’un système informatique.

Aussi bien dans les architectures complexes que dans les applications les plus simples, il est pertinent de pouvoir tester un composant logiciel unitairement (indépendamment des autres composants duquel il dépend) : les dépendances sont donc « mockées » ou simulées en français.

Il est aussi nécessaire de pouvoir créer un contexte favorable au scénario de test en injectant un jeu de données particulier via un automate de tests ou un injecteur.

Le développement d’applications Kinect n’échappe pas à cette nécessité. Voici comment simuler une Kinect avec la librairie MocKinect.
Lire la suite

TDI ou Test Driven Infrastructure

Objectif

Une des valeurs portées par le mouvement DevOps réside dans l’ouverture et l’échange des outils, bonnes pratiques, us et coutumes entre Devs et Ops. Essayons donc dans ce billet de tirer profit des bonnes habitudes du TDD et voir dans quelle mesure il y aurait matière à les piquer / adapter dans le monde du run et des infrastructures. Une idée serait de considérer l’infrastructure comme un système testable et donc mettre en place une stratégie systématique de TDI pour Test-Driven Infrastructure. Un changement, un test.

Lire la suite

Tests par propriétés

Vous êtes déjà un expert TDD, votre application a une couverture de tests de plus 80%. Mais vous avez le sentiment que tout n’est pas testé, qu’il reste d’obscurs cas que vous n’arrivez pas exprimer.

Pourquoi ne pas demander à un programme de vous aider à tester ?

Vous pouvez déjà passer par le mutation testing. Cette méthode donne une première approche, mais il en existe une autre : les tests par propriétés.

Cette méthode se résume à exprimer des propriétés et de laisser un programme la vérification de celles-ci.

C’est une façon de tester qui provient des langages fonctionnels et donc qui peut paraître étrange si on vient du monde objet « classique ».

Donc regardons plus en détail son fonctionnement et à quoi elle pourrait servir.
Lire la suite

J’ai l’impression d’écrire mes tests en double !

En présentant les tests fonctionnels automatisés chez un client la semaine dernière, plusieurs questions ont été soulevées. La principale était celle-ci:

- Pourquoi écrire ces tests FitNesse/GreenPepper alors que j’ai déjà des tests unitaires JUnit qui couvrent la même fonctionnalité ?

JUnit vs FitNesse

La question est justifiée. Voici quelques éléments de réponse, tirés de nos échanges sur les mailing-lists OCTO…

Lire la suite

Du TDD pour Silverlight aussi !

A moins de s’être limité à dessiner des ronds et des carrés avec Silverlight, vous avez sans doute déjà tenté d’utiliser un des templates de projets du Silverlight Toolkit permettant de faire des tests unitaires pour vos applications RIA! Plein de bonne volonté, vous vous êtes heurtés aux multiples inconvénients de cette solution :

  • Framework de tests spécifique à Silverlight
  • Obligation de lancer une application « conteneur » pour lancer vos tests
  • Usabilité plus que discutable de cette même application
  • Impossibilité d’utiliser une métrique comme la couverture de code
  • et j’en passe…

N’abandonnez pas encore ! Je vous proposer ici une solution pour venir à bout de ces limitations… plus d’ excuses, vous pourrez tout tester …

la suite par ici en anglais

 

A la recherche de nouveaux vaccins

Il y a peu, je participais à une réunion de travail impliquant une trentaine de personnes et j’ai fait une observation qui m’a intrigué. Avez-vous remarqué ce qui se produit lorsqu’un téléphone portable sonne au cours d’une réunion ?

  • La personne propriétaire du portable l’éteint rapidement
  • Tous ceux qui ne l’avaient pas encore fait vérifient leur portable et activent discrètement le mode silence.

Voilà un exemple de mesure préventive particulièrement efficace! Dans les entreprises où l’on respecte un certain standard de réunion, l’exception que constitue la sonnerie d’un portable ne se produit qu’une seule fois, pas deux. La première “infraction” protège le groupe de toute nouvelle occurrence. Elle agit en quelque sorte comme un “vaccin” sur le fonctionnement du groupe en réunion.

Quelles conditions faut-il réunir afin de créer d’autre vaccins de ce type au sein d’une équipe ? Lire la suite