автор Малаховская Екатерина
Готовимся к собеседованию - техники тестирования
Когда вы готовитесь к собеседованию на позицию тестировщика, важно понимать основные техники тестирования. Знание и умение объяснить эти техники демонстрирует вашу квалификацию и способность работать с различными сценариями тестирования. В этой статье мы разберем ключевые техники тестирования, их определения и примеры, которые помогут вам успешно ответить на вопросы на собеседовании.
1. Анализ граничных значений (Boundary Value Analysis, BVA)

1. Что такое метод анализа граничных значений (Boundary Value Analysis, BVA)?
Это метод черного ящика, который концентрируется на тестировании граничных значений диапазона входных данных. Ошибки чаще возникают на границах, чем в середине диапазона, поэтому этот метод особенно эффективен для выявления дефектов, связанных с граничными условиями. BVA дополняет разделение на классы эквивалентности, фокусируясь на крайних случаях, которые часто упускаются.

2. Как работает BVA?
Процесс анализа граничных значений включает:
Определение входных полей и их соответствующих диапазонов или границ.
Определение тест-кейсов для:
  • Минимального значения диапазона.
  • Максимального значения диапазона.
  • Значений чуть ниже минимума.
  • Значений чуть выше максимума.
  • При необходимости — значений внутри диапазона для дополнительной проверки.

3. Приведите пример BVA для числового поля от 18 до 60 лет
Диапазон: [18, 60]
Тестовые случаи:
  • Минимальная граница: 18
  • Чуть ниже минимума: 17
  • Чуть выше минимума: 19
  • Максимальная граница: 60
  • Чуть ниже максимума: 59
  • Чуть выше максимума: 61


4. Почему важно тестировать граничные значения?
Тестирование граничных значений важно, потому что:
На границах диапазонов входных данных системы чаще допускают ошибки из-за недочетов в программной логике.
Пользователи часто вводят минимальные и максимальные значения, чтобы проверить возможности системы. Например, тестируя минимальную сумму для заказа или максимальный размер файла для загрузки.
Вместо проверки всех значений внутри диапазона достаточно протестировать только граничные, чтобы убедиться, что система корректно работает в крайних условиях. Это позволяет сократить количество тест-кейсов без ущерба для качества тестирования.

5. Расскажите, как BVA дополняет разделение на классы эквивалентности.
Если разделение на классы эквивалентности дает только общие представления о валидных и невалидных входных данных, BVA добавляет точность, проверяя крайние точки каждого класса. Это помогает выявить ошибки, которые могут проявляться исключительно на границах.
Здесь вы можете найти подробную статью о классах эквивалентности и граничных значениях.

2. Разделение на классы эквивалентности (Equivalence Partitioning)

1. Что такое эквивалентное разделение и как оно помогает в тестировании?
Это техника тестирования черного ящика, которая делит входные данные на группы или "классы эквивалентности". Все значения внутри одного класса предполагаются идентичными с точки зрения поведения системы. Тестируется одно значение из каждого класса, поскольку оно считается репрезентативным для всей группы.
Вместо проверки каждого возможного значения тестируются только репрезентативные примеры из каждого класса. Это значительно экономит время и усилия.
EP помогает убедиться, что все важные классы входных данных протестированы, включая валидные и невалидные.

2. Каковы основные этапы эквивалентного разделения?
Определить входные данные или параметры.
Разделить входные данные на классы эквивалентности (валидные и невалидные).
Выбрать одно значение из каждого класса для тестирования.

3. Какие недостатки у эквивалентного разделения?
Не покрывает ошибки, связанные с граничными условиями (для этого используется BVA).
Требует корректной идентификации классов эквивалентности; ошибки на этом этапе могут привести к пропуску дефектов.

4. Можете привести пример эквивалентного разделения для текстового поля?
Например, система принимает пароль длиной от 6 до 12 символов.
  • Валидный класс: От 6 до 12 символов (например, тестируем 8 символов).
  • Невалидный класс 1: Меньше 6 символов (например, тестируем 4 символа).
  • Невалидный класс 2: Больше 12 символов (например, тестируем 15 символов).

5. Почему важно использовать эквивалентное разделение вместе с другими техниками?
EP хорошо подходит для широкого охвата данных, но не выявляет проблемы, связанные с граничными значениями или специфическими сценариями. Для комплексного тестирования нужно использовать EP в сочетании с Boundary Value Analysis (BVA) или другими методами.

6. Какие типы данных лучше всего тестировать с помощью эквивалентного разделения?
Диапазоны числовых значений (например, возраст, температура).
Ограничения длины (например, текстовые поля).
Категории данных (например, методы оплаты: "Кредитная карта", "PayPal", "Наличные").

7. Как вы проверите, что эквивалентные классы определены правильно?
Проверьте, что классы полностью охватывают все возможные входные значения (валидные и невалидные).
Убедитесь, что каждая группа включает только данные с одинаковым поведением.
Используйте реальные примеры из требований или спецификации для проверки.

3. Таблица решений (Decision Table Testing)

1. Что такое Decision Table Testing?
Это метод тестирования черного ящика, который используется для проверки системы на основе комбинаций входных условий и соответствующих действий. Решение представляется в виде таблицы, где:
  • Строки представляют входные условия.
  • Колонки описывают возможные комбинации условий.
  • Каждая ячейка показывает результат или действие для данной комбинации.

2. Почему Decision Table Testing важно?
  • Помогает выявить дефекты, связанные с комбинацией входных данных.
  • Обеспечивает систематическое покрытие сложных логических условий.
  • Упрощает тестирование сценариев с несколькими входными параметрами.
  • Легко визуализировать и понимать взаимосвязь между условиями и действиями

3. Каковы основные шаги создания таблицы решений?
  • Определить все входные условия.
  • Выявить возможные значения для каждого условия (например, "Да/Нет" или диапазоны).
  • Построить таблицу с уникальными комбинациями входных условий.
  • Указать ожидаемые действия или результаты для каждой комбинации.
  • Использовать таблицу для разработки тест-кейсов.

4. Можете привести пример использования Decision Table Testing?
Сценарий: Интернет-магазин предлагает скидку:
  • Скидка применяется, если пользователь зарегистрирован и сумма заказа превышает $100.

5. Чем Decision Table Testing отличается от других методов?
В отличие от Boundary Value Analysis и Equivalence Partitioning, Decision Table Testing фокусируется на комбинациях условий.
Этот метод особенно полезен, когда система имеет множество взаимосвязанных входных данных.

6. Какие преимущества у Decision Table Testing?
  • Decision Table Testing гарантирует, что каждая возможная комбинация условий протестирована.
  • Таблицы легко интерпретировать даже для людей, не связанных с тестированием.
  • Упрощает создание тест-кейсов для сложных систем.

7. Какие ограничения у Decision Table Testing?
Сложность создания таблиц увеличивается с ростом количества входных условий.
Не всегда эффективен для систем с незначительным количеством комбинаций.

8. В каких ситуациях Decision Table Testing наиболее полезен?
Когда система имеет сложную логику принятия решений (например, финансовые системы, системы скидок).
При наличии множества входных условий, которые могут комбинироваться.
Для проверки правил или бизнес-логики.

4. Тестирование на основе сценариев использования (Use Case Testing)

1. Что такое тестирование на основе сценариев использования (Use Case Testing)?
Это метод тестирования, основанный на сценариях использования, которые описывают взаимодействие пользователя с системой для выполнения определенной задачи. Каждый сценарий использования представляет собой последовательность шагов, включая варианты поведения и возможные исключения, что позволяет тестировать функциональность системы в реальных условиях.

2. Почему важно использовать тестирование на основе сценариев использования?
  • Ориентировано на реальные сценарии использования, что помогает выявить дефекты, связанные с пользовательскими действиями.
  • Обеспечивает системное покрытие требований, так как сценарии использования обычно создаются на основе спецификаций.
  • Выявляет дефекты в интеграции модулей и взаимодействии с системой.

3. Каковы основные компоненты сценария использования?
Акторы: пользователи или системы, которые взаимодействуют с тестируемой системой.
Предусловия: условия, которые должны быть выполнены до начала сценария.
Основной поток: последовательность шагов для достижения цели сценария.
Альтернативные потоки: отклонения от основного пути (например, ошибки или нестандартные действия).
Постусловия: результат выполнения сценария.

4. Как тест-кейсы создаются на основе сценариев использования?
Проанализировать сценарий использования и определить основные и альтернативные потоки.
Написать тест-кейсы для каждого потока, включая:
  • Основной успешный путь.
  • Исключения и ошибки.
  • Граничные и невалидные данные.
Убедиться, что покрыты все шаги сценария и описаны ожидаемые результаты.

5. Можете привести пример сценария использования и связанного тест-кейса?
Сценарий использования: "Пользователь выполняет вход в систему."
  • Актор: Пользователь.
  • Предусловие: Пользователь зарегистрирован.
  • Основной поток:
  1. Пользователь вводит логин и пароль.
  2. Нажимает кнопку "Войти".
  3. Система проверяет учетные данные и отображает главную страницу.
  • Альтернативные потоки:
  1. Неверный логин или пароль (ошибка).
  2. Поля логина и/или пароля оставлены пустыми.
Тест-кейсы:
  • Ввести корректные логин и пароль → Ожидаемый результат: Главная страница отображается.
  • Ввести неверные данные → Ожидаемый результат: Сообщение об ошибке.
  • Оставить поля пустыми → Ожидаемый результат: Предупреждение о необходимости ввода данных.

5. Исследовательское тестирование (Exploratory Testing)

1. Что такое исследовательское тестирование?
Это подход к тестированию, при котором тестировщик активно исследует приложение, создавая тест-кейсы и выполняя их одновременно. Это более гибкий метод, который фокусируется на выявлении дефектов через изучение системы без использования заранее подготовленных сценариев.

2. Чем исследовательское тестирование отличается от сценарного (Scripted Testing)?
Исследовательское тестирование:
  • Не использует заранее подготовленные тест-кейсы.
  • Тестировщик изучает систему в реальном времени и импровизирует на основе поведения приложения.
  • Более гибкое и позволяет выявлять неожиданные дефекты.
Сценарное тестирование:
  • Основывается на заранее написанных тест-кейсах.
  • Следует четкому плану.
  • Эффективно для повторяющихся проверок.

3. В каких ситуациях лучше использовать исследовательское тестирование?
  • Когда требования к системе неполны или недостаточно ясны.
  • Для проверки новых функциональностей.
  • В условиях ограниченного времени, когда нет возможности писать сценарии.
  • Для проверки сложных сценариев использования, которые трудно формализовать.

4. Как документировать исследовательское тестирование?
Использовать чек-листы для обозначения ключевых областей тестирования.
Записывать шаги, выполненные во время тестирования, чтобы их можно было воспроизвести.
Использовать инструменты для записи экрана или логов для фиксации найденных дефектов.
Обобщить результаты в отчете после завершения тестирования.

5. Какие преимущества исследовательского тестирования?
  • Быстрое обнаружение неожиданных дефектов.
  • Гибкость в подходе и адаптация к поведению системы.
  • Экономия времени на подготовку тест-кейсов.
  • Выявление проблем, связанных с пользовательским опытом (UX).

6. Какие ограничения у исследовательского тестирования?
  • Сложно повторить найденные дефекты, если шаги не задокументированы.
  • Не всегда охватывает все области системы из-за отсутствия формального плана.
  • Зависит от опыта и знаний тестировщика.

7. Как вы оцениваете покрытие при исследовательском тестировании?
  • Использовать чек-листы или карты разума (mind maps) для обозначения протестированных областей.
  • Разделить приложение на функциональные модули и убедиться, что каждая часть была исследована.
  • Вести лог активности, фиксируя области, где проводилось тестирование.

6. Предугадывание ошибок (Error Guessing)

1. Что такое метод предугадывания ошибок?
Это техника тестирования, основанная на предположениях и опыте тестировщика. Цель состоит в том, чтобы выявить дефекты, предугадывая вероятные ошибки в системе на основе знаний о прошлых дефектах, слабых местах системы и типичных ошибок.

2. На чем основывается техника предугадывания ошибок?
  • Личный опыт тестировщика.
  • Знание типичных ошибок в аналогичных системах.
  • Анализ ошибок, найденных в предыдущих версиях продукта.
  • Интуиция и креативный подход к поиску слабых мест.

3. Какие примеры ошибок можно предугадать?
Ошибки ввода данных: неверный формат, пустые поля, превышение допустимого размера.
Граничные значения: ошибки на минимальных и максимальных значениях.
Ошибки конфигурации: некорректные настройки или отсутствующие файлы.
Ошибки логики: неправильная работа с условиями или циклами.
Ошибки интеграции: неверное взаимодействие между модулями.

4. Чем метод предугадывания ошибок отличается от других техник тестирования?
В отличие от формальных техник, таких как эквивалентное разделение или граничный анализ, Error Guessing не имеет строгих правил или структур.
Он больше ориентирован на опыт и интуицию тестировщика, а не на систематический подход.

5. В каких случаях метод предугадывания ошибок наиболее эффективен?
  • Для проверки сложных или нестандартных функций.
  • Когда формальные техники тестирования не охватывают все сценарии.
  • Для быстрого тестирования в условиях ограниченного времени.
  • В дополнение к другим методам для усиления покрытия.

6. Как документировать тестирование, выполненное с использованием метода Error Guessing?
  • Фиксировать предполагаемые области или сценарии с потенциальными ошибками.
  • Записывать шаги, предпринятые для проверки этих сценариев.
  • Указывать найденные дефекты, их природу и условия воспроизведения.

7. Какие ограничения есть у Error Guessing?
  • Зависимость от опыта и знаний тестировщика.
  • Неполное покрытие системы, если тестировщик пропустит менее очевидные сценарии.
  • Отсутствие систематического подхода может привести к пропуску важных областей.

7. Парное тестирование (Pairwise Testing)

1. Что такое парное тестирование?
Парное тестирование — это метод тестирования, при котором тест-кейсы разрабатываются таким образом, чтобы каждая возможная пара входных значений тестировалась хотя бы один раз. Этот подход помогает оптимизировать количество тестов и эффективно покрывать комбинации параметров.

2. Почему важно использовать парное тестирование?
  • Снижает объем тестов, сохраняя хорошее покрытие.
  • Эффективен для тестирования систем с большим числом параметров.
  • Помогает выявить дефекты, вызванные взаимодействием двух параметров.
  • Экономит ресурсы, время и усилия.

3. Приведите пример использования парного тестирования.
Пример: Тестирование системы регистрации.
Параметры: Браузер: Chrome, Firefox, Edge.
Язык: Английский, Русский, Немецкий.
Устройство: ПК, Мобильный.
С помощью парного тестирования вместо 18 тест-кейсов (3 × 3 × 2) можно создать лишь 6, которые покрывают все возможные пары.
  1. Chrome-Английский-ПК
  2. Chrome-Русский-Мобильный
  3. Firefox-Немецкий-ПК
  4. Firefox-Английский-Мобильный
  5. Edge-Русский-ПК
  6. Edge-Немецкий-Мобильный

4. Какие недостатки есть у парного тестирования?
Не покрывает взаимодействие более чем двух параметров (только пары).
Не гарантирует нахождение всех дефектов, если они вызваны сложными многомерными взаимодействиями.
Требует дополнительного анализа для включения критичных сценариев.

5. Какие системы и приложения особенно подходят для парного тестирования?
  • Системы с большим количеством конфигураций (например, поддержка нескольких устройств, браузеров и операционных систем).
  • Приложения с параметризированными входными данными.
  • API, где тестируются различные комбинации параметров запросов.

6. Какие типичные ошибки допускаются при парном тестировании?
  • Неполный список параметров или их значений.
  • Игнорирование критических сценариев, не попадающих в пары.
  • Ошибки при интерпретации сгенерированных комбинаций.

8. Тестирование переходов состояний (State Transition Testing)

1. Что такое тестирование переходов состояний?
Это техника тестирования, применяемая для систем, поведение которых меняется в зависимости от текущего состояния и входных данных. Тестировщики моделируют состояния системы, действия и переходы между состояниями для проверки корректности работы.

2. Какие элементы входят в модель переходов состояний?
Состояния (States): различные состояния, в которых может находиться система.
События (Events): действия или входные данные, которые приводят к переходу из одного состояния в другое.
Переходы (Transitions): связь между текущим состоянием и следующим в результате события.
Действия (Actions): результаты, которые выполняются системой при переходе.

3. Приведите пример системы, для которой подходит тестирование переходов состояний.
Автомат по продаже билетов:
  • Состояния: Ожидание оплаты, получение денег, выдача билета.
  • События: Внесение монеты, выбор билета, отмена операции.
  • Переходы: От "ожидания оплаты" к "выбору билета" после внесения денег.

4. Что такое таблица переходов состояний, и как она используется?
Таблица переходов состояний — это табличное представление всех возможных состояний, событий и переходов между ними. Она используется для:
  • Идентификации всех допустимых переходов.
  • Выявления недопустимых или отсутствующих переходов.


Заключение

Подготовка к собеседованию на позицию QA требует глубокого понимания основных техник тестирования. Каждая из них играет важную роль в создании качественного продукта и выявлении дефектов.
  • Эквивалентное разделение и анализ граничных значений помогут вам продемонстрировать навыки оптимизации тестов.
  • Парное тестирование покажет вашу способность эффективно работать с параметрами.
  • Тестирование переходов состояний и тестирование на основе сценариев использования продемонстрируют ваше понимание системного поведения.
  • Предугадывание ошибок и исследовательское тестирование подчеркивают ваш опыт и интуицию как тестировщика.
Разбираясь в этих техниках, вы не только покажете свою профессиональную компетенцию, но и убедите работодателя, что обладаете навыками для обеспечения высокого качества продукта. На собеседовании не забудьте приводить примеры.
Успехов на вашем пути к успешной карьере в QA!
Хотите лучше разбираться в тестировании и узнать много примеров из практики от опытных преподавателей - приходите на наш курс В тестировщики с нуля
Учимся отличать тест-план, тест-кейсы и чек-листы на примерах.
Полезные ресурсы и советы для поиска работы
Выпускник школы QaLearning рассказывает про свой путь обучения, поиска работы и прохождения собеседований. Вы получите много дельных советов!