#testing #automation #interview
В одному з ком'юніті минулого тижня ми обговорювали задачі на співбесіді для автоматизаторів.
Які варіанти задач я зустрічав
1. Задачі на
алгоритми та структури даних (на обраній мові програмування). Це можуть бути спеціалізовані платформи типу Codility або HackerRank. Якщо це перший етап інтерв'ю - то дають 1-3 простих невеличких задачі на 30 - 60 хвилин. Якщо це частина технічної співбесіди - можуть бути задачі складніші. Плюс інтерв'юер може додавати нові вимоги. 2. Задачі типу "
напиши сервіс та покрий тестами". Перевіряються як загальні скіли розробника, так і знання інструментів тестування конкретного фреймворку.3. Задачі "
ось тобі шматок коду - скажи, що він робить та де можуть бути баги". Перевіряється вміння читати чужий код, знання мови програмування та вміння знаходити баги. 4. Задачі "
напиши UI чи API тести прямо зараз з нуля. Ось тобі сайт чи API". Тут перевіряється наявність ваших заготовок, вміння швидко писати тести. Якщо ви давно не працювали з бібліотекою чи фреймворком (або якщо ви займались копіпастингом БДД сценаріїв у готовому солюшені) - ви легко можете завалити співбесіду.Важливо! Концентрація виключно на коді не перевіряє вміння інженера мислити, знання підходів до автоматизації, досвід вирішувати справжні робочі задачі. А показує лишень навичку довго й нудно сидіти та вирішувати алгоритмічні задачки.
Окремо про тестові завдання
Колись давно, коли панував ринок кандидата - вважалося "поганим тоном" давати тестове завдання додому.
Таке могли собі дозволити тільки компанії з хорошим брендом (куди дійсно хотілося потрапити на роботу).
Усі інші компанії могли втратити кандидата - бо кандидати могли без тестового потрапити на подібну роботу в схожу компанію.
Але зараз ринок роботодавця. Тому тестові завдання, зазвичай, треба виконувати. Якщо ви хочете отримати роботу звісно.
Які варіанти тестових я бачив
"
Покрий автотестами частину функціональності чи API". Додатково може бути завдання написати спочатку тест план для фічі. "
Ось тобі репозиторій минулого інженера (не справжній, я сподіваюся) - він щось там писав. Твоя задача проаналізувати солюшен, виправити наявні помилки та запропонувати шляхи інших покращень". Дуже хороший варіант тестового - бо ви маєте змогу показати весь спектр своїх навичок та знань. Головне правило роботи з тестовими завданнями - краще зробити менше тестів, але щоб вони працювали, стабільно, додати автоматичний запуск тестів на Github / Gitlab CI, репорти, інші корисні речі та додати README зі зрозумілим описом.
Бо якщо у вас крутий солюшен з усіма паттернами в світі, але він незрозумілий або навіть не запускається локально - то це величезний мінус.
А які варіанти задач на співбесідах зустрічали ви?