Вопросы для подготовки к собеседованию на позицию Junior QA (веб-тестирование)
Продолжаю создавать шпаргалки для подготовки к собеседованиюю на позицию Junior QA. В посте ниже собрал 13 вопросов по тестированию веба с подробными ответами для самопроверки.
Его цель помочь новичкам, готовящимся к собеседованиям, понять глубже теорию и видеть примеры ожидаемых ответов, которые давали бы интервьюерам увидеть, что отвечающий понимает суть вопроса и может ее объяснить. В ответах также объясняется как тема из вопроса связана с тестированием и на что тестировщику стоит обратить внимание.
В этом посте разобраны следующие вопросы:
1. Что такое UI-тестирование веб-приложений и какие аспекты при этом проверяются?
2. Что такое кроссбраузерное тестирование и зачем оно необходимо?
3. Для чего нужны инструменты разработчика (Chrome DevTools и аналоги) и как тестировщик их использует?
4. Что такое валидация веб-форм и какие бывают виды валидации?
5. В чем разница между аутентификацией и авторизацией?
6. Как протестировать функциональность входа в систему (login) и управление сессией пользователя?
7. Как бы вы протестировали веб-форму регистрации нового пользователя?
8. Что такое HTTP и HTTPS? В чем их отличие и почему важно использование HTTPS?
9. Что такое cookie (куки) в веб-приложениях и чем cookie отличаются от сессии?
10. Что такое кэш браузера и как он влияет на тестирование веб-приложений?
11. Чем отличаются Local Storage и Session Storage, и как они используются в веб-приложениях?
12. Что такое архитектура «клиент-сервер» в веб-приложениях?
13. Каковы роли основных технологий фронтенда – HTML, CSS и JavaScript – в работе веб-страницы?
Пример вопроса и ответа:
В чем разница между аутентификацией и авторизацией?
Ответ: Эти два понятия относятся к безопасности и управлению доступом, и их часто путают, но разница принципиальна:
- Аутентификация – это проверка подлинности пользователя, то есть процесс удостоверения кто этот пользователь. Иными словами, аутентификация отвечает на вопрос: «Это действительно тот, за кого себя выдает пользователь?». В веб-приложениях аутентификация обычно реализуется через ввод логина и пароля (также могут использоваться токены, одноразовые коды, OAuth и другие механизмы). Пример: вы вводите свой email/пароль на сайте – система сверяет пароль с сохраненным в базе для данного пользователя. Если пароль верный, система вас узнает и впускает.
- Авторизация – это предоставление прав доступа после успешной аутентификации, процесс определения, что пользователь имеет право делать или просматривать. Авторизация отвечает на вопрос: «Что разрешено этому идентифицированному пользователю?». Например, после логина (аутентификации) система знает, что вы – обычный пользователь, а не администратор, и авторизует вам доступ только к функциям, доступным обычному пользователю. Администратору же будут авторизованы дополнительные разделы (управление пользователями, настройками и т.д.). То есть авторизация – это проверка прав: можно ли данному юзеру открыть конкретную страницу или выполнить определенное действие.
Простая аналогия: на входе в офис вас просят предъявить удостоверение – это аутентификация (проверка личности). После этого вам сообщают, в какие комнаты вы имеете право проходить – это авторизация (определение ваших прав доступа).
В контексте тестирования веба QA должен понимать эту разницу, так как тесты функционала часто связаны либо с проверкой процесса логина (аутентификации), либо с проверкой правильности прав доступа. Например, тестировщик проверяет, что без ввода правильного пароля пользователь не попадет в защищенный раздел (проверка аутентификации), а уже после входа – что обычный пользователь не может зайти на страницу администрирования или совершить запрещенное действие (проверка авторизации). Таким образом, аутентификация = кто я, авторизация = что мне разрешено.
тизер поста