Знали ли вы, что термина "баг" официально не существует? Этим словом ошибочно называют все проблемы, возникающие в коде – но будущим QA инженерам этой информации должно быть недостаточно. Вооружаемся словарем ISTQB, помощью экспертов EPAM и рассказываем о четырех базовых терминах, которые должен знать каждый тестировщик.
Начнем с простого!
Что такое "баг"?
Баг (официально – "defect", синонимы "bug", "fault") – это, обобщенно говоря, любой недостаток в продукте, из-за которого этот самый продукт не соответствует требованиям. То есть, если вместо числа от 1 до 9 функция почему-то выдает полный текст Конституции, где-то произошел баг и продукт надо фиксить.
Требования закладываются еще до начала работы над проектом; на них основывается ожидаемый функционал продукта, который уже позже будет проверять тестировщик. Как только в системе появляется отклонение – QA специалист "заводит" баг, который должен исправить разработчик.
История термина "баг" очень интересная: 9 сентября 1945 ученые Гарвардского университета обнаружили в вычислительной машине настоящую бабочку, застрявшую в электромеханическом реле. Это насекомое они добавили в технический журнал с подписью: «Первый задокументированный случай нахождения бага».
Что такое "ошибка"?
Ошибка (официально - "error", синоним "mistake"): это, согласно ISTQB, любое действие человека, которое вызвало неверный результат. Это может быть как неправильно введенный пароль, который вызвал error 403, так и ошибка в коде, которую допустил разработчик, и из-за которой "случайно" упали серверы.
Баг может быть вызван ошибкой, но ошибка ≠ баг, ведь, как в случае неверного пароля, это – ожидаемое поведение системы. Говоря проще, ошибка может быть результатом дефекта, а может быть одним из "правильных" ответов на неправильные действия пользователей.
Что такое "отказ"?
Отказ (официально – "failure", также встречается вариант "interruption"). Полное определение с ISTQB – "событие, при котором система не выполняет ожидаемую функцию". Но зачем использовать отдельный термин, который означает почти то же, что и баг?
Но эти понятия разные! Если объяснять ну ооочень упрощенно, баг находят на этапе тестирования системы, а отказ – когда продукт уже выпущен в публичное пользование. Чтобы лучше понять разницу между багом (дефектом), ошибкой и отказом, визуализируйте следующую аналогию.
Представьте обычного швейного мастера, который создает пальто. В одном из изделий мастер случайного не пристрочил карман – таким образом, мастером была допущена ошибка (error). Пальто спокойно висело на вешалке – на первый взгляд, совершенно обычное, но теперь мы знаем, что в нем "завелся" баг (defect). Дефект является незаметной на первый взгляд ошибкой, которая может не влиять на работу системы в обычном состоянии; однако, при чрезмерной нагрузке (как один из возможных вариантов) дефект дает о себе знать и становится причиной отказа. Итак, пальто с дефектом (или багом) приобрел человек и попытался положить в карман телефон, который сразу же оттуда выпал. Пальто (или его карман) не выполнило ожидаемую функцию – телефон должен был остаться в кармане в безопасности.
Представьте себе масштабы ситуации, если целая фабрика станет производить пальто с дефектами! Именно поэтому профессия тестировщика является настолько ответственной: задачей такого специалиста является найти, а затем воспроизвести, или даже разобраться в причинах ошибки.
Что такое "аномалия"?
Аномалия (официально "anomaly", или "deviation») – это собирательный термин, под которым может иметься ввиду и баг, и отказ, и ошибка. Аномалия является широким термином, который можно использовать в любой ситуации, где что-то идет не по плану (например: "Я сегодня аномально устал, поэтому все таски выполню завтра" или "В коде произошла аномалия, и вместо калькулятора у меня случайно написался искусственный интеллект").
Поздравляем, теперь вы немного ближе знакомы с профессией тестировщика! И если вы точно знаете, что поиск дефектов и совершенствование систем является вашим призванием – присоединяйтесь к наборам по направлению Software Testing в EPAM. Возможно, именно вас не хватает в нашей команде!
А чтобы узнать больше о типах тестирования и их классификации, предлагаем вам просмотреть статью Типы тестирования.