Couverture des tests d’intégration avec JaCoCo, Maven et Sonar

Sur certains de mes projets maven j’aimerai pouvoir séparer les tests unitaires des tests d’intégration. Les tests d’intégration sont souvent moins stables, pas toujours reproductibles et ils prennent souvent trop de temps pour être exécutés par les développeurs à chaque compilation.

Continue reading

Posted in Tests, build, qualité, etc | Tagged , , , , , , , | 2 Comments

Présentation de Dart par Gilad Bracha

À l’occasion d’une rencontre des utilisateurs de Javascript dans la région de San Fransisco, Gilad Bracha est venu présenter Dart, le nouveau langage pour web conçu par Google.

Gilad Bracha est ingénieur logiciel chez Google, co-auteur de la spécification du langage Dart. Chez Sun, il a également été co-auteur et mainteneur de la spécification du langage Java ainsi que de la JVM.

Posted in Du code, rien que du code | Tagged , , , | Leave a comment

Les classes internes ou la tambouille du compilateur Java

Il y a quelques mois Olivier Croisier a publié sur son blog The Coder’s Breakfast (que tout développeur Java se doit de suivre) un article intitulé Inner classes and the myth of the default constructor. Dans cet article il est question des classes internes et des constructeurs « cachés » ajoutés lors de la phase de compilation.

Continue reading

Posted in Du code, rien que du code | Tagged , , | Leave a comment

Video : Deep Dive into Android Security

android-securitySi vous chercher à mieux comprendre le fonctionnement du modèle de sécurité Android je vous conseille fortement de regarder cette vidéo. Dans cette excellente session de la conférence AndDevCon II Aleksandar Gargenta présente différents aspects liés à la sécurité sur Android (le sandboxing des applications, le fonctionnement du système de permissions, le chiffrement et la protection des données, etc) mais il parle également des limites du modèle et des contre-mesures contre les menaces (signature des applications, rooting & rootkits, SE-Linux, etc).

Posted in Android, iPhone, mobilité | Tagged , , , | Leave a comment

GTAC 2011 : les vidéos sont en ligne

Intéressés par la qualité et le test logiciel ? Les vidéos des différentes sessions de la conférence GTAC 2011 sont désormais disponibles sur http://www.gtac.biz/talks ou sur la chaîne Youtube Google Tech Talks. Bon visionnage !

Posted in Tests, build, qualité, etc | Tagged , , , | Leave a comment

Améliorer la sécurité du développement avec Git

Quand on développe un produit de sécurité (firewall, VPN, application de chiffrement…) on cherche a donner confiance dans son produit et on est bien souvent amené pour cela à passer des certifications (CSPN, Critères Communs, etc) et à ainsi prouver qu’on applique de «bonnes pratiques» de matière développement : gestion des bugs, tests, utilisation d’un SCM. Un point important est de montrer que le code source du produit est maîtrisé, c’est à dire qu’aucune modification, intentionnelle ou non, ne peut être intégrée au produit sans avoir été validé. Et pour cela Git est un outil qui peut réellement aider.

Subversion, probablement le SCM le plus utilisé aujourd’hui, impose un modèle de développement centralisé. Tous les développeurs poussent leurs modifications vers un unique dépôt central partagé. Ce modèle a plusieurs inconvénients quand on désire tracer les modifications dans la base de code.

D’abord il faut donner aux développeurs des droits d’accès suffisamment fins pour qu’ils puissent commiter dans le dépôt, sans pour autant les autoriser à avoir accès à toute la base de code, tant en écriture qu’en lecture. Ensuite il faut suivre les modifications apportées au code par les équipes de développement. Il est possible de développer les nouvelles fonctionnalités ou corriger les bugs dans des branches, avec tous les problèmes de merge qui peuvent survenir. On peut également forcer l’utilisation du numéros de référence d’un ticket du bugtracker dans les messages de commits. Dans ce cas il faudra bien sûr compter avec les erreurs sur le numéro du ticket ou les oublis mais également avec la relecture de complexes et multiples diff… Et je ne parle pas de l’historique du dépôt.

Avec Git, le problème du workflow disparaît car vous pouvez l’adapter à votre façon de développer. On peut illustrer ça avec l’exemple du modèle de développement du noyau Linux (schéma ci-dessous) : un développeur privilégié (le dictateur) est autorisé à écrire dans le dépôt de référence (blessed repository). Les développeurs clonent ce dépôt, et poussent leurs patchs vers des «développeurs de confiance» (les lieutenants). Les lieutenants valident ces modifications, le dictateur peut alors venir les chercher auprès des lieutenants. Le dictateur décide alors d’intégrer ou non ces modifications dans le dépôt de référence.

Workflow Git pour Linux

En outre, avec Git finis les multiples commits pour implémenter une fonctionnalité : grâce au merge de branches et au rebase, le développeur fournit est en mesure de ne livrer qu’un unique commit. De cette façon l’historique du dépôt est clair et propre mais surtout cela simplifie énormément la revue de code.

Pour finir j’ajoute également que Git permet de signer les tags permettant ainsi de garantir l’origine de toutes les modifications du code importées dans le dépôt de référence.

Pour conclure je terminerai sur le fait que ce que je raconte ici sur Git est également vrai pour d’autres DVCS tels que Mercurial ou Bazaar (à vérifier tout de même pour la signature des tags).

Quelques références :

Posted in Tests, build, qualité, etc | Tagged , , | Leave a comment

Changement du thème

Ne soyez pas étonnés si le site à changé de tête ; suite à une mise à jour hasardeuse (faire une mise à jour sans réfléchir est presque aussi stupide que que ne pas la faire) le thème que j’utilisais n’est plus compatible avec la version actuelle.

Bref, plutôt que garder un thème dégradé j’ai préféré basculer sur le thème par défaut de WordPress… Le temps de régler le problème. Mais finalement, ce thème, je l’aime bien ; il est sobre et lisible même s’il lui manque toutefois quelques fonctionnalités que je trouvais bien pratique comme l’ouverture des images dans un popup javascript.

Finalement, garder le thème actuel, remettre l’ancien, régler les problèmes de la mise à jour ou installer une tout nouveau thème ? La décision n’est pas encore prise, je verrai à l’usage.

Posted in Ici et maintenant | Leave a comment

La cryptographie à clé publique par ses inventeurs

Ron Rivest, Adi Shamir, Leonard Adleman, Whitfield Diffie, Martin Hellman, Ralph Merkle. Dans les années 70 en découvrant la cryptographie à clé publique ils ont révolutionné le monde. Télécommunications, commerce électronique, cartes bancaires, téléphonie mobile, VIGIK®… Nous utilisons tous et tous les jours leurs découvertes, souvent même sans le savoir.

Dans cette courte vidéo diffusée à l’ouverture de la conférence RSA 2011, les acteurs de cette révolution en racontent la genèse.

Posted in À lire ailleurs | Tagged , , , | Leave a comment

SSL/TLS : un problème fréquent

Je viens de lire un post très intéressant sur le blog de Ippon Technologies qui met en lumière l’importance de la notion de chaîne de certificats.

Le standard X.509 est basé sur un modèle de confiance pyramidal :

En haut ce sont les racines de confiance (trust anchors), en bas les certificats des utilisateurs finaux (end entity) et au milieu on trouve les certificats des autorités de certification intermédiaires. Il faut garder à l’esprit que celui qui valide un certificat ne possède en général que la racine de confiance ; mais pour effectuer la validation il faut disposer de la chaîne de certificats au complet, c’est à dire le certificat final avec l’ensemble des certificats des autorités intermédiaires. Moralité : un certificat seul ne sert à rien, il faut toujours considérer la chaîne dans son ensemble.

L’article sur le blog de Ippon : http://blog.ippon.fr/2011/07/23/pourquoi-firefox-ou-java-ne-reconnaissent-pas-ce-certificat-ssl-si-cherement-payee/

Posted in À lire ailleurs | Tagged , , , | Leave a comment

Git pour les imbéciles comme moi

Git, je n’y comprenais rien. Et puis j’ai vu la présentation de Sébastien Douche (twitter, blog) au Paris JUG et les choses alors sont devenues beaucoup plus claires. Cette présentation doit absolument être vue par tous les développeurs qui utilisent un logiciel de gestion de source (donc tous les développeurs). Ce qui me désole le plus c’est qu’avant j’étais heureux dans l’ignorance ; désormais je souffre quand je dois utiliser subversion…

Les concepts

La pratique

Posted in Tests, build, qualité, etc | Tagged , , , | Leave a comment