Ошибка — действие человека (разработчика, тестировщика, аналитика), приводящее к неправильному результату или состоянию. Это может быть опечатка в коде, неправильное понимание требований или некорректное выполнение теста.
Дефект — проявление этой ошибки в продукте. Это несоответствие между тем, как система работает на самом деле, и тем, как она должна работать согласно требованиям. То есть, дефект — обнаруженный баг в программном обеспечении. Дефект может быть найден как на ранних стадиях разработки (например, в коде), так и на более поздних (во время тестирования или использования пользователем).
Таким образом, ошибка — причина, а дефект — следствие.