Développement logiciel et gestion de projet
Après une version de micrologiciel dont on sait qu'elle fonctionne correctement, il y a 1000 commits, et le dernier commit présente un bogue. Le bogue a été introduit par un commit et se produit dans tous les commits suivants. Quand on identifie le commit fautif par recherche dichotomique, comme avec git bisect, combien de fois au maximum faut-il compiler et tester le micrologiciel ?
- A3
- B10
- C500
Afficher la réponse et l'explication
Réponse : B. 10
Le coupable est l'un des 1000 commits, et chaque test du commit du milieu divise par deux le nombre de candidats. Comme 2¹⁰ = 1024 ≥ 1000, 10 tests au plus suffisent à l'identifier. Tester les commits un à un à partir du plus ancien demanderait 999 tests dans le pire cas et environ 500 en moyenne : la recherche dichotomique fait donc une grande différence. Pour utiliser cette méthode, il importe de ne pas placer de commits cassés sur les branches partagées, afin que chaque commit puisse être compilé et testé.
Continuer : 9 autres questions sur Développement logiciel et gestion de projet