Skip to content

Latest commit

 

History

History
123 lines (91 loc) · 13.2 KB

kak-stat-avtomatizatorom-i-voprosy-s-sobesedovanii.md

File metadata and controls

123 lines (91 loc) · 13.2 KB

Как стать автоматизатором и вопросы с собеседований

Можно ли стать автоматизатором без опыта ручного тестирования?

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

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

Во-вторых, автоматизация тестирования - это интересно и полезно. Ты начинаешь изучать код, расширяешь свои знания о продукте, понимаешь, как всё работает изнутри. Это полезно и для ручного тестирования в том числе. Начинаешь чуть лучше понимать разработчиков.

Можно ли писать автотесты автоматически? Не хочется учиться программированию.

Попробовать можно. Мы пробовали. Для таких дел существуют рекордеры. Но те тесты, которые ими создаются - это монструозные и неподдерживаемые куски кода.

Возможно, это будет работать, если, допустим, в приложении есть какая-то кнопка, которая никогда не будет меняться. Не изменится ни путь до нее, ни ее функциональность и положение. Тогда код этого теста никогда не нужно будет менять, и пусть этот тест будет жить. Но увы, на практике так не работает. Тесты должны быть легко поддерживаемыми, понятными, читаемыми. Рекордером такого не добьешься.

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

За сколько тестировщик превращается в автотестировщика

Опять же, по нашему опыту, мы нанимаем человека без опыта автоматизации и на испытательный срок (3 месяца) ему ставится задача - написать свой первый автотест на любую из платформ, которая ему понравится больше или покажется проще. И у нас еще никто не провалил испытательный срок.

Естественно, большую роль играет то, что человек пишет автотесты не совсем с нуля. У нас уже есть и готовые автотесты, которые можно смотреть и писать по аналогии, и люди, которые готовы помогать и отвечать на вопросы.

По итогу за 3 месяца мы получаем человека, который уже понимает, как писать автотесты минимум для одной из платформ. Следующим шагом будет написать такой же тест для второй платформы. Еще через 3-4 месяца мы получим самостоятельного автоматизатора мобильных приложений под обе платформы, которому еще какое-то время, возможно, нужна будет помощь с какими-то сложными вещами. Но вот свободно писать легкие автотесты под обе платформы он будет уже через полгода.

Карьерный путь автоматизатора

Роадмапы в основном включают и мануал и авто, их можно посмотреть в теме “Что должен знать и уметь Junior? Что спросят на собеседовании?”.

Вопросы для подготовки к собеседованию можно условно поделить на 3 большие группы:

  • джуна наверняка всё-равно будут спрашивать общую теорию тестирования по мануалу, хотя бы по верхам;
  • всё то, что касается непосредственно автоматизации: какая бывает, инструменты в общем и конкретно под вакансию, представление об инфраструктуре CI/CD, лучшие практики автоматизации и т.п.;
  • core языка программирования, указанного в вакансии и всё, что вокруг этого.

Вопросы по автоматизации:

  • Что такое автоматизация и зачем она нужна?
  • Когда нужно начинать автоматизацию на проекте?
  • Какая бывает автоматизация (виды, методы, платформы и т.п.)?
  • Характеристики хорошего автотеста;
  • Паттерны автоматизации;
  • Популярные фреймворки и инструменты автоматизации, запуска тестов и генерации отчетности;
  • Инфраструктура CI/CD, пайплайн, место автотестов в нем;
  • Что следует автоматизировать в первую очередь?
  • Какая тестовая документация нужна для автоматизированного тестирования?
  • Есть новая фича. Расскажи, как будешь тестировать и какие автотесты напишешь.

Вопросы по языкам программирования:

Java:

  • дизайн-паттерны;
  • дата-типы;
  • коллекции, Map...;
  • модификаторы доступа. Public, Private, Abstract классы и методы;
  • Что такое Интерфейс?
  • Что такое лямбда функция?
  • дженерики;
  • коллекции;
  • методы класса object;
  • больше тут или в гугле.

Вопросы общие по типу:

  • Разница между библиотекой и фреймворком?
  • Что означает слово SNAPSHOT в версии библиотеки?
  • Что такое SDK?

Практические навыки:

  • уметь писать код и решать простые задачки (переборы массивов и т.п.);
  • Git;
  • консоль;
  • типовые инструменты для платформы;
  • моки запросов (Swifter/Wiremock);
  • инструменты отчетности (Allure);
  • инструменты CI.

Пример вопросов от кандидата работодателю:

  • Сколько IOS разработчиков в приложении?
  • Сколько Unit Test’ов и сколько UI Test’ов на данный момент?
  • С какой периодичностью запускаются тесты?
  • Какой релизный цикл? Сколько сейчас времени на регресс?
  • Кто добавляет Accebility Identifier’ы в приложение?
  • Какая минимальная версия IOS поддерживается?
  • Сколько времени тратится на сборку приложения локально?
  • Какая система сборки используется на проекте?
  • Автоматизируете ли разрешение конфликтов в project.pbxproj ?

Источники:

Доп. материал: