Як стати автоматизатором та питання зі співбесід

Чи можна стати автоматизатором без досвіду тестування?

Можна, якщо у вас є досвід програмування. У якихось компаніях це справді так і працює. Ручні випробувачі пишуть тест-кейси (кроки + очікуваний результат), автоматизатор їх бере і переносить у код. У принципі такий підхід цілком валідний і працює, але я бачу в ньому деякі недоліки.

По-перше, коли сам пишеш автотести на функціонал, який добре знаєш, ти можеш по ходу додавати якісь перевірки, які міг пропустити під час написання тест-кейсів. Плюс знаєш інші автотести, які можна доповнити. Відповідно, тобі легше підтримувати актуальність автотестів.

По-друге, автоматизація тестування – це цікаво та корисно. Ти починаєш вивчати код, розширюєш свої знання про продукт, розумієш, як усе працює зсередини. Це корисно і для ручного тестування, зокрема. Починаєш трохи краще розуміти розробників.

Чи можна автоматично писати автотести? Не хочеться вчитися програмування.

Спробувати можна. Ми куштували. Для таких справ є рекордери. Але ті тести, які ними створюються - це монструозні шматки коду, що не підтримуються.

Можливо, це буде працювати, якщо, скажімо, в додатку є якась кнопка, яка ніколи не змінюватиметься. Не зміниться ні шлях до неї, ні її функціональність та становище. Тоді код цього тесту ніколи не потрібно буде змінювати, і нехай цей тест житиме. Але, на жаль, на практиці так не працює. Тести повинні бути легко підтримувані, зрозумілі, читані. Рекордером такого не досягнеш.

Можна використовувати рекордери в яких-небудь складних місцях програми, щоб подивитися, як можна повзаємодіяти з яким-небудь складним елементом. Тобто використовувати його як помічника як допоміжний інструмент, але не як основний засіб автоматизації.

За скільки тестувальник перетворюється на автотестувальника

Знову ж таки, на наш досвід, ми наймаємо людину без досвіду автоматизації і на випробувальний термін (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?

Джерела:

Дод. матеріал:

Last updated