Обзор топ-30 вопросов для джуниор-тестировщиков.
Вопросы основаны на опыте студентов и коллег.
Видео предназначено для новичков без опыта работы.
Тестирование — процесс проверки соответствия продукта требованиям.
Главная цель — выпуск качественного продукта.
Цели тестирования могут варьироваться в зависимости от контекста.
Неправильный ответ: «Тестирование проще разработки».
Правильный ответ: «Вижу перспективы в тестировании, хочу развиваться в этой области».
Важность демонстрации заинтересованности в работе в компании.
Описание процесса работы с багами в компании.
Статусы бага: опен, ин-прогресс, вейт ревью, вейтфо, тестинг, ре-опен.
Возможные различия в жизненных циклах багов в разных компаниях.
Кейсы: подробное описание теста с шагами и ожидаемым результатом.
Чек-листы: список элементов для проверки без детального описания.
Применение кейсов для глубокого тестирования, чек-листов — для быстрого контроля качества.
Обнаружение новых ошибок после внесения изменений в код.
Пример: добавление новых функций авторизации может сломать регистрацию.
Проверка старого функционала на совместимость с новыми изменениями.
Тест-кейс: документ для проведения теста.
Баг-репорт: документ для фиксации ошибки и коммуникаций с разработчиками.
Оба документа имеют шаги и ожидаемый результат, но в баг-репорте есть фактический результат.
Распространённые техники: ограниченные значения, класс эквивалентности, попарное тестирование, диаграммы состояния переходов, таблицы принятия решений.
Ссылки на видеоуроки по техникам тест-дизайна в описании видео.
Верификация: проверка соответствия продукта ТЗ.
Валидация: проверка соответствия продукта ожиданиям пользователя.
Пример: верификация интернет-банкинга на соответствие техническим стандартам, валидация — на соответствие потребностям пользователей.
Идентификация: установление личности пользователя через логин или email.
REST — стиль архитектуры для веб-систем, основанный на принципах организации.
SOAP — протокол для обмена структурированными информационными сообщениями в веб-службах, основанный на XML.
REST считается более простым и эффективным для приложений, SOAP предпочтительнее в больших и сложных системах интеграции.
Scrum включает определённые роли: техотдел, продуктолог, разработчики, тестировщики, иногда скрам-мастер.
В Scrum есть двухнедельные спринты и ретроспективы.
Kanban не имеет фиксированных ролей, управление потоком работы осуществляется через визуализацию на канбан-доске.
Оба метода ориентированы на Agile-подход, выбор зависит от потребностей компании.
Методы GET, HEAD, OPTIONS считаются безопасными, так как не изменяют состояние сервера.
Методы POST, PUT, DELETE, PATCH считаются менее безопасными, так как могут изменить состояние сервера и хранимые данные.
Безопасность методов зависит от контекста приложения и правильной реализации на стороне сервера.
Идемпотентные методы не изменяют результат запроса при повторном выполнении: GET, HEAD, PUT, DELETE, OPTIONS.
Неидемпотентные методы изменяют состояние сервера при повторном выполнении запроса.
Модель OSI разбита на семь уровней: физический, канальный, сетевой, транспортный, сеансовый, представительный, прикладной.
Каждый уровень отвечает за определённые функции взаимодействия компьютеров в сети.
Запрос состоит из типа запроса, адреса обращения, заголовков.
Структура ответа включает заголовки.
Коды ответа делятся на пять классов: информационные, успешные, перенаправления, ошибки клиентов, ошибки сервера.
Принципы тестирования: невозможность доказать отсутствие ошибок, невозможность исчерпывающего тестирования, важность раннего тестирования, скопление багов, эффект пестицида, зависимость тестирования от контекста, ложная информация об отсутствии ошибок.
Требования бывают полные и неполные, функциональные и нефункциональные.
Функциональные требования описывают ожидаемое поведение системы.
Нефункциональные требования включают производительность, безопасность, надёжность, совместимость и интерфейс пользователя.
Пирамида тестирования — это концептуальная модель для организации уровней тестирования в иерархическом порядке.
Основанием пирамиды является юнит-тестирование, которое проверяет работу методов и является самым большим уровнем.
Далее следуют интеграционные тесты, проверяющие взаимодействие между модулями.
Системное тестирование проверяет систему в целом.
На вершине пирамиды находятся юнит-автотесты или энту-тесты, которые проверяют бизнес-логику от начала до конца.
Толстый клиент: большая часть бизнес-логики находится на клиентской стороне приложения, например, десктопное приложение для редактирования фотографий.
Тонкий клиент: все операции выполняются на сервере, обновления отправляются клиенту через браузер, например, веб-приложение для управления задачами.
Монолитная архитектура: приложение разрабатывается как единое целое, где все компоненты объединены и запускаются вместе, например, классическое приложение на HP.
Микросервисная архитектура: приложение разбивается на отдельные маленькие сервисы, каждый из которых выполняет отдельную функцию и может быть развёрнут и масштабирован независимо, например, онлайн-магазин с отдельными сервисами для обработки заказов, управления каталогом товаров и аутентификации пользователей.
Куки: маленькие кусочки информации, которые веб-сервер отправляет на компьютер при посещении веб-сайта, хранятся в браузере и используются для запоминания действий на сайте, например, для сохранения авторизации.
Кэш: место для временного хранения данных для более быстрого доступа, например, веб-страницы, изображения и другие ресурсы могут сохраняться локально на компьютере или сервере.
Локальный сторидж: место в браузере для хранения данных, таких как настройки пользователя или информация о состоянии приложения.
Сэш-сторидж: место в браузере для хранения данных во время одной сессии браузера, данные удаляются при закрытии вкладки или браузера.
Chrome DevTools — набор инструментов для разработчиков, встроенный в браузер Chrome, позволяющий отлаживать JavaScript-код, редактировать HTML и CSS код веб-страницы в реальном времени, анализировать производительность и тестировать адаптивность дизайна сайта на различных устройствах и разрешениях экрана.
Реляционные базы данных: данные хранятся в виде таблиц, связанных ключами, используются структурированные языки запросов, например, SQL, примеры: MySQL, PostgreSQL, Oracle, SQL Server.
Нереляционные базы данных: данные хранятся в более свободной форме, например