Articles précédents : Articles
- [112] Publication de la licence « GNU Affero General Public Licence Version 3 »
- [18] Un économiste critique des brevets logiciels obtient le Prix Nobel d'Économie 2007
- [15] Le RGI est toujours en danger
- [22] PlayOnLinux, et les jeux reviennent sur la banquise
- [33] La BnF s'oriente vers le logiciel libre
- [5] Le cadre belge d'interopérabilité : un bilan après 2 ans de travail collaboratif
- [226] Les auteurs d'iptable et de Busybox appellent Iliad/Free à respecter la GPL
- [34] Le Top500 nouveau est arrivé
- [1] Repas OCS-Inventory à Paris
- [41] Quel avenir pour le vote électronique en France ?
Liens connexes
- Le projet Cooperative Bug Isolation (255 hits)
- L'instrumentation des logiciels (196 hits)
- La confidentialité des données (149 hits)
- Une courbe statistique des résultats (222 hits)
- Un article de l'université du Wisconsin sur CBI (145 hits)
- La page personnelle de Ben Liblit (155 hits)
Dépêche modérée par
Dépêche éditée par
Articles : CBI : coopérer pour découvrir les bugs
Posté par patrick_g (page perso, ). Modéré le 21 novembre 2007.La solution adoptée est originale puisque le projet CBI met à disposition en téléchargement des versions modifiées des logiciels faisant l'objet de l'étude. Le code source a été instrumenté afin d'observer en permanence le comportement du logiciel. Un rapport est envoyé automatiquement afin de déterminer comment l'application se comporte, dans quelles conditions un plantage apparaît, etc. Parmi les logiciels disponibles on peut noter la présence d'Evolution, Gimp, Gnome-panel, Gnumeric, Nautilus, Pidgin, Rhythmbox, etc.
Récemment des paquets instrumentés destinés à la toute dernière version de Fedora ont été annoncés et ils sont installables par les différents gestionnaires de paquets (yum, yumex, smart, up2date, apt-rpm).
Le projet Cooperative Bug Isolation (255 hits)
L'instrumentation des logiciels (196 hits)
La confidentialité des données (149 hits)
Une courbe statistique des résultats (222 hits)
Un article de l'université du Wisconsin sur CBI (145 hits)
La page personnelle de Ben Liblit (155 hits)
> Lire la suite (4 commentaires, moyenne: 2). [dépêche : 5932 caractères]
La technique utilisée est l'instrumentation de divers logiciels afin d'observer ce comportement. Cette instrumentation n'est pas active en permanence car cela produirait trop de données et cela ralentirait trop le logiciel. Au lieu de ça on utilise le code classique la majorité du temps et le code instrumenté n'est exécuté qu'une fois sur 10 ou une fois sur 100 (selon un modèle statistique détaillé ici). L'instrumentation en elle-même est assez complexe puisqu'elle tient compte des embranchements dans le code (les if, then, else) ou des valeurs retours des fonctions, des assignations de variables, etc. Une introduction très générale est disponible sur le site du projet mais, pour ceux qui veulent aller plus loin, de nombreux articles scientifiques sont accessibles sur la page personnelle de Ben Liblit.
Les statistiques sont ensuite envoyées automatiquement avec un format normalisé. Tout d'abord on a le rapport d'environnement (Environment Report) qui donne des informations générales sur le logiciel, sur l'instrumentation qui a été utilisée et sur l'état du logiciel (normal ou planté). Après la définition de l'environnement viennent les données proprement dites (Samples Report). L'interprétation de ces données n'est pas possible en regardant simplement ce fichier. Il est remis en forme par l'équipe du projet à l'aide de l'outil resolve-samples (qui est également mis à la disposition de tous sous licence BSD). Enfin un rapport au format spécifique est envoyé en cas de crash d'une application. Il est à noter que, pour les membres du groupe, un comportement normal est tout aussi intéressant qu'un crash : "The good runs tell us what the software is supposed to be doing. The bad ones tell us what went wrong by revealing how they are different from the good runs. This is what we call statistical debugging: finding bugs in programs via automated statistical analysis instead of laborious manual inspection". Pour les personnes intéressés par l'écriture d'un schéma d'instrumentation d'un logiciel, un guide est disponible afin de vous aider a créer vos propres contrôles.
Bien entendu ce projet ne serait pas viable sans une forte attention portée au problème de la confidentialité des données. Le groupe de l'université du Wisconsin en est bien conscient et il a décidé de consacrer une page à cette problématique. Tout d'abord, pour vérifier l'accord de l'utilisateur, une fenêtre de dialogue apparaît au premier lancement afin qu'il puisse cliquer pour confirmer. Si, pour une raison ou une autre, cette fenêtre ne peut s'afficher, alors tout le code d'instrumentation est désactivé. Si l'utilisateur change d'avis une seconde fenêtre est disponible dans les préférences de Gnome afin d'activer ou de désactiver a posteriori. Une icône de notification est même présente en permanence dans le panel de Gnome ou de KDE afin que l'utilisateur soit en permanence conscient de ce qu'il fait.
Ensuite les rapports de données sont envoyés chiffrés (par SSL) sur le serveur du projet CBI. ces données ne sont accessibles qu'aux membres du projet. Enfin ces données ne contiennent jamais d'informations sensibles puisque le projet CBI ne s'intéresse qu'aux statistiques de comportement des logiciels. Par exemple les rapports contiennent les noms des fonctions mais pas la valeur des arguments de ces fonctions. Comme l'explique la page sur la confidentialité : "We might check whether a particular file name variable is NULL, but we never record the file name itself."
Le fait que le chemin du code instrumenté ne soit exécuté que très épisodiquement est également une garantie que le rapport de données statistiques ne pourra pas être utilisé de façon malicieuse.
Actuellement le projet CBI reçoit plus de 3.000 rapports par mois et, en avril 2006, la base de données comptait 546 crashs de programmes et 11.369 erreurs de bas niveau.
En définitive le projet CBI est une addition de qualité à l'arsenal déjà existant permettant de traquer les bugs dans les logiciels libres. Il est très intéressant d'observer les tendances au crash des logiciels en fonction des périodes (ici un exemple avec Nautilus ou une comparaison entre Nautilus et Gnome-panel).
On peut bien entendu regretter que les versions instrumentées ne soient disponibles que pour Fedora et que le nombre de logiciels soit assez réduit (même si des contraintes existent quand à la sélection de ces derniers).
Il ne reste plus qu'à espérer que de nombreux utilisateurs vont télécharger les logiciels du projet CBI afin d'améliorer leur qualité au profit de tous.
Chouette projet
Je me souviens avoir lu le papier et il est très intéressant.
Le top ce serait que ce soit intégré dans une distrib de developpement: Fedora, Cooker, ...
Bon après il faut avoir suffisamment de monde pour analyser les rapports d'erreurs, mais on peut rêver d'avoir alors une nette augmentation de la stabilité..
-
[^]Re: Chouette projet
Posté par patrick_g (page perso, ) le 22/11/2007 à 14:09. (lien). Évalué à 3.Etant donné qu'il n'y à pas de problème de sécurité/confidentialité et qu'en outre l'impact sur les performances semble très réduit pourquoi réserver ces applis instrumentées aux distribs de développement ?
Pour ces dernières on peut faire tourner des paquets -debug qui eux capturent toute la pile au moment d'un crash (mais ces paquets sont lents et posent des problèmes en cas de données sensibles).
Je pense que, si le traitement des rapports est automatisé, on pourrait tous utiliser des paquets instrumentés par CBI dans nos distros.
QA et LL
Effectivement, le Logiciel Libre manque un peu d'outils de QA (Quality assurance, Assurance qualité).
C'est sans doute culturel, et j'y vois deux raisons :
* la fameuse règle du « Given enough eyeballs, all bugs are shallow »[1] (Étant donnés suffisamment d'observateurs, tous les bogues sautent aux yeux)
* la QA, c'est chiant
[1] http://www.linux-france.org/article/these/cathedrale-bazar/
Jabber ID : xmpp:Nyco@jabber.fr
-
[^]Re: QA et LL




Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.