Softwareontwikkeling en projectmanagement
Na een firmwareversie waarvan bekend is dat ze correct werkt, volgen 1000 commits, en de laatste commit bevat een bug. De bug is door één commit geïntroduceerd en treedt op in elke commit daarna. Hoe vaak moet de firmware maximaal worden gebouwd en getest als de schuldige commit met binair zoeken wordt opgespoord, zoals met git bisect?
- A3
- B10
- C500
Antwoord en toelichting tonen
Antwoord: B. 10
De schuldige is een van de 1000 commits, en elke test van de middelste commit halveert het aantal kandidaten. Omdat 2¹⁰ = 1024 ≥ 1000, volstaan hoogstens 10 tests om hem te vinden. Eén commit tegelijk testen vanaf de oudste zou in het slechtste geval 999 tests en gemiddeld ongeveer 500 vragen, dus binair zoeken maakt een groot verschil. Om deze methode te kunnen gebruiken, is het belangrijk geen kapotte commits op gedeelde branches te zetten, zodat elke commit kan worden gebouwd en getest.
Verder: nog 9 vragen over Softwareontwikkeling en projectmanagement