Ситуация
Вы попали сюда, потому что:
- Сейчас занимаетесь ручным тестированием, чем-то недовольны (понятно чем) и раздумываете, как войти в автоматизацию
- Или вы уже на стажировке и думаете как прокачать свой скилл-сет
- Или всё, что вы можете показать по программированию, это условный сертификат Python на Степике. И вы все равно хотите вкатиться в аутомэйшн. Поэтому вас интересуют инструменты low-code или no-code.
Ок, попробуем обрисовать, как мог бы выглядеть этот вкат, с учетом уровня скиллов, индивидуальных интересов, возраста и опыта.
Выбор инструментов
Давайте сразу договоримся, что всё знать невозможно, то есть что хорошо изучить можно лишь несколько QA-инструментов, а скорее даже один инструмент. Но зато знать его хорошо — на этом и сосредоточить усилия.
Какой «тулз» изучать, зависит от следующего:
- Что вам нравится. Это во первых. Что бы там не говорили — хорошо учится только то, что «хорошо заходит» изначально. К чему у вас есть склонности и способности. Обычно вы это сразу видите. Если «не нра», не нужно себя заставлять.
- Специализация — по заумному называется домен вашей экспертизы.
Область, платформа и тип тестируемого приложения в значительной степени определяют выбор инструмента.
Быстрый пример, если нравится заниматься функциональным тестированием сайтов, то изучать такие инструменты автоматизации Web-интерфейсов как Selenium, Watir, QTP и подобные.
Для мобильных приложений — инструменты Appium, Robotium и подобные.
- Опыт программирования — зависит от того, насколько хорошо вы умеете программировать. И умеете ли вообще. И способны ли научиться. И есть ли для этого время. Существуют инструменты, требующие минимального знания языков программирования (low-code) или вообще не требующие (no-code tools, еще называемые codeless).
Не требующие знания ЯП, по утверждениям их создателей — тем не менее требующие понимания каких-то базовых закономерностей.
Качество этих no-code tools бывает очень разным, некоторые появляются и исчезают, некоторые существуют многие годы. Существуют и может быть даже кому-то помогают вкатиться.
- Платные или бесплатные — Большинство указанных далее инструментов являются бесплатными и с открытым кодом. Но не все. Платные инструменты, как правило, более гибкие в настройке, богаче функционалом, там интуитивный и приятный интерфейс не вызывающий ностальгию по 2007, наглядные репорты и документация, и так далее. Такие стандартные вещи в глобальной QA-индустрии как QTP или Loadrunner являются платными, причём не дешевыми, поэтому даже не все компании могут позволить себе их, не говоря об обычных разработчиках/тестерах.
Исходя из перечисленных факторов, я составил таблицу, которая должна помочь сориентироваться в инструментах.
Дисклеймер
Примечания. Наверное, не все приведенные автором инструменты — стопроцентно релевантны. Некоторые вообще малоизвестны в РФ (да чё уж, 99% читающих эту статью некоторые инструменты увидят впервые в жизни). У автора статьи, Kuldeep Rama, который is the founder and lead author of ArtOfTesting — «глобальное» видение, рассчитанное на широкий круг читателей от США и Европы до Индии и Ближнего Востока. Некоторые платные инструменты будут релевантны наверное только для релокантов. И это при наличии чудесных бесплатных аналогов. По некоторым инструментам вообще вопрос, нужны ли они там в таблице. Тем не менее, таблица вполне себе универсальная, очень даже полная, и позволяет сориентироваться по крайней мере в основных QA-инструментах. И сопоставить с ними свои скиллы ЯП, реалистично оценивая свои возможности.
Большинство инструментов бесплатные, интуитивные, и не требуют особых способностей чтобы научиться с ними работать. Тем более при наличии огромного количества текстовых и видео-туториалов.
- Кстати о языках. Незнание или неуверенное знание языков программирования, скорее всего, придется компенсировать усиленным изучением — языка английского. Это «окольный» путь, но он работает.
Ну, а если и с этим всё плохо, то единственный выход остается следующий — прокачивать софт-скиллы к уровню «бог» и искать стажировки. Вполне рабочий вариант, по крайней мере по отзывам прекрасной половины QA-сообщества в тг-каналах.
И, может быть, со временем подыскивать себе опытного ментора. Который как-то сумеет подобрать вам индивидуальный ключ к Automation.
Таблица QA-инструментов
Чем НРАВИТСЯ заниматься и что должно хорошо получаться (желаемая специализация в QA Automation) | Если достигнут хотя бы средний уровень скиллов программирования | Минимальный уровень ЯП или близкий к нулевому (и сейчас нету времени этим заниматься) |
---|---|---|
Тестирование веб-интерфейсов на сайтах (Website UI) | Selenium (бесплатный)-Языки — Java, PHP, C#, Python, Groovy, Ruby и Perl. Предпочтительный вариант, в 99,999% случаев. Watir (бесплатный)-Языки — только Ruby. В РФ малопопулярен. QTP (платный)-Языки — VB script Telerik (платный)-Языки — C# и VB [там целое семейство инструментов этой компании] | Sahi (есть платная и бесплатная версия)-Язык — Javascript [прим.: что-то специфическое, но можно пробовать] Tellurium (бесплатный)-Язык- упрощенный инглиш наподобие Gherkin [прим.: а вот это внешне кажется вполне неплохим вариантом для новичков.] TestComplete (платный)-Возможность «учиться программированию» перетаскиванием мышкой; Python, JavaScript и VB.NET |
Тестирование мобильных приложений под Android | Appium (бесплатный)-Языки — Java, Ruby, C#, Python Предпочтительный вариант. Здесь базовый гайд. Robotium (бесплатный)-Языки — Java [тоже неплохо]Selendroid (бесплатный)-Selenium for Android.Языки — Java [прим.: проект подзаброшен, но пока еще живой; для новичка может и сгодится] MonkeyRunner (бесплатный)-Языки — Jython, реализация Python в Java [прим.: немного специфичная штука, выше есть варианты получше; но если понравился — ок] | Ranorex (бесплатный)- вполне неплохая платформа для старта.Языки — скрипты на C# и VB, визуальный конструктор (перетаскивание мышкой) EggPlant (платный)-Языки — SenseTalk (English-like). [прим.: тоже специфичная вещь, но м.б., кому-то зайдёт] |
Тестирование мобильных приложений для IOS | Тоже Appium -Языки — Java, Ruby, C#, Python. Предпочтительный. Frank (бесплатный)-Язык — Gherkin-подобный (конструкции типа Given-When-Then) | Ranorex — как и для Android, см. выше EggPlant — тоже |
Тестирование SOAP | SoapUI (бесплатный, платная версия новичку не нужна)-Языки — Groovy, Javascript. Предпочтительный вариант для 99,99%. Наш полный гайд по SoapUI. Самый полный, самый годный гайд по SoapUI в русскоязычном интернете (по крайней мере с точки зрения Google и Яндекса) | TestingWhiz (платный)-Языки — Не требует знания ЯП для написания скриптов SOAPSonar (платный)-Языки — Не требуется знание ЯП Storm (бесплатный)-По отзывам на форумах, это была отличная вещь, по функциональности сравнимая с SoapUI, при том что бесплатная, very nice tool written in F++, alas last released in 2008. Works for 90% of my cases. К сожалению уже даже китайский сайт недоступен. А вообще, co-code tools, в случае с тестированием такой сложной области как SOAP или REST — это изначально как-то очень неправильно, это кривой путь в автоматизацию. |
Тестирование REST API | Rest-assured (бесплатный)-Языки — Java И здесь наш большой гайд. Предпочтительный вариант. HttpMaster (бесплатный)-Языки — Java. Тоже годится, но Rest Assured — неформальный стандарт в этой области. А другие — дополнение. | vREST NG (платный)-.Языки — нет; Запись и воспроизведение действий; позиционируется как полный no-code-tool, но… см. выше. |
Тестирование десктопных приложений | AutoIT (бесплатный)-Их внутренний ЯП (похожий на BASIC). Личное мнение: это простая штука для входа, но зачем учить ЭТО, если есть Python или JS или Java? Winium (бесплатный)-Языки — Java, Objective-C, JavaScript с Node.js, PHP, Python, Ruby, C#, Clojure, Perl.Обзор на Хабре. | Ranorex (бесплатный)- годится, см. выше. Sikuli (бесплатный)-Языки — Распознавание изображений (Image-based recognition) с помощью Jython (Python для Java-платформы). Довольно известная в мире вещь, в России непопулярная. |
Тестирование производительности | JMeter (бесплатный)-Языки — рекомендованы Groovy и Java. Поддерживается Drag & Drop, запись и воспроизведение. Неформальный стандарт, отпетлять от изучения не удастся. Предпочтительный вариант. Grinder (бесплатный)-Языки — Jython и Clojure Gatling (бесплатный)-Языки — Вообще рекомендован Scala. Но разумеется никто учить его не будет, а сойдет Java или Kotlin. | JCrawler (бесплатный)-Языки — декларируется “Не требует использования скриптов на ЯП” OpenWebLoad (бесплатный)-Языки — аналогично. Примечание. Тестирование производительности, судя по открытой статистике, и по тому что публикуется в тех же джоб-каналах в ТГ, это +- самая высокооплачиваемая специализация в QA. Но даже для стажеров требования к Performance Tester очень высокие. Понятно, что вряд ли т.н. no-code-monkey удастся нормально вкатиться в эту сложнейшую сферу без серьезного изучения ЯП. |
Как ускориться
- Планирование — После выбора инструмента составьте план его изучения и найдите онлайн и офлайн-ресурсы для его изучения.
- Составьте график изучения — в учебе огромную роль играет регулярность. Составьте личный график, удобный вам. И отмечайте свой прогресс (так называемые майлстоуны, знаковые достижения) на своем таймлайне.
- Практика — вдумчиво читать учебники это хорошо, но этого мало, старайтесь сразу же отрабатывать каждую команду/функцию на практике. Большинство книг и туториалов в Интернете идут с примерами кода — пользуйтесь.
- Смотрите скрипты из чужих реальных проектов — Существует разница между примерами скриптов, которые мы видим в туториалах, и скриптами в реальных проектах. Поэтому старайтесь получить реальный опыт из первых рук. Вникайте в эти скрипты. Старайтесь понять, почему то-то и то-то сделано именно так, а не по другому. Спрашивайте, почему.
- Зарегистрируйтесь наконец на ГитХабе — и понемногу пилите там свой личный Automation-проект. Или, если сейчас вы Manual, пытайтесь автоматизировать свои операции, а код на GitHub.
***