Якщо програма використовує лише структури керування подібні до if і while, тоді можемо говорити про те який шлях виконання обрав кожен if і скільки разів тіло кожного while було виконане, і так вибудувати повну історію виконання програми. Така картина дає нам можливість зрозуміти програму через твердження такі як «Кількість ітерацій в циклі однакова з кількістю записів на вході.» goto ускладнює відстеження виконання програми, бо немає можливості сказати як сильно кожне goto може змінити перебіг програми. Як наслідок, історія виконання програми стає важчою для описання.