diff --git a/README.md b/README.md index 9e462af..218ad29 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,11 @@ ## Вопросы по темам -* [Софт скиллы](./questions/softskills.md) -* [Алгоритмы и структуры данных](/questions/algorithms.md) +* [Софт скиллы](./questions/common/softskills.md) +* [Алгоритмы и структуры данных](/questions/common/algorithms.md) +* [Компьютерные сети и интернет](questions/common/networks.md) +* [Методологи разработки](questions/common/metodologies.md) +* [Базы данных](questions/common/databases.md) --- diff --git a/questions/auto-qa.md b/questions/auto-qa.md index 833549d..a25ce35 100644 --- a/questions/auto-qa.md +++ b/questions/auto-qa.md @@ -1,7 +1,9 @@ # Вопросы для тестировщиков-автоматизаторов на JS -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -39,35 +41,6 @@ 1. Что такое кроссбраузерное тестирование. Для чего проводится и как? 1. Что такое адаптивность? -### Базы данных - -1. Что такое СУБД, для чего используется? Какие примеры СУБД можешь привести? -1. Чем отличается SQL от NoSQL? -1. Какие виды отношений между таблицами можешь назвать? Покажи примеры. -1. Какие запросы в БД может быть делаешь, На каком уровне знаешь SQL? -1. Что такое первичный и внешний ключ? - -### Сети - -1. Какие библиотеки использовал для HTTP-запросов? -1. Из чего состоит HTTP-запрос, что в него входит? -1. Для чего нужны куки? -1. Какие семейства кодов ответов можешь рассказать? Чем код ответа 200 от 201 отличается? -1. Чем `PUT` запрос отличается от `PATCH`? -1. В чем разница SOAP от REST API? -1. Можно ли в SOAP отправить JSON? -1. Что из себя представляет JSON? -1. Какие инструменты для тестирования API можешь назвать? -1. Как протестировать API веб-приложения? Какие инструменты применимы? -1. Какие чаще всего используются хедеры? Приведи пример. -1. Какой статус кода обычно отправляется при успешном запросе? -1. На что указывают ошибки `4**`? -1. В чем разница между `GET` и `POST`? -1. Что отвечает за авторизацию? -1. Есть такая вещь, называется токен. Для чего используется? -1. Что будет, если попытаться обратиться к приватному ресурсу без авторизации? -1. Если мы сделали запрос, и произошел редирект, как достать ссылку, которая ведет к редиректу из этого запроса? - ## Middle ### Общие вопросы @@ -89,14 +62,3 @@ 1. Можно ли к вебдрайверу добавлять хедеры? Что нужно для этого сделать? 1. Как не дублировать код с авторизацией? Как это сделать в UI-тестах? 1. С чем самым сложным сталкивался в UI-тестах? - -### Базы данных - -1. Какие виды соединений (joins) в БД используешь? -1. В каких случаях первичный ключ может быть `null`? -1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее? - -### Сети - -1. Можно ли в GET в теории поместить тело? -1. Как нам в теле GET запроса отправить картинку на сервер? diff --git a/questions/algorithms.md b/questions/common/algorithms.md similarity index 100% rename from questions/algorithms.md rename to questions/common/algorithms.md diff --git a/questions/common/databases.md b/questions/common/databases.md new file mode 100644 index 0000000..717ba08 --- /dev/null +++ b/questions/common/databases.md @@ -0,0 +1,55 @@ +## Базы данных + +### Общие вопросы + +1. Что такое СУБД, для чего используется? Какие примеры СУБД можешь привести? +1. Какие базы данных бывают, чем отличаются? Чем отличается SQL от NoSQL? +1. Какие фундаментальные различия между MongoDB и PostgreSQL? +1. Что такое реляционная база данных? +1. С какими СУБД работал? +1. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере? + +### Ключи и отношения в базе данных + +1. Что такое первичный и внешний ключ? +1. В каких случаях первичный ключ может быть `null`? +1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации? +1. Какие виды отношений между таблицами можешь назвать? Покажи примеры. +1. Ассоциации/Связи (один к одному, один ко многим, многие ко многим) — как реализовать на уровне БД? + +### Запросы и операции с данными + +1. Какие запросы к БД умеешь писать? На каком уровне знаешь SQL? +1. Выбери из SQL таблицы все имена, заканчивающиеся на "А". +1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее? +1. Знаешь ли ты, что такое `SELF JOIN`? + +### JOIN и соединения таблиц + +1. Какие виды JOIN знаешь? Чем они отличаются? +1. Какие виды соединений (JOIN) в БД используешь? +1. Если соединяем несколько таблиц с помощью `INNER JOIN`, есть ли разница в оптимизации в порядке соединения таблиц? + +### Индексы + +1. Для чего нужны индексы в БД? +1. Что такое индексы в БД? +1. Какие типы индексов бывают? + +### Транзакции и уровни изоляции + +1. Зачем в базах данных нужны транзакции? +1. Знаком с `ACID`? Можешь рассказать, что это такое? +1. Чем обеспечивается функция долговечности в транзакциях (принцип ACID)? +1. Что такое атомарность и консистентность? +1. За счет чего и каким именно образом обеспечиваются уровни изоляции в БД? + +### Производительность и оптимизация + +1. По какому параметру планировщик в БД выбирает самый оптимальный вариант? +1. Решал ли ты задачи производительности в БД? +1. Знаком, что такое PG Bouncer? + +### Специфичные темы + +1. Что такое soft delete (мягкое удаление) и как это связано с тестированием? diff --git a/questions/common/metodologies.md b/questions/common/metodologies.md new file mode 100644 index 0000000..ad59057 --- /dev/null +++ b/questions/common/metodologies.md @@ -0,0 +1,14 @@ +## Методологии разработки + +1. Что такое CI/CD (непрерывная интеграция и доставка)? +1. Что такое система контроля версий и для чего используется? +1. Какой командой получить проект на локальную машину? +1. Существуют классические подходы к разработке и гибкие. Расскажи про них, чем отличаются. +1. Что такое Agile? Какие принципы лежат в основе Agile? +1. Что важнее в Agile — документация или работающий продукт? +1. Какие методологии Agile знаешь (Scrum, Kanban и др.)? +1. Что такое спринт? +1. Что такое баг-трекер? +1. Что такое backlog? +1. Что такое stand-up? +1. Что такое ретроспектива? diff --git a/questions/common/networks.md b/questions/common/networks.md new file mode 100644 index 0000000..70788f4 --- /dev/null +++ b/questions/common/networks.md @@ -0,0 +1,48 @@ +# Сети, интернет и браузер + +1. Что такое веб-приложение? Что такое клиент-серверная архитектура? +1. Когда пользователь вводит запрос в адресной строке браузера или кликает на ссылку, что происходит? Расскажи про этапы рендера. + +## Протоколы и HTTP + +1. Как работает HTTP? Из чего состоит HTTP-запрос? +1. Из чего состоит стартовая строка HTTP-запроса? +1. Что из себя представляет HTTP-запрос? Структура? Есть ли тело у всех HTTP-запросов? +1. В чем отличается протокол HTTP от HTTPS? +1. Чем `PUT` запрос отличается от `PATCH`? +1. В чем разница между `GET` и `POST`? +1. Может ли GET-запрос иметь тело? Можно ли в теле GET-запроса отправить картинку на сервер? +1. Можно ли в GET в теории поместить тело? +1. Какой HTTP метод используется для обновления небольшого кусочка по REST? +1. Что будет, если попытаться обратиться к приватному ресурсу без авторизации? + +## Коды ответов HTTP и хедеры + +1. Какие семейства кодов ответов HTTP знаешь? Чем код ответа 200 отличается от 201? +1. Что такое код ответа 400? Что означает? +1. Что такое код ответа 500? Что означает? +1. Какие чаще всего используются хедеры? Приведи пример. +1. Если мы сделали запрос, и произошел редирект, как достать ссылку, которая ведет к редиректу из этого запроса? + +## API и тестирование + +1. В чем разница SOAP от REST API? +1. Что такое REST API? +1. Можно ли в SOAP отправить JSON? +1. Как протестировать API веб-приложения? Какие инструменты применимы? +1. Какие инструменты для тестирования API можешь назвать? +1. Какие библиотеки использовал для HTTP-запросов? +1. Что такое токен? Для чего используется? +1. Что отвечает за авторизацию? + +## Форматы данных + +1. Что такое JSON? +1. Что может быть в теле HTTP-запроса? Какие форматы данных могут передаваться? +1. Что приходит в теле ответа от сервера? Какие бывают форматы? + +## Сети и уровни + +1. В чем различие TCP и UDP? +1. Расскажи про OSI. На каком уровне находится HTTP? +1. Что такое CORS? Это связано именно с HTTP? diff --git a/questions/softskills.md b/questions/common/softskills.md similarity index 100% rename from questions/softskills.md rename to questions/common/softskills.md diff --git a/questions/data-analytics.md b/questions/data-analytics.md index 09d232b..7d5e122 100644 --- a/questions/data-analytics.md +++ b/questions/data-analytics.md @@ -1,6 +1,7 @@ # Вопросы на собеседованиях аналитиков -[Вопросы по soft skills](/questions/softskills.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по базам данных](/common/databases.md) ## Junior diff --git a/questions/devops.md b/questions/devops.md index 888dc8d..becfdbe 100644 --- a/questions/devops.md +++ b/questions/devops.md @@ -1,6 +1,9 @@ # Вопросы для DevOps-инженеров -[Вопросы по soft skills](/questions/softskills.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -48,7 +51,6 @@ 1. Какие типы http-заголовков знаешь? 1. Что делает балансировщик нагрузки? - ### Linux 1. У нас есть какой-то диск, который хотим примонтировать в Linux. Как это можно сделать? Останется ли примонтирован диск после перезагрузки при монтировании командой `mount`. Опции монтирования `fstab` - какие есть, зачем нужны? @@ -63,12 +65,6 @@ 1. Какие типы переменных есть у роли Ansible? 1. Какой приоритет у переменных Ansible? Как переопределить переменную роли? -### Базы данных - -1. Что такое реляционная база данных? -1. Зачем в базах данных нужны транзакции? -1. Что такое индексы в бд? - ## Middle ### Общие вопросы diff --git a/questions/frontend.md b/questions/frontend.md index 26b00b0..2e16ef0 100644 --- a/questions/frontend.md +++ b/questions/frontend.md @@ -1,7 +1,10 @@ # Вопросы для фронтендеров -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по алгоритмам](/questions/common/algorithms.md) +* [Общие вопросы по сетям, браузеру](common/networks.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -111,19 +114,9 @@ 1. За что отвечает свойство `box-sizing` в CSS? 1. Расскажи про веса селекторов в CCS, от наиболее незначительных, до наиболее специфичных. 1. Как мы можем хранить данные на фронтенде, какие хранилища знаешь? - -### Сети - -1. Чем отличается вообще протокол HTTP и чем он отличается от HTTPS? -1. Что такое CORS? Это связано именно с HTTP? -1. Что такое REST API? -1. Какие коды ответа HTTP знаешь? -1. Как работает HTTP? Из чего состоит HTTP запрос? - -### Браузер - +1. Веб-приложение при работе с браузером сохраняет состояние, картинки, авторизационные данные. Что за хранилище в браузере? Где и как сохраняется? +1. Что такое адаптивность? 1. Что такое Reflow и Repaint? -1. Когда пользователь вводит запрос в адресной строке браузера или кликает на ссылку, что происходит? Расскажи про этапы рендера. ### Git diff --git a/questions/java.md b/questions/java.md index 15b1744..ee812cc 100644 --- a/questions/java.md +++ b/questions/java.md @@ -1,7 +1,10 @@ # Вопросы для Java-разработчиков -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по алгоритмам](/questions/common/algorithms.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -15,7 +18,7 @@ 1. Писал ли тесты? Как их писал? 1. JIT компилятор и обычный компилятор - в чем отличия? 1. Плюсы и минусы монолитного приложения и микросервисного? -CQRS - что это и в чем смысл? +1. CQRS - что это и в чем смысл? ### Java @@ -64,27 +67,6 @@ CQRS - что это и в чем смысл? 1. Как работает CAS в многопоточной среде, если воздействуют на него сразу несколько потоков? - -### Базы данных - -1. С какими СУБД работал? -1. Какие фундаментальные различия между MongoDB и PostgresSQL? -1. Знаком с `ACID`? Можешь рассказать, что это такое? -1. Чем обеспечивается функция долговечности в транзакциях (принцип ACID)? -1. Какие виды `JOIN` знаешь? Чем они отличаются? -1. Что такое атомарность и консистентность? -1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы? -1. За счет чего и каким именно образом обеспечиваются уровни изоляции в БД? -1. По какому параметру планировщик в БД выбирает самый оптимальный вариант? - -### Сети - -1. В чем различие `TCP` и `UDP`? -1. Расскажи про OSI. На каком уровне находится HTTP? -1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов? -1. Можешь рассказать, что такое REST? Использовал ли в работе REST? -1. Какой HTTP метод используется для обновления небольшого кусочка по REST? - ### Безопасность 1. Какие виды уязвимостей знаешь? @@ -116,7 +98,6 @@ CQRS - что это и в чем смысл? 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано? 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы? - ### Java 1. Что такое Structured Concurrency? @@ -126,17 +107,6 @@ CQRS - что это и в чем смысл? 1. Какие коллекции для многопоточного программирования знаешь? 1. Знаешь, как работает сборщик мусора? Если у нас есть переменная, например объект, который ссылается сам на себя, сборщик мусора его обработает? -### Базы данных - -1. Для чего нужны индексы в БД? -1. В каких случаях первичный ключ может быть `null`? -1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации? -1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее? -1. Знаешь ли ты, что такое `SELF JOIN`? -1. Решал ли ты какие-то задачи производительности в БД? -1. Знаком, что такое PG Bouncer? -1. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере? - ### Безопасность 1. Какие типы `XSS` уязвимости ты знаешь? diff --git a/questions/manual-qa.md b/questions/manual-qa.md index 0e9041e..45d86f7 100644 --- a/questions/manual-qa.md +++ b/questions/manual-qa.md @@ -1,273 +1,151 @@ -# Вопросы для ручных тестировщиков +Вот исправленный и структурированный по темам список вопросов для ручных тестировщиков. -[Вопросы по soft skills](/questions/softskills.md) +# Вопросы для ручных тестировщиков -- Почему ты решил стать тестировщиком, чем тебя привлекаетпрофессия? -- Тестирование - что это вообще, чем занимается тестировщик изачем? -- Какие виды тестированиязнаешь? -- Тестовые сценарии принято делить на позитивные и негативные. В чем разница между ними? Почему мы проверяем сперва позитивные сценарии, а потомнегативные? -- Расскажи, что такое функциональные требования и нефункциональные? Можешь привестипример? -- Тестировщик тестирует, написал тест-кейсы и начинает находить баги. Что такое баг илиошибка. -- При описании ошибки должна быть информация. Какая-то обязательная, какая-то нет. Какие обязательные данные должны быть указаны при описании бага? А что можно указать пожеланию? -- Что такое Smoke и Sanityтестирование? -- Мы открываем банковское приложение, заказываем детализацию счета. Но ничего не происходит. Тебе надо описать, какие варианты ошибок могут быть, что будешь передаватьразработчику. -- Какие уровни тестирования можешьназвать? -- Какие правила хорошего тона для написания чек-листа. Как определяешь, что тест-кейсхороший? -- Приведи пример ошибки у которой серьёзность ошибки самая высокая, а приоритет при этом самыйнизкий. -- Есть какой-то веб-сайт, на нем кнопка, которая отвечает за вход в логин-систему. Когда эта кнопка не работает, это создает условие, когда пользователь не может получить доступ большей частью функционала. Как бы ты охарактеризовал приоритет этогобага? -- У нас есть обычная шариковая ручка. Тебе ее нужно протестировать. Что будешь проверять в первую очередь и почему, что потом ипочему. -- Когда пишутся тест-кейсы, на каком этапепроекта? -- Опиши структурубаг-репорта -- Какие тест-кейсы ты передашьавтотестировщику? -- На сайте нажимаем кнопку "сделать заказ", но в корзине ничего нет. Как будешьтестировать? -- Объясните разницу между позитивным и негативнымтестированием -- Что такое UIтестирование? -- Что такое UXтестирование? -- Что такое локализация и интернационализация в тестированииприложений? -- Знаком ли ты с пирамидойтестирования? -- В чем отличается тестирование мобильных приложений отвеб-приложений? -- Как ты протестируешь ввод в поисковуюстроку? +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) -- ### Базыданных +## Общие вопросы по тестированию и методологиям разработки -- Что такое СУБД, для чего используется? Какие примеры СУБД можешьпривести? -- Чем отличается SQL отNoSQL? -- Какие виды отношений между таблицами можешь назвать? Покажипримеры. -- Какие запросы в БД может быть делаешь, На каком уровне знаешьSQL? -- Что такое первичный и внешнийключ? -- Какие виды соединений `JOIN` в БДиспользуешь? +1. Почему ты решил стать тестировщиком, чем тебя привлекает профессия? +1. Что такое тестирование? Зачем нужен тестировщик? +1. Какие виды тестирования знаешь? +1. Что такое позитивное и негативное тестирование? Почему сначала проверяют позитивные сценарии, а потом негативные? +1. Расскажи, что такое функциональные и нефункциональные требования. Можешь привести пример? +1. Что такое баг (ошибка)? +1. Какие обязательные данные должны быть указаны при описании бага? Что можно указать по желанию? +1. Что такое Smoke и Sanity тестирование? +1. Какие уровни тестирования можешь назвать? +1. Какие правила хорошего тона для написания чек-листа? Как определить, что тест-кейс хороший? +1. Приведи пример ошибки с высокой серьёзностью, но низким приоритетом. +1. Как охарактеризовать приоритет бага, если кнопка входа не работает, и пользователь не может получить доступ к функционалу? +1. Когда пишутся тест-кейсы? На каком этапе проекта? +1. Опиши структуру баг-репорта. +1. Какие тест-кейсы ты передашь автотестировщику? +1. Что такое UI и UX тестирование? +1. Что такое локализация и интернационализация в тестировании приложений? +1. Чем отличается тестирование мобильных приложений от веб-приложений? +1. Как протестировать ввод в поисковую строку? +1. Что такое пирамиды тестирования? Почему они имеют форму пирамиды? +1. Что такое регрессионное тестирование и когда его проводят? +1. В каких проектах обязательно делают регрессию, а в каких могут не делать? +1. Когда лучше использовать ручное тестирование, а когда — автоматизированное? +1. Почему для юзабилити-тестирования важно ручное тестирование? +1. Можно ли автоматизировать UI-тестирование? Если да, то как? +1. Для чего используют Selenium? +1. Есть ли библиотеки для сравнения макетов и скриншотов? +1. Что такое unit-тесты, интеграционные тесты, системное тестирование? +1. Что такое приёмочное тестирование? Кто его проводит? +1. Что такое acceptance plan / план приёмочных испытаний? Кто его составляет? +1. Почему заказчик не всегда лично проводит приёмочное тестирование? +1. Почему приёмочное тестирование — спорный уровень пирамиды? +1. Какие техники тест-дизайна знаешь? +1. Что такое классы эквивалентности? +1. Что такое граничные значения? Зачем нужна техника анализа граничных значений? +1. Сколько значений нужно проверить при анализе граничных значений? +1. Можно ли применять технику граничных значений к алфавиту? +1. Зачем нужна техника эквивалентного разбиения? +1. Что мы делаем после того, как поделили значения на классы эквивалентности? +1. Что входит в тест-план? +1. Какие бывают критерии начала тестирования? +1. Какие бывают критерии завершения тестирования? +1. Что такое тест-кейс и чек-лист? В чём разница? +1. Когда лучше использовать тест-кейсы, а когда чек-листы? +1. Что обычно включает в себя тест-кейс? +1. Обязательно ли указывать ожидаемый результат после каждого шага в тест-кейсе? +1. Почему в тест-кейсе не всегда указывают ожидаемый результат после каждого шага? +1. Плюсы и минусы указания ожидаемого результата на каждый шаг и только в конце? +1. От чего зависит выбор подхода к оформлению тест-кейсов в команде? +1. Что такое баг-репорт? Из чего он состоит? +1. Что нужно указать в баг-репорте, кроме шагов и описания? +1. В какой системе ты работал с баг-репортами? +1. Что такое жизненный цикл баг-репорта? +1. Какие основные статусы баг-репорта знаешь (например, в JIRA)? +1. Когда баг считается окончательно закрытым? +1. Что делать, если баг не исправлен и воспроизводится снова? +1. Что значит "проверить окружение"? +1. Что именно проверяешь, чтобы убедиться, что баг воспроизводится корректно? +1. Как взаимодействуешь с разработчиком, если баг остался? +1. Что такое окружение (environment) при тестировании? +1. Какие бывают типы окружений (dev, test, stage, prod)? +1. Чем отличаются окружения разработчика и тестировщика? +1. Что значит “проверить, что код разработчика попал в нужную среду”? +1. Почему баг может воспроизводиться у тестировщика, но не у разработчика (и наоборот)? +1. Какие факторы среды влияют на воспроизводимость багов? +1. В чём разница между эмулятором, симулятором и реальным устройством? +1. Почему баг может быть только на реальном устройстве, а на эмуляторе — нет? +1. Почему браузеры могут по-разному отображать одни и те же вещи? +1. Какие проблемы бывают с версиями браузеров и системой автопроверки кода? +1. Что делать, если разработчик говорит, что баг — дубликат? +1. Как проверить, действительно ли это дубликат? +1. Что делать, если баг, указанный как оригинал, уже закрыт? +1. Как правильно оформить дубликат баг-репорта в системе? +1. Что делать, если баг невоспроизводится? +1. Какие причины могут быть, почему баг невоспроизводится? +1. Что значит "требования изменились" — баг это или нет? +1. Что делать, если функционал, где баг, скоро будет удалён или переписан? +1. Что делать, если разработчик говорит, что это не баг, а фича? +1. К кому обратиться, чтобы уточнить, баг это или нет (product vs. project)? +1. Как проверить тикеты на дубликаты (на что обратить внимание)? +1. Что такое позитивные и негативные тесты? +1. Как понять, какие негативные кейсы писать для API? +1. Нужно ли всегда покрывать API негативными кейсами? +1. Что делать, если сервер всегда возвращает 200 OK, даже при ошибках? +1. Как проверить успех или провал запроса, если статус-код всегда 200? +1. Что важнее — писать сложные негативные тесты или улучшать документацию и покрытие? +1. Почему тестировщик — не тот, кто ломает, а тот, кто помогает? +1. Когда лучше спросить команду, чем тратить часы на догадки? +1. Почему важно быть в команде, а не работать в вакууме? +1. Что такое “код-фриз” и зачем он нужен? +1. Что делать, если команда всё сливает в последние часы перед релизом? +1. Где лучше проверять валидации — во фронте или в API? +1. На каких уровнях может быть реализована валидация? +1. Когда имеет смысл проверять валидации через API? +1. Когда лучше делать end-to-end тестирование, а не API отдельно? +1. Нужно ли тестировщику знать SQL? +1. Почему часто не дают доступ к базе? +1. Какие права обычно есть у тестировщика при работе с БД? +1. Зачем тестировщику SELECT-запросы в реальной практике? +1. Что такое soft delete (мягкое удаление) и как это связано с тестированием? +1. Как получить информацию об API, если документации нет? +1. Кто обычно отвечает за документацию и схемы API? +1. Почему не всегда дают доступ к API или базе? +1. Как строить общение с бэкендером, если он загружен? +1. Почему важно уметь адаптироваться к темпу команды? +1. Почему часто не хватает времени на идеальные тесты? +1. Что делать, если спринт длится всего 5 дней? +1. Почему не всегда имеет смысл «рваться в бой» с Postman, Bash и SQL? +1. Почему собеседования часто далеки от реальности? +1. Почему иногда проще использовать GUI-инструменты, чем писать скрипты? +1. Нужно ли ручному тестировщику знать Bash и Git? +1. Что важнее — умение «запускать скрипты» или видеть общую картину? +1. Как сохранить продуктивность и не выгореть в быстрой разработке? +1. Как расти как тестировщик — за счёт смены проектов или застоя на одном? +1. Может ли ИИ заменить ручного тестировщика? +1. Чем отличается ИИ, дающий ответы, от человека с опытом, задающего правильные вопросы? +1. Почему важно критически воспринимать источники и уточнять происхождение знаний? +1. Где общаться с коллегами, чтобы делиться опытом и развиваться? -- ###Сети +## Тестирование веб-приложений -- Что такое веб-тестирование? Что такое веб-приложение? Что из себя представляет клиент-сервернаяархитектура? -- Для чего нужныкуки? -- Что такое кроссбраузерное тестирование. Для чего проводится икак? -- Что такоеадаптивность? -- Какие семейства кодов ответов можешь рассказать? Чем код ответа 200 от 201отличается? -- Чем `PUT` запрос отличается от`PATCH`? -- В чем разница SOAP от RESTAPI? -- Что из себя представляетJSON? -- Из чего состоит стартоваястрока? -- Как нам в теле `GET` запроса отправить картинку насервер? -- Какие инструменты для тестирования API можешьназвать? -- Можешь рассказать, как написать тесты вPostman? -- Какие примеры негативных сценариев для Postman можешьпредложить? -- Есть такая вещь, называется токен. Для чегоиспользуется? -- Опиши, как вы бы протестировали веб-приложение на кросс-браузернуюсовместимость? -- Мы тестим веб приложение, это приложение при работе с браузером сохраняет свое состояние. Картинки, авторизационные данные. Что за хранилище в браузере, в каких местахсохраняет? +1. Что такое веб-тестирование? +1. Что такое кроссбраузерное тестирование? Для чего проводится и как? +1. Какие инструменты для тестирования API знаешь? +1. Как написать тесты в Postman? +1. Какие примеры негативных сценариев для Postman можешь предложить? +1. Как протестировать веб-приложение на кросс-браузерную совместимость? -- ### Общиевопросы -- Что такое CI/CD, т.е. продолжительная интеграция идоставка? -- Что такое система контроля версий и для чегоиспользуется? -- Какой командой мы можем получить себе на локальную машинупроект? -- Существуют классические подходы к разработке проектов, а есть гибкие. Расскажи про них, чемотличаются. -- Что такое регрессионное тестирование и когда оноиспользуется? -- Как выглядел ваш рабочий процесс? Какие инструментыиспользовали? -- Какие среды у вас использовались впроекте? -- Какая у вас была тестовая документация? Как вы еевели? -- Писали ли вы автотесты? Чтоиспользовали? -- Выберите из SQL таблицы все имена заканчивающиеся на"А" -- Какие техники тест-дизайна вызнаете? -- Какая разница между приоритетом и серьезностью бага? Приведите пример серьезного, но не приоритетногобага -- Что такое UserStory? -- Пользовался ли Kibana? Какими фильтрами в ней можнопользоваться? -- Объясните жизненный цикл дефекта (Bug LifeCycle) -- Какая роль у тестировщика напроекте? -- Какие этапы жизненного цикла ПОсуществуют? -- Что такое пирамида тестирования, что в ней находится, почему она имеет формупирамиды? -- Как протестировать API веб-приложения? Какие инструментыприменимы? -- Расскажи про динамическое и статическоетестирование. -- Что такое регрессионноетестирование? +## Вопросы, связанные с тестированием в контексте методологий разработки -- Что такоетестирование? -- А где мы берём ожидаемоеповедение? -- Какие целитестирования? -- А каким образом нам дефектобнаружить? -- Когда мы в требованиях находим баги — это какоетестирование? -- Видытестирования -- Как мы проверимUI? -- Как мы проверимUI/UX? -- Что такое тестированиелокализации? -- Что включает в себяинтернационализация? -- Что такое тестирование сизменениями? -- Что такоесмоук-тестирование? -- Что такоесанити-тестирование? -- Что такое регрессионное тестирование и когда егопроводят? -- В каких проектах обязательно делают регрессию, а в каких — могут неделать? -- Когда лучше использовать ручное тестирование, а когдаавтоматизированное? -- Почему для юзабилити тестирования ручное тестированиеважно? -- Можно ли автоматизировать UI-тестирование? Если да, токак? -- Для чего используютSelenium? -- Есть ли библиотеки, которые сравнивают макеты искриншоты? -- Что такое пирамидатестирования? -- Что такоеюнит-тесты? -- Что такое интеграционныетесты? -- Что такое системноетестирование? -- Что такое приёмочное тестирование? Кто егопроводит? -- Что такое acceptance plan / план приёмочных испытаний? Кто егосоставляет? -- Почему заказчик не всегда лично проводит приёмочноетестирование? -- Почему некоторые считают, что приёмочное тестирование — это спорный уровеньпирамиды? -- Техникитест-дизайна? -- Что такое классыэквивалентности? -- Что такое граничныезначения? -- Зачем нам нужна техника анализа граничныхзначений? -- Как эта техника помогает сократить количествотестов? -- Сколько значений нужно проверить при анализе граничныхзначений? -- Можно ли применять технику граничных значений калфавиту? -- Зачем нужна техника эквивалентногоразбиения? -- Что такое классэквивалентности? -- Что мы делаем после того, как поделили значения на классыэквивалентности? -- Что входит втест-план? -- Какие бывают критерии началатестирования? -- Какие бывают критерии завершениятестирования? -- Что такое тест-кейс ичек-лист? -- В чём разница между тест-кейсом ичек-листом? -- Когда лучше использовать тест-кейсы, а когдачек-листы? -- Что обычно включает в себятест-кейс? -- Обязательно ли указывать ожидаемый результат после каждого шага втест-кейсе? -- Почему в тест-кейсе не всегда указывают ожидаемый результат после каждогошага? -- В чём плюсы и минусы указания ожидаемого результата на каждый шаг и только вконце? -- От чего зависит выбор подхода к оформлению тест-кейсов вкоманде? -- Что такоебаг-репорт? -- Из чего состоитбаг-репорт? -- Что нужно указать в баг-репорте, кроме шагов иописания? -- В какой системе ты работал сбаг-репортами? -- Что такое жизненный циклбаг-репорта? -- Какие основные статусы баг-репорта ты знаешь (например, вJIRA)? -- Когда баг считается окончательнозакрытым? -- Что ты будешь делать, если баг не исправлен и воспроизводитсяснова? -- Что значит "проверитьокружение"? -- Что именно ты проверяешь, чтобы убедиться, что баг воспроизводитсякорректно? -- Как ты взаимодействуешь с разработчиком в случае, если багостался? -- Что такое окружение (environment) притестировании? -- Какие бывают типы окружений (например, dev, test, stage,prod)? -- Чем отличаются окружения разработчика итестировщика? -- Что значит “проверить, что код разработчика попал в нужнуюсреду”? -- Почему баг может воспроизводиться у тестировщика, но не у разработчика (инаоборот)? -- Какие факторы среды могут влиять на воспроизводимостьбагов? -- В чём разница между эмулятором, симулятором и реальнымустройством? -- Почему баг может быть только на реальном устройстве, а на эмуляторе —нет? -- Почему браузеры могут по-разному отображать одни и те жевещи? -- Какие проблемы бывают с версиями браузеров и системой автопроверкикода? -- Что делать, если разработчик говорит, что баг —дубликат? -- Как проверить, действительно ли этодубликат? -- Что делать, если баг, указанный как оригинал, ужезакрыт? -- Как правильно оформить дубликат баг-репорта всистеме? -- Что делать, если баг невоспроизводится? -- Какие могут быть причины, почему баг невоспроизводится? -- Что значит "требования изменились" — это баг илинет? -- Что делать, если функционал, где баг, скоро будет удалён илипереписан? -- Что делать, если разработчик говорит, что это не баг, афича? -- К кому можно обратиться, чтобы уточнить, баг это или нет (product vs.project)? -- Что делать, если разработчик считает тикет дубликатом — как этопроверить? -- На что обратить внимание при сравнении тикетов-дубликатов (одно ли поле, один ли экран ит.д.)? -- Что такое клиент-сервернаяархитектура? -- Из чего состоитHTTP-запрос? -- Что может быть в телезапроса? -- Какие форматы данных могут передаваться в телезапроса? -- Может ли GET-запрос иметьтело? -- Что приходит в теле ответа отсервера? -- Какие бывают форматы ответа отсервера? -- Что такое код ответа 500 и что онозначает? -- Что такое код ответа 400 и что онозначает? -- Что такоеAgile? -- Какие принципы лежат в основеAgile? -- Что важнее в Agile — документация или работающийпродукт? -- Какие методологии входят вAgile? -- Что такоеScrum? -- Из чего состоитScrum-процесс? -- Что такое спринт и сколько ондлится? -- Какие роли есть вScrum-команде? -- Что происходит на планированииспринта? -- Что такое Story Points и чем ещё можно измерятьзадачи? -- Что такое Daily (DailyScrum)? -- Что такое Demo? Кто егопроводит? -- Что происходит последемо? -- Что такое ретроспектива(ретро)? -- Что обсуждают наретро? -- Кто участвует в ретроспективе и чтообсуждается? -- Что такоеScrum? -- Из чего состоитScrum-процесс? -- Что такое спринт? Сколько ондлится? -- Что происходит на планированииспринта? -- Как измеряется объём задач — кроме storypoints? -- Что такоеdaily? -- Что такое demo? Кто показываетрезультаты? -- Что такое релиз вScrum? -- Что такоеретро? -- Что делают после окончанияспринта? -- Чем Kanban отличается отScrum? -- Есть ли спринты вKanban? -- Как в Kanban отслеживаются задачи иисполнители? -- Почему Kanban чаще встречается в продуктовыхкомпаниях? -- Почему Kanban может позволить отложить релиз илизадачу? -- Что такое Waterfall (каскаднаямодель)? -- Почему в Waterfall нельзя легко вернуться на предыдущийэтап? -- Где используется Waterfall напрактике? -- Почему Waterfall может быть подходящим в космической, военной, авиационной или банковскойсфере? -- Какая главная проблема Waterfall в быстрых проектах и хайповыхпродуктах? -- Что такое Continuous Integration(CI)? -- Приходилось ли тебе сталкиваться сCI/CD? -- CI/CD и улучшение качества дотестирования -- Что происходит с кодом до того, как его получает тестировщик, если естьCI/CD? -- Что такое Code Review и зачем ононужно? -- Что такое мердж-конфликты и как они влияют насборку? -- Какие проверки проходят в пайплайне CI перед тем, как билд поступаеттестировщику? -- Что происходит, если пайплайн обнаруживает конфликт или не проходиттесты? -- Что такое Jenkins и зачем ониспользуется? -- Может ли GitLab заменитьJenkins? -- Какие преимущества дает использование CI/CD для ручноготестировщика? -- Что делать, если на проекте CI/CD нет и сборки кидают "наколенке"? -- Насколько важно знание Git для ручноготестировщика? -- Какие базовые команды Git стоит знать (pull, clone, push, fork,PR)? -- Кто точно должен хорошо знатьGit? -- Что делать, если не знаешь, из какой ветки взятьсборку? -- Нормально ли, если ручной тестировщик сам билдит продуктвручную? -- Какая практика считается правильной по отношению к сборкам итестированию? -- Какие бывают типы приложений (веб, нативные,гибридные)? -- Какие особенности есть у нативных приложений притестировании? -- Что тестировать у гибридных ивеб-приложений? -- Какие виды взаимодействия с устройством важны для тестирования мобильныхприложений? -- Как влияет качество интернета (3G, 4G, Wi-Fi) натестирование? -- Почему важно проверять работу клавиатуры и полей ввода в мобильныхбраузерах? -- Как влияет тег в HTML на поведение поля в мобильнойклавиатуре? -- Как подключается API-тестирование в общую картинутестирования? -- Что такое позитивные и негативныетесты? -- Как понять, какие именно негативные кейсы нужно писать дляAPI? -- Нужно ли всегда покрывать API негативнымикейсами? -- Что делать, если сервер всегда возвращает 200 OK, даже приошибках? -- Как проверить успех или провал запроса, если статус-код всегда200? -- Что важнее — писать сложные негативные тесты или улучшать документацию ипокрытие? -- Почему тестировщик — это не тот, кто «ломает», а тот, ктопомогает? -- Когда лучше спросить команду, чем тратить часы надогадки? -- Почему важно быть в команде, а не работать ввакууме? -- Что такое “кодфриз” и зачем оннужен? -- Что делает тестировщик, если команда всё сливает в последние часы передрелизом? -- Где лучше проверять валидации — во фронте или вAPI? -- На каких уровнях может быть реализованавалидация? -- Когда имеет смысл проверять валидации черезAPI? -- Когда лучше делать end-to-end тестирование, а не APIотдельно? -- Нужен ли SQL ручномутестировщику? -- Почему часто не дают доступ кбазе? -- Какие права обычно есть у тестировщика при работе сБД? -- Зачем тестировщику SELECT-запросы в реальнойпрактике? -- Что такое soft delete (мягкое удаление) и как это связано стестированием? -- Как получить информацию об API, если документациинет? -- Кто обычно отвечает за документацию и схемыAPI? -- Почему не всегда дают доступ к API илибазе? -- Как строить общение с бэкендером, если онзагружен? -- Почему важно уметь адаптироваться к темпукоманды? -- Почему часто не хватает времени на идеальныетесты? -- Что делать, если спринт длится всего 5дней? -- Почему не всегда имеет смысл «рваться в бой» с Postman, Bash иSQL? -- Почему собеседования часто далеки отреальности? -- Почему иногда проще использовать GUI-инструменты, чем писатьскрипты? -- Нужно ли ручному тестировщику знать Bash иGit? -- Что важнее — умение «запускать скрипты» или видеть общуюкартину? -- Как сохранить продуктивность и не выгореть в быстройразработке? -- Как расти как тестировщик — за счёт смены проектов или застоя наодном? -- Может ли ИИ заменить ручноготестировщика? -- Чем отличается ИИ, дающий ответы, от человека с опытом, задающего правильныевопросы? -- Почему важно уметь критически воспринимать источники и уточнять происхождениезнаний? -- Где общаться с коллегами, чтобы делиться опытом иразвиваться? \ No newline at end of file +* Как тестировщик может влиять на качество продукта в Agile? +* Как тестировщик взаимодействует с командой в Agile? +* Почему важно иметь хорошую коммуникацию в команде? +* Как приоритизировать баги? +* Что делать, если баг не воспроизводится? +* Что делать, если баг воспроизводится только на проде? +* Как планировать тестирование в Agile? +* Почему автоматизация важна, но не всегда является приоритетом? +* Что такое regression testing и зачем он нужен в Agile? diff --git a/questions/nodejs.md b/questions/nodejs.md index 99684f4..5edab50 100644 --- a/questions/nodejs.md +++ b/questions/nodejs.md @@ -1,7 +1,10 @@ # Вопросы для бэкендеров на NodeJS -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по алгоритмам](/questions/common/algorithms.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -78,28 +81,6 @@ 1. Настраивал ли typeconfig? 1. Какие есть встроенные типы Typescript? -### Базы данных - -1. С какими СУБД работал? -1. Фундаментальные различия между MongoDB и Postgress? В каких случаях что выберешь? -1. Знаком с ACID? Можешь рассказать, что это такое? -1. Какие виды JOIN знаешь? Чем они отличаются? -1. Пользовался ли транзакциями? В каких случаях? -1. Делал ли внешние ключи в базах данных? Зачем они нужны? -1. Миграции/сиды писал? -1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы? - -### Сети - -1. В чем различие TCP и UDP? -1. Расскажи про OSI. На каком уровне находится HTTP? -1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов? -1. На чем основан HTTP запрос? На каком протоколе? А еще глубже? -1. Что такое REST API? Можешь рассказать, что такое REST? Использовал ли в работе REST? -1. Какой HTTP метод используется для обновления небольшого кусочка по REST? -1. Чем отличается вообще протокол HTTP и чем он отличается от HTTPS? -1. Что такое CORS? Это связано именно с HTTP? - ## Middle ### Общие вопросы @@ -125,16 +106,3 @@ 1. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой? 1. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано? 1. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы? - -### Базы данных - -1. Для чего нужны индексы в БД? -1. В каких случаях первичный ключ может быть `null`? -1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации? -1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее? -1. Знаешь ли ты, что такое `SELF JOIN`? -1. Решал ли ты какие-то задачи производительности в БД? -1. Знаком, что такое PG Bouncer? -1. Работал ли ты с Sequelize? Что тебе понравилось и не понравилось? -1. Можешь рассказать про плюсы и минусы расположения БД в контейнере и без? В каких случаях стоит использовать базу в контейнере? -1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы? diff --git a/questions/php.md b/questions/php.md index 1fe8ba1..a240a45 100644 --- a/questions/php.md +++ b/questions/php.md @@ -1,7 +1,10 @@ # Вопросы для PHP-разработчиков -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по алгоритмам](/questions/common/algorithms.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -33,31 +36,6 @@ 1. Что будет с объектом после передачи в метод и его модификации? А если передать массив? 1. Сможешь рассказать о принципах разработки ПО: SOLID, DRY, KISS? Какие еще знаешь принципы разработки? -### Базы данных - -1. С какими СУБД работал? -1. Фундаментальные различия между MongoDB и Postgres? -1. Знаком с ACID? Можешь рассказать, что это такое? -1. Какие виды `JOIN` знаешь? Чем они отличаются? -1. Что такое транзакция? -1. Расскажи о ссылочной целостности в БД, что это и для чего нужно? -1. Какие ключи есть в MySQL? Как их можно настроить, на какие события? -1. В чем различие between where и having? -1. Обязательно ли поле с id, которое ссылается на другую таблицу, делать внешним ключом? -1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить? -1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы? - -### Сети - -1. В чем различие TCP и UDP? -1. Расскажи про OSI. На каком уровне находится HTTP? -1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов? -1. Можешь рассказать, что такое REST? Использовал ли в работе REST? -1. В чем разница между `GET` и `POST`? -1. Какой HTTP метод используется для обновления небольшого кусочка по REST? -1. Можно ли передавать параметры запроса в URL при использовании метода POST? -1. При работе с каким методом стоит использовать кэш? - ### Безопасность 1. Почему использование функции `eval()` небезопасно? Какие ещё знаешь небезопасные функции в PHP? @@ -105,22 +83,6 @@ 1. Что такое деструкторы, где применяются? 1. Приходилось работать с Reflection API? Зачем оно может пригодиться? -### Базы данных - -1. Для чего нужны индексы в БД? -1. В каких случаях первичный ключ может быть `null`? -1. В каком случае первичный ключ может быть составным и может ли он быть составным? Можешь привести пример такой ситуации? -1. Чем `DELETE` отличается от `TRUNCATE`? Какой запрос будет выполнен быстрее? -1. Знаешь ли ты, что такое `SELF JOIN`? -1. В каких случаях необходима денормализация? Как она может помочь в системе рекомендаций? -1. Как можно ускорить запрос с выбором данных из категорий с самыми дешевыми товарами? -1. Обязательно ли делать поле внешним ключом? Всегда ли это плохо? Что такое нормальная форма? -1. Что такое репликация и шардирование? Когда что использовать? -1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы? -1. Чем различаются уровни транзакций в БД? -1. Что такое аналитические СУБД? -1. Какие NoSQL знаешь? Для чего используются? - ### Безопасность 1. Какие типы `XSS` уязвимости ты знаешь? diff --git a/questions/python.md b/questions/python.md index 5281911..f707bab 100644 --- a/questions/python.md +++ b/questions/python.md @@ -1,7 +1,10 @@ # Вопросы для разработчиков Python -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по алгоритмам](/questions/common/algorithms.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -96,23 +99,6 @@ 1. Как устроена система авторизации в Django? 1. Как реализовать корзину для интернет-магазина в Django? -### Сети - -1. Какие статусы ответов HTTP знаешь? -1. В чем отличие GET запроса от POST? Можем ли отправить файл через GET? -1. Какие методы HTTP передают тело запроса? -1. Что входит в один HTTP-запрос? -1. Что такое REST? Перечисли принципы. Перечисли частые методы - -### Базы данных - -1. Как реализуется связь многие ко многим в базах данных? -1. Расскажи что такое транзакция -1. Расскажи о принципах ACID -1. В чем разница между `UNION` и `JOIN`? `UNION` и `UNION ALL`? -1. Приходилось ли анализировать план запроса? Чем отличается `EXPLAIN` от `EXPLAIN ANALYZE`? -1. Если соединяем несколько таблиц БД с помощью `INNER JOIN`, есть ли разница в оптимизации, в каком порядке соединяем таблицы? - ### Безопасность 1. Какие типы `XSS` уязвимости ты знаешь? diff --git a/questions/rails.md b/questions/rails.md index 4cd251c..0041b9a 100644 --- a/questions/rails.md +++ b/questions/rails.md @@ -1,7 +1,10 @@ # Вопросы для разработчиков на Ruby On Rails -[Вопросы по soft skills](/questions/softskills.md) -[Вопросы по алгоритмам](/questions/algorithms.md) +* [Вопросы по soft skills](/questions/common/softskills.md) +* [Вопросы по алгоритмам](/questions/common/algorithms.md) +* [Вопросы по базам данных](/common/databases.md) +* [Вопросы по сетям](/common/networks.md) +* [вопросы по методологиям разработки](/common/metodologies.md) ## Junior @@ -25,19 +28,10 @@ 1. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить? 1. Что такое Манкипатчинг? Применял ли? -### Сети +### Rails -1. Чем PUT от PATCH отличается? -1. Что из себя представляет HTTP запрос? Структура? Тело есть у всех HTTP запросов? -1. Можешь рассказать, что такое REST? Использовал ли в работе REST? -1. В чем разница между `GET` и `POST`? +1. Ассоциации (один к одному, один ко многим, многие ко многим) — как реализовать на уровне БД и на уровне Rails-моделей? -### Базы данных - -1. Базы данных - какие базы бывают, чем отличаются. -2. Индексы в БД что это для чего нужны, какие типы индексов бывают. -3. Ассоциации(один к одному, один ко многим, многие ко многоим) как реализовать на уровне БД, как реализовать на уровне Rails-моделей. -4. Какие виды JOIN-ов бывают, чем отличаются. ### Задачки на код