Ответ
Junior QA — специалист начального уровня, который выполняет задачи под руководством. Основная деятельность — ручное тестирование по готовым чек-листам и тест-кейсам.
Middle QA — самостоятельный специалист, который проектирует тесты, пишет и поддерживает автотесты, участвует в планировании и анализе требований.
Ключевые различия:
| Критерий | Junior QA | Middle QA |
|---|---|---|
| Самостоятельность | Требует наставничества и четких инструкций. | Работает самостоятельно, может руководить младшими коллегами. |
| Автоматизация | Может выполнять готовые скрипты. | Проектирует и пишет автотесты с нуля (например, на Python + Selenium/Playwright). |
| Процессы | Следует установленным процессам. | Участвует в улучшении процессов (внедрение CI/CD, выбор инструментов). |
| Глубина анализа | Тестирует по заданным сценариям. | Анализирует требования, проектирует тестовое покрытие, оценивает риски. |
Пример автотеста, который может написать Middle QA:
from selenium import webdriver
from selenium.webdriver.common.by import By
def test_successful_login():
driver = webdriver.Chrome()
driver.get("https://example.com/login")
driver.find_element(By.ID, "username").send_keys("test_user")
driver.find_element(By.ID, "password").send_keys("secure_pass")
driver.find_element(By.ID, "submit").click()
assert "Dashboard" in driver.title, "Login failed or dashboard not reached."
driver.quit() Ответ 18+ 🔞
Ну, вот смотри, объясняю как есть, чтобы не было потом "ой, а я думал, что это одно и то же". Это как сравнивать пацана, который только учится водить на площадке с инструктором, и мужика, который уже на своей тачке по кольцевой гоняет, параллельно ругаясь на всех водил в округе.
Джун QA — это, по сути, стажёр с доступом к продвинутым игрушкам. Ему дают чек-лист, где расписано по пунктам: "нажми сюда, посмотри, что там высветилось". Его главная задача — не наебнуться, следуя инструкции, и не сломать всё к чертям. Работает под присмотром, как котёнок под мамкой. Если что-то идёт не так, он не решает, а бежит с вопросом: "Анатолич, а у меня тут окошко красное, это нормально?"
Мидл QA — это уже самостоятельная боевая единица. Ему не дают инструкцию — он её сам пишет, блядь. Он уже не просто тыкает кнопки, а думает, какую хуйню пользователь может вытворить, чтобы всё полетело в тартарары. Он лезет в требования и орёт: "Вы тут нарисовали одно, а в ТЗ написано другое, вы определитесь, ёпта!". И он уже не боится кода.
Короче, разница как между:
| Критерий | Джун (Зелёный салага) | Мидл (Опытный солдат) |
|---|---|---|
| Самостоятельность | "Можно я пойду пописать?" — работает только с разрешения и под присмотром. | Сам решает, что и когда тестировать, может джуна за уши тащить и объяснять, где у него в тест-кейсе дыра размером с мою голову. |
| Автоматизация | Может запустить готовый скрипт и сказать: "О, зелёная галочка!". Если скрипт упал — паника, звонок старшему. | Сам садится и пишет этот скрипт с нуля, потому что заебало каждый раз вручную проверять одно и то же. Знает, что такое Page Object, фикстуры и почему Selenium иногда тупит, как пробка. |
| Процессы | Следует правилам. Точка. | Видит, что процесс — говно, и начинает его улучшать. Предлагает: "А давайте загоним эти тесты в CI/CD, чтобы они сами бегали при каждом коммите, а не мы, как лохи, вручную?". |
| Глубина анализа | Видит баг: "Кнопка 'Отправить' не работает". | Видит баг, лезет в логи, смотрит, какой запрос улетает на бэк, проверяет сваггер, и пишет тикет: "При отправке формы с пустым полем 'Email' падает 500-я ошибка из-за null в методе validateUser() на бэкенде. Прикрепил логи и скриншот". |
Вот пример той самой хуйни, которую мидл может накодить, пока джун бьётся над составлением баг-репорта:
from selenium import webdriver
from selenium.webdriver.common.by import By
def test_successful_login():
driver = webdriver.Chrome()
driver.get("https://example.com/login")
driver.find_element(By.ID, "username").send_keys("test_user")
driver.find_element(By.ID, "password").send_keys("secure_pass")
driver.find_element(By.ID, "submit").click()
assert "Dashboard" in driver.title, "Login failed or dashboard not reached."
driver.quit()
Джун на это посмотрит и скажет: "Вау, код!". А мидл уже думает: "Надо бы добавить фикстуры для драйвера, вынести селекторы, да и проверку сделать по URL, а не по тайтлу, потому что тайтл может меняться, ёпта".
Короче, джун — это ученик, который учится не гадить в тапки. Мидл — это тот, кто уже научился, и теперь учит других, параллельно придумывая, как автоматизировать уборку этих самых тапок.