Баги - это дефекты программного обеспечения, ошибки и недочеты - это слишком неконкретно, общо.
Иногда буржуи с присущим им фарисейством избегают терминов "дефект" или "баг", используют "SCR (software change request)" - "требование на внесение изменений в ПО". Собственно, баг - термин с двойным дном, это и собственно ошибка в ПО, которую нужно исправить (пофиксить), и соответствующие ему записи в баг-трекере (системе учета дефектов ПО), которые надо сначала "засабмитить" (ввести в оную систему), потом отслеживать, а в итоге закрыть.
Баги могут находиться на любой стадии жизненного цикла программы. Баги, найденные после выпуска (release) в рабочую эксплуатацию (production), называются [validation] escapes, это предмет серьезного разбора полетов.
Компиляция имеет к нахождению багов очень опосредованное отношение - при компиляции обнаруживаются только простейшие синтаксические ошибки, в этом случае продукт не собирается (build failed).