Что такое дефект, баг и ошибка
Что проверяют
Знаете ли вы общепринятую терминологию и видите ли причинно-следственную цепочку, а не три синонима. Следом обычно спрашивают, что такое сбой (failure) и всегда ли дефект к нему приводит.
Как отвечать
Опирайтесь на глоссарий ISTQB, его знают почти все интервьюеры:
- ошибка (error, mistake): действие человека, которое дало неверный результат. Аналитик неправильно понял требование, разработчик перепутал
<и<=; - дефект (defect, fault): изъян в рабочем продукте, который появился из-за ошибки. Живёт не только в коде, но и в требованиях, дизайне, тест-кейсах, документации;
- баг (bug): в ISTQB это синоним дефекта, разговорное название того же самого. В Jira под типом
Bugзаводят именно дефекты; - сбой, отказ (failure): наблюдаемое отклонение фактического поведения от ожидаемого во время выполнения. Это то, что видит тестировщик или пользователь.
Цепочка выглядит так: ошибка человека порождает дефект, дефект при выполнении может вызвать сбой. Ключевое слово «может»: дефект в ветке кода, куда никто не заходит, годами не проявляется. И обратно, сбой не всегда означает дефект: его дают окружение, неверные тестовые данные или ошибка в самом автотесте.
Хорошо добавить практический вывод. Дефекты в требованиях находятся статическим тестированием, ревью и разбором историй на груминге, ещё до кода, и исправлять их там дешевле всего. А в баг-репорте вы описываете сбой (шаги, ожидаемый и фактический результат), тогда как поиск самого дефекта в коде это уже работа разработчика.
Где спотыкаются
Придумывают собственные различия: «баг возникает из-за неправильных действий пользователя», «дефект только про несоответствие спецификации». Интервьюер со знанием ISTQB сразу это заметит.
Утверждают, что каждый дефект обязательно приводит к сбою, а каждый упавший тест означает дефект в продукте. Ложные срабатывания автотестов и проблемы стенда никто не отменял.
Считают, что дефекты бывают только в коде, и не упоминают требования и документацию. Это выдаёт тестировщика, который подключается только на этапе готовой сборки.