Catégories
Revue académique

The Economics of Software Development by Pair Programmers

💰 Un des arguments les plus employés contre le pair-programming est son coût. L’idée est simple : mettre deux développeurs sur un même PC double le coût, sans doubler la vitesse d’exécution. L’entreprise perd de l’argent ! ❌ Rien de plus faux, déjà en 1975, Brooks dénonçait ce fameux mythe du mois/homme. 📊 30 ans […]

Catégories
Revue académique

Ariane 5: Who Dunnit ?

🚀 4 juin 1996. Ariane 5 décolle de la base de Kourou. 37 secondes plus tard, le lanceur explose avec à son bord des expériences scientifiques. Aucun humain n’était à bord, fort heureusement. A qui la faute ? A la gestion du logiciel dans le programme. 🐛 Une exception non rattrapée a provoqué une conversion […]

Catégories
Revue académique

Higher Order Mutation Testing

👾 Les tests de mutation sont incapables de détecter plus que des bugs triviaux. Pour aller plus loin, il faudrait combiner plusieurs mutations par test. Cette technique se nomme HOMT, Higher Order Mutation Testing en Anglais. Le loup ? Le nombre de tests à générer est exponentiel. Comment surmonter cela ? 🧬Deux chercheurs britanniques expliquent […]

Catégories
Revue académique

An empirical study of the impact of modern code review practices on software quality

👓 Nous savons qu’une mauvaise code review baisse la qualité du code. Mais qu’est-ce qu’une bonne review ? Est-ce seulement atteignable ? Les revues formelles des années 70 ont été abandonnées au profit des analyseurs statiques et autres compilateurs avancés. Seules ont survécu les revues modernes, « légères », ritualisées, mais à l’efficacité discutée. 3️⃣ Pour une […]

Catégories
Revue académique

Who needs software engineering ?

👉 Qu’est-ce que le logiciel ? C’est la question que Steve McConnell a posée à plusieurs experts collaborant à l’IEEE Software en 2001. Parmi les réponses, celle de Robert Cochran a particulièrement retenu mon attention. Elle synthétise les propriétés de ce matériau que nous façonnons. 1. Le logiciel est intangible. 2. Il possède un haut […]

Catégories
Revue académique

The Effects of Layering and Encapsulation on Software Development Cost and Quality

💊 Contrairement à l’héritage, l’encapsulation obtient de bons résultats en matière de qualité logicielle. Deux groupes d’étudiants ont été formés. Le premier avait le code source complet d’une dépendance, le second n’en connaissait que l’interface publique. ⏲️ Le groupe n’ayant que l’interface à disposition a mis moins de temps à développer une même fonctionnalité que […]

Catégories
Revue académique

Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems

↕️ Arrêtez l’héritage ! Il n’est pas nécessaire à l’orienté-objet et serait potentiellement néfaste. Un code avec héritage est plus difficile à modifier que le même code sans héritage. 📝 3 chercheurs on demandé à 4 groupes de 12 étudiants de lire différents codes, utilisant plus ou moins de niveaux d’héritage pour la même fonctionnalité. […]

Catégories
Revue académique Travaux

Cessons l’appel à Dunning-Kruger

👱‍♂️FAKE NEWS ! Depuis des années, j’utilise l’effet Dunning-Kruger pour appuyer mes raisonnements et analyser pas mal de phénomènes. Mon dernier article évoque la montagne de la stupidité. Sauf que tout cela est erroné. 🍀 Dunning-Kruger est un Leprechaun. Il n’est pas ce que la culture populaire en a compris. Chez Dunning&Kruger, pas de montagne […]

Catégories
Revue académique

On the Danger of Coverage Directed Test Case Generation

✈️ Générer des tests automatiquement à partir d’une mesure de coverage est toujours une mauvaise idée. Pourtant c’est un standard dans l’aéronautique et le spatial, y compris sur le programme F-35. 🎲 La génération aléatoire avec régression ou la génération dirigée par coverage ne font pas mieux que le pur hasard en matière d’efficacité des […]

Catégories
Revue académique

Code coverage for suite evaluation by developers

👾 Les tests de mutation sont utiles, mais coûteux à exécuter. Mieux vaut les réserver à l’environnement d’intégration continue. 3 chercheurs américains nous montrent que le statement coverage constitue une bonne approximation aux tests de mutation, suffisante en tout cas pour indiquer aux développeurs les parties sous-testées du code. 🎯 En effet, rappelez-vous : le […]