Une démarche qualité

La qualité logicielle est une question de méthodes et d'outils. Voici un aperçu de nos pratiques.

Tests unitaires automatisés

Buildbot« if it ain't tested it's broken »

Pendant la phase de développement d'un logiciel, une modification mineure (et a priori maîtrisée) d'un programme peut entraîner un dysfonctionnement à un endroit complètement inattendu. À partir d'un certain seuil de complexité, le risque devient ingérable et peut s'avérer catastrophique. La seule solution est de développer des tests automatisés, et de disposer d'un système d'intégration continue, qui permet d'être averti en temps réel des impacts d'un changement.

Nous utilisons de manière systématique le logiciel Buildbot pour les projets clients et les projets internes.

Nous maintenons également un buildbot public pour certains projets communautaires, et pour tester différentes combinaisons d'Odoo et Postgresql : Buildbot OpenERP

Tests fonctionnels automatisés

Selenium

Les tests unitaires n'étant pas toujours suffisants, nous automatisons également les tests fonctionnels, et pour les projets web nous utilisons à cet effet le logiciel Selenium.

Déploiement industriel

Shinken

Nos installations en production sont réalisées de façon à obtenir la meilleure répétabilité, fiabilité et rapidité, grâce à des outils comme Buildout ou Fabric ou grâce à des paquets systèmes.

Anybox a ainsi développé un plugin pour Buildout dédiée à OpenERP : anybox.recipe.openerp

Pour la surveillance de vos applications en production, nous utilisons Shinken.

Tests de charge

FunkloadDurant la vie d'une application, des tests de charge sont souvent nécessaire, notamment lorsque le volume de données ou le nombre d'utilisateurs augmente de manière conséquente. Il est alors possible de localiser des points d'amélioration et mesurer précisément les gains de performance obtenus. Pour des tests de charge sur des applications web ou HTTP nous utilisons Funkload.



Traçabilité et revue de code

Nous utilisons systématiquement des outils de gestion de version comme Subversion, Bazaar, Mercurial et Git. Ceci nous permet d'obtenir une traçabilité extrêmement fine du travail effectué et de pouvoir revenir à n'importe quelle version antérieure d'un développement.

La qualité passe aussi par de la revue de code, rendue possible de manière interactive grâce à Kallithea, que nous utilisons pour héberger tous nos projets.