Як стати автоматизатором та питання зі співбесід
Last updated
Last updated
Чи можна стати автоматизатором без досвіду тестування?
Можна, якщо у вас є досвід програмування. У якихось компаніях це справді так і працює. Ручні випробувачі пишуть тест-кейси (кроки + очікуваний результат), автоматизатор їх бере і переносить у код. У принципі такий підхід цілком валідний і працює, але я бачу в ньому деякі недоліки.
По-перше, коли сам пишеш автотести на функціонал, який добре знаєш, ти можеш по ходу додавати якісь перевірки, які міг пропустити під час написання тест-кейсів. Плюс знаєш інші автотести, які можна доповнити. Відповідно, тобі легше підтримувати актуальність автотестів.
По-друге, автоматизація тестування – це цікаво та корисно. Ти починаєш вивчати код, розширюєш свої знання про продукт, розумієш, як усе працює зсередини. Це корисно і для ручного тестування, зокрема. Починаєш трохи краще розуміти розробників.
Чи можна автоматично писати автотести? Не хочеться вчитися програмування.
Спробувати можна. Ми куштували. Для таких справ є рекордери. Але ті тести, які ними створюються - це монструозні шматки коду, що не підтримуються.
Можливо, це буде працювати, якщо, скажімо, в додатку є якась кнопка, яка ніколи не змінюватиметься. Не зміниться ні шлях до неї, ні її функціональність та становище. Тоді код цього тесту ніколи не потрібно буде змінювати, і нехай цей тест житиме. Але, на жаль, на практиці так не працює. Тести повинні бути легко підтримувані, зрозумілі, читані. Рекордером такого не досягнеш.
Можна використовувати рекордери в яких-небудь складних місцях програми, щоб подивитися, як можна повзаємодіяти з яким-небудь складним елементом. Тобто використовувати його як помічника як допоміжний інструмент, але не як основний засіб автоматизації.
За скільки тестувальник перетворюється на автотестувальника
Знову ж таки, на наш досвід, ми наймаємо людину без досвіду автоматизації і на випробувальний термін (3 місяці) їй ставиться завдання - написати свій перший автотест на будь-яку з платформ, яка йому сподобається більше або здасться простіше. І ми ще ніхто не провалив випробувальний термін.
Звичайно, велику роль відіграє те, що людина пише автотести не зовсім з нуля. У нас вже є і готові автотести, які можна дивитися та писати за аналогією, і люди, які готові допомагати та відповідати на запитання.
За підсумками за 3 місяці ми отримуємо людину, яка вже розуміє, як писати автотести мінімум для однієї із платформ. Наступним кроком буде написати такий самий тест для другої платформи. Ще через 3-4 місяці ми отримаємо самостійного автоматизатора мобільних програм під обидві платформи, якому ще якийсь час, можливо, потрібна буде допомога з якимись складними речами. Але вільно писати легкі автотести під обидві платформи він буде вже через півроку.
Кар'єрний шлях автоматизатора
Роадмапи в основному включають і мануал і авто, їх можна подивитися в темі Що має знати і вміти Junior? Що спитають на співбесіді?”.
Питання для підготовки до співбесіди можна умовно поділити на 3 великі групи:
джуна напевно все одно будуть запитувати загальну теорію тестування з мануалу, хоча б по верхах;
все те, що стосується безпосередньо автоматизації: яка буває, інструменти загалом і безпосередньо під вакансію, уявлення про інфраструктуру CI/CD, кращі практики автоматизації тощо;
core мови програмування, вказаного у вакансії та все, що навколо цього.
Питання з автоматизації :
Що таке автоматизація та навіщо вона потрібна?
Коли потрібно розпочинати автоматизацію на проекті?
Яка буває автоматизація (види, методи, платформи тощо)?
Популярні фреймворки та інструменти автоматизації, запуску тестів та генерації звітності;
Інфраструктура CI/CD, пайплайн, місце автотестів у ньому;
Що слід автоматизувати насамперед?
Яка тестова документація потрібна для автоматизованого тестування?
Питання з мов програмування :
Java:
дизайн-патерни;
дата-типи;
колекції, Map...;
модифікатори доступу. Public, Private, Abstract класи та методи;
Що таке інтерфейс?
Що таке лямбда функція?
дженерики;
колекції;
методи класу об'єкта;
Запитання загальні за типом:
Різниця між бібліотекою та фреймворком?
Що означає слово SNAPSHOT у бібліотеці?
Що таке SDK?
Практичні навички :
вміти писати код;
Git;
консоль;
типові інструменти для платформ;
моки запитів (Swifter/Wiremock);
інструменти звітності (Allure);
інструменти CI.
Скільки IOS розробників у додатку?
Скільки Unit Test'ів та скільки UI Test'ів на даний момент?
З якою періодичністю запускаються випробування?
Який релізний цикл? Скільки зараз часу на регрес?
Хто додає Accebility Identifier'и додаток?
Яка мінімальна версія IOS підтримується?
Скільки часу витрачається на складання програми локально?
Яка система збирання використовується на проекті?
Чи автоматизуєте вирішення конфліктів у project.pbxproj?
Джерела:
Дод. матеріал:
більше чи в угле.
запитань від кандидата роботодавцю:
)