Регрессия в программировании -- что это такое (регрессионное тестирование)

Регрессионное тестирование ("регрессия") -- поиск ошибок. которые могут возникать в уже (частично) протестированном коде/функционале.

Пример регрессии

Типичная ситуация (по шагам):

  1. Две части вашей программы активно используют какой-то класс
  2. Вы получаете задачи изменить поведение 1-ой части, а это вызывает правки в используемом классе.
  3. Все хорошо, правки применены и первая часть продолжает работать (вы это проверяете), но теперь уже по-новому (как и нужно было по задаче)
  4. НО: вы не проверили, как изменения сделанные в классе сказались на 2-ой части программы (ведь таких частей в реальном приложении может быть десятки), котороя его тоже использовала: БАЦ, через какое-то время выясняется, что вторая часть перестала работать. Это и есть регрессия вашего приложения в одной из частей (вместо "прогресса") -- т.е. новый функционал, просто "уложил" старый, все ещё нужный функционал.

Обычно справится (а точнее -- быстро выявить) с такими проблемами позволяет прогон ВСЕХ ранее написанных автоматических тестов для всего функционала системы. Периодический их запуск и называют регрессионным тестированием.