Тестировщик на python или java что выбрать
Перейти к содержимому

Тестировщик на python или java что выбрать

  • автор:

Java против Python: что лучше для тестирования?

Play video

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

Python упрощает процесс написания кода, не требуя строгой типизации и допуская упрощенные структуры программ.

Философия простоты Python и простота его реализации способствуют его широкому внедрению и популярности среди разработчиков и тестировщиков.

Отсутствие явной инкапсуляции в Python может привести к путанице и затруднить программистам назначение закрытых методов.

Summarize any YouTube video by yourself

Download on the App Store

Desktop options: Safari Chrome

Summarize any YouTube video by yourself

Other options: iOS App Chrome

Summarize any YouTube video by yourself

Other options: iOS App Safari

Сложность изучения Python не обязательно означает, что вы не сможете работать с другими языками программирования, такими как Java, поскольку программирование само по себе является сложной задачей.

Тестовый фреймворк «byte» рекомендуется за его мощность, легкость, удобство и практичность при создании фреймворка для тестировщиков.

Python — самый любимый язык программирования для выступающих из-за его простоты и увлекательности.
Просмотреть больше Оптимизация YouTube

  • Зачем нужна Scala, когда есть Java 21 — Тинькофф ИТ-фест
  • Flutter Quick Tip: Using the «mounted» property | Flutter Developers must Know
  • JavaScript для начинающих 2023. Полный курс за 6 часов. Уроки. Теория + практика

Python или java?

  • Members
  • PipPipPip
  • 205 сообщений
    • ФИО: Макс
    • Город: Екатеринбург

    Отправлено 31 января 2014 — 12:02

    Какой язык выбрать для написания автотестов: Python или java?

    Специфика ситуации коротко: продукт и разработчики на питоне, автотесты и инфраструктура на яве.

    Подробно:
    Аргументы за python:
    — Мои программисты пишут на python — и в случае выбора этого языка готовы помочь
    — Мой продукт написан на python
    — Мне полезно изучить python
    — У меня сложилось мнение, что python предпочтительней в случае небольших проектов и высокой скорости разработки

    Аргументы за java:
    — Существующая инфраструктура тестирования (CI, selenium grid итпх) и ее автотестеры используют java.
    — На java есть откуда копипастить куда обращаться за решениями по кодированию именно автотестов (пользуясь случаем, передаю привет)
    — Я уже писал автотесты на java
    — WebDriver первыми выпускает обновления для java и вообще лучше работает с этим языком (тут я могу и ошибаться)
    — Лично мне больше нравится java (а тут я могу и передумать)

    Аргументы отсортированы по весу, первыми — самые значимые.

    Стратегически правильным считаю выбор питона, так как программисты совместно со мной будут владеть кодом, помогать, в перспективе — самостоятельно чинить и даже писать тесты. В случае java они этого делать точно не будут.

    В противовес: java может быть не пожеланием, а требованием инфраструктуры автотестирования. Создавать собственную (да еще параллельно с существующей), с серверами, гридом и прочим — глупо, долго, геморно.

    Мое слово — не последнее, но кино будет именно моим, хотелось бы запастись аргументами.

    Автоматизация тестирования: Java или Python?

    Всем привет! В марте OTUS запускает сразу два курса по автоматизации тестирования: «Python QA Engineer» и «Java QA Engineer». У нас часто спрашивают, какой из этих курсов выбрать, ответить на данный вопрос мы решили переводом статьи от компании SafeBear.

    Один из самых популярных вопросов звучит так:
    Какой курс мне лучше пройти: по автоматизации тестирования на Python или по автоматизации тестирования на Java? И почему у нас есть курсы на обоих языках?

    Первое и самое важное, о чем нужно сказать: не имеет значения, на каком языке вы проводите автоматизацию.

    Приложение, которые вы хотите протестировать может быть написано на Java, Python, C#, Assembly, Scala или на любом другом доступном языке программирования. Фреймворки для автоматизированного тестирования на Python будут автоматизировать ручные тесты ничем не хуже фреймворков на Java. Когда речь заходит об автоматизации графического интерфейса, нет разницы на каком фреймворке вы проводите тестирование.

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

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

    Python идеален

    Плюсы

    Автоматизирует ваш мир, а не только ваши тесты. Трудно встать на путь тестировщика не зная Python. Если и есть такой язык, который нужно знать, чтобы уметь автоматизировать ВСЕ, то это определенно Python. Вы можете автоматизировать разворачивание окружения, использовать его для сканирования портов или проводить тестирование на безопасность, для CI он незаменим. Python станет вашим другом, к которому вы будете обращаться за помощью снова и снова.

    Коротко и просто. По сравнению с нагруженным синтаксисом Java его до смехотворного просто использовать и читать. Кроме того, известный факт, что на одну строку на Python приходится 10 строк на Java.

    За вас уже все сделали. Множество других людей используют Python по той же причине, что и вы, из этого можно сделать вывод, что кто-то уже написал код, который вам нужен, а вы можете просто его импортировать.

    Обучение и поддержка. В интернете можно найти кучу обучающих и полезных материалов. В целом, люди пришли к мнению, что материалы по Python понятнее, чем по любому другому языку.

    Минусы

    Боль с IDE. Python создавался, чтобы быть простым, универсальным и давать возможность писать скрипты прямо из интерпретатора, поэтому он не так хорошо ладит с IDE, как та же Java. Он настолько простой и универсальный, что IDE не может понять, что вы делаете, когда начинаете создавать объекты и передавать их между методами. Это неприятная особенность, которая может сыграть свою роль, если вы действительно захотите использовать IDE для создания своего фреймфорка.

    Поддержка в офисе. Иногда лучше иметь локальную поддержку. Если у вас в коллективе никто не знает Python, то получить неотложную помощь в решении возникающих вопросов будет не от кого.

    Java – это то, что нужно!

    Плюсы

    Прекрасные IDE. Одно удовольствие писать на Java в такой среде, как например, IDE от IntelliJ. IDE выполняет за вас большую часть работы, даже беря на себя боль от сложного синтаксиса. Функции по автодополнению кода сделают за вас огромное количество работы, пока вам будет казаться, что вы набрали на клавиатуре всего пару символов.

    PageFactory. PageFactory в Java упрощает код для автоматизации на Selenium и позволяет писать простые для понимания тесты.

    Домашняя поддержка. Большинство тестировщиков работает с Java-разработчиками. Если вы с чем-то застрянете, через пару столов от вас всегда будет кто-то, кто протянет вам руку помощи. Это очень помогает на кривой обучаемости, и дает вам преимущества знаний и опыта ваших коллег. Не успеете оглянуться, как станете профессионалом.

    Минусы

    Абракадабра. Непросто читать код на Java по сравнению с простым английским Python. А еще у Java очень крутая кривая обучаемости, и документация оказывается не всегда полезной. Однако помощь по многим вопросам можно найти онлайн (например, на Stack Overflow).

    Боль c null pointer. Когда Java выдает вам сообщение об ошибке и выводит stack trace не всегда просто понять в чем дело, и порой эта информация оказывается бесполезной. IntelliJ помогает там, где может, но непонятные сообщения об ошибках могут превратить дебаг в полнейшее расстройство.

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

    На этом все. Надеемся теперь вам стало немного проще определиться с тем какой все же курс выбрать, а для закрепления выбора приглашаем вас на бесплатные уроки по курсам:

    • Блог компании OTUS
    • Тестирование IT-систем
    • Тестирование веб-сервисов
    • Тестирование мобильных приложений

    Языки программирования, которые тестировщик обязан знать

    языки программирования тестирование

    Язык программирования для QA: мучительные вопросы и быстрые ответы

    Тестировщик, претендующий на высокую зарплату и продвижение в должности, обязан иметь профильные технические знания и навыки. Языки программирования для тестировщика — это первое, и видимо главное. Тестировать интерфейс (или подобные простые задачи) еще допустимо без владения ЯП; что-то посложнее вряд ли получится; практически нереально работать в автоматизации тестирования без знания языков программирования (особенно касается тестирования API, баз данных и микросервисов — а это сейчас востребовано). Тестировщик-автоматизатор по умолчанию должен владеть каким-то языком программирования; причем, как убедимся далее, он должен им владеть на довольно-таки высоком уровне. И этот требуемый уровень растет с каждым годом.

    К счастью, рабочие языки тестировщика все еще традиционные, давно существующие, и — как хорошо — есть много хороших туториалов и книг. (А также телеграм-каналов). Итак, попробуем разобраться, какова сейчас ситуация с языками программирования в QA.

    HTML

    Да, старый-добрый язык разметки, без которого невозможна любая страница в интернете. (Хотя HTML не является, в строгом понимании, языком программирования).

    HTML в визуально удобном формате отображает текст, рисунки, и фото/видео. Можно гарантировать, что связка HTML c JS-скриптами и в ближайшие годы будет главной вещью в веб-разработке (а значит и в веб-тестировании). Поэтому, если не в курсе, что такое ,

    , , — с трудоустройством будет худо.

    Если ты wannabe-тестировщик и (удивительно) не знаешь HTML, советуем начать с [самого популярного в мире пути] туториала по HTML на W3Schools (на русском есть отличный справочник на htmlbook.ru).

    Туториал на английском, там же и видео-туториалы (заодно и английский подтянешь, что тоже должно помочь в трудоустройстве).

    Да, и CSS

    В дополнение к HTML, wannabe-тестировщику надо знать и CSS. Это тоже считается, в некотором роде, языком программирования. CSS-стили есть на каждой странице, которая будет тестироваться.

    Таблицы стилей украшают HTML, который сам по себе, в общем-то, «бедноватый». Создание CSS 25 лет назад должно было «логически разделить контент и его отображение». Практически каждая веб-страница построена на CSS-стилях, и что это дает: удобочитаемое форматирование, реюзабельность, упрощение работы с десятками, сотнями и тысячами страниц на сайте, кэширование стилей, а значит ускорение загрузки.

    Если катастрофически нет времени нырять в глубины CSS и разбираться, то здесь удобный список самых важных стилей; этого по идее хватит для самого базового уровня (стажер).

    JavaScript

    А теперь переходим к настоящим, серьезным языкам программирования. И JavaScript главнейший язык для веб-тестировщика. Веб-программирование (а значит и веб-тестирование) немыслимо без знания JS.

    97% сайтов в интернете применяют JS. Практически каждый крупный сайт использует какую-то JS-библиотеку для расширения функциональности. Самого по себе JS, скорее всего, достаточно для стажера, но уже как-то выглядит маловато для продвижения к junior+/middle; очень желательна отдельная как бы «специализация», и как можно раньше. Тестировщик, умеющий в React, или Ember.js, или Vue.js, или AngularJS, или Node.js, будет отмечен уже на этапе собеседования, и может планировать карьерные перспективы.

    В практическом рассмотрении, JS нужен тестировщику потому что на нем пишутся тесты веб-приложений. Распространенные тестовые фреймворки = тесты на JavaScript: Mocha, Jasmine, Nightwatch, и конечно Selenium, также Protractor, Puppeteer и другие вещи которые надо будет освоить.

    Java

    За последние 30 лет исчезли десятки интересных перспективных языков программирования (их таковыми считали — ошибались). «Жабе» повезло, у нее была поддержка крупнейшей мировой корпорации. В этом году Java все так же в топах самых популярных языков программирования. Несмотря на молодых-зубастых конкурентов Kotlin/Dart и прочие хайпы, старая-добрая Java кажется все еще официально основной язык программирования на самой популярной мобильной платформе Android. И все так же актуален огромный (и очень хорошо оплачиваемый) корпоративный сегмент программирования на Java (и, следовательно, тестирования). Также, веб-серверы, веб-приложения, даже иногда мобильные игры все еще пишутся на стабильной, хоть и громоздкой и медленной Java. Кроссплатформенность и универсальность, от глобальных корпоративных вещей — и вплоть до запуска на Raspberri PI, это то что держит Java на плаву.

    Необходимо знание хотя бы базовых конструкций Java тестировщику, работающему с Selenium (скорее всего, работать тебе придется именно с Selenium в любом случае, вероятность 90%). Мощные современные фреймворки автоматизации — без знания Java? Найти работу QA в крупной перспективной компании, без Java? Вряд ли!

    Python

    Читабельность кода (особенно если в команде много стажеров взяли с курсов ) — это Python. Изначально ориентированный на читабельность, позволяет быстро писать код, дружелюбное к новичкам коммьюнити с бесплатными советами, ну и главное: прост в изучении. Проще, чем другие ЯПы.

    Тестировщик, знающий Python, будет работать в Robot, PyTest, или PyUnit — фреймворках автоматизированного тестирования.

    Если уровень Python = 0, есть два пути. Первый: хайповые (бестолковые) туториалы на Ютубе «Как научиться программировать на Python за 6 часов», заодно изучая хинди. Путь второй: начать знакомство с языком с «fundamentals», получив благословление непосредственно от создателей и хранителей Python: вот здесь.

    Ruby

    Своеобразно красивый, лаконичный, элегантный Ruby пережил взлет и падение. Но не исчез с радаров — хотя времена всеобщего хайпа давно прошли. Достаточно нишевый и при этом высокооплачиваемый ЯП, в том числе что касается тестирования.

    При создании Ruby был фокус на простоте и продуктивности:

    most demanded programming languages

    Однако, здесь издалека виден большущий подводный камень. JS очень непросто выучить, даже на курсах, не говоря уж о том чтобы выучить самостоятельно. На это потребуется примерно от полугода до года — имеется в виду уровень «прошел собеседование Junior QA«.

    Из видимых плюсов: когда возникнут проблемы (а они возникнут!), практически всегда можно полагаться на помощь комьюнити, оно самое крупное и развитое (в том числе русскоязычное).

    Минусов полно, есть вещи, отравляющие жизнь тестировщика-новичка. Например такой. JavaScript, в общем-то, «древний» язык, с 25-летней историей, и он все время «строился и достраивался» чтобы обеспечить обратную совместимость, то есть код, написанный 25 лет назад, по идее должен работать и на современных браузерах; поэтому в JS много «артефактов», усложняющих изучение. Код на JS не очень удобно читается и визуально утомляет новичков. Самые опытные проджект-менеджеры и лиды, если у них есть выбор, стараются по возможности минимизировать количество автотестов на JS, чтобы не иметь дела с «монструозным» (цитата) количеством ошибок которые возникают просто из-за специфики JS.

    При всем при этом, объективно, в веб-разработке без JS не обойтись, как-никак это стандарт, и это надолго! Язык непрост в изучении — но крайне востребованный, количество вакансий по запросу QA+JS впечатляет (особенно вакансий за рубежом!), поэтому для тестировщиков-стажеров, овладевших JS на приличном уровне, работа должна быть, если не в России, то уж точно за ее пределами.

    Что лучше, Java, JS или Python? график

    Most demanded programming languages - TIOBE

    Опрос разработчиков — Предпочитаемый язык — август 2022. Выделены: Python-Java-JS-C#. Данные TIOBE.

    Как видим, среди разработчиков безусловно лидируют Python и Java.

    Может быть и так: не по нраву ни JS, ни Python; точнее, не считаешь внятными перспективы трудоустройства; тогда твой вариант — Java. Серьезный, основательный, корпоративный язык программирования, хорошо оплачиваемый в QA, не говоря о разработке.

    • У этого языка есть столь же серьезные ответвления в виде Scala, Groovy и Kotlin, работающие на виртуальной машине Java, и как бы «продолжающие те концепции», вокруг которых когда-то строилась Java, и в какой-то мере закрывающие ее недостатки; если удалось освоить Java, то можно пробовать перейти еще выше, с гарантированным финансовым улучшением.

    Для Java существует огромное количество качественной переводной литературы (ориентированной на самообразование); солидное и доброжелательное комьюнити; а далее конференции, курсы реквалификации, оплачиваемые работодателем; в общем, есть куда расти, если выбрал Java.

    • Для тестировщиков (и тестировщиц!) известной возрастной категории «за 30» или «за хх лет», которые сумели освоить Java на (очень) высоком уровне, и которым не интересно мобильное программирование/QA и другие области применения Java с высоким темпом разработки — есть вполне реальные варианты перейти в промышленное программирование/QA, и подобные, более «спокойные», при этом высокооплачиваемые области ИТ.

    Учить языки программирования на курсах или самостоятельно?

    Хороший вопрос. Дело в том, что самостоятельно выучить язык программирования до уровня «прошел собеседование и работаю, удержался» — объективно, на это способны немногие.

    Как показывает опыт, успешно проходят собеседование на стажера/джуниора, после самостоятельного изучения ЯП:

    • Люди с очень крепким физ-мат бэкграундом (по предыдущей работе либо учебе).
    • Особенно выпускники школ/университетов соответствующего профиля. Обычно они из городов-миллионников. Полученные в юности знания не утеряны, или постоянно подкреплялись на работе, имеющей отношение к.
    • Или до крайности дисциплинированные, усидчивые, упрямые люди из провинции.
    • Или, случаются воистину всесторонне одаренные уникумы, которым легко дается практически любая сфера человеческой деятельности. В том числе ИТ/QA.

    Самостоятельное изучение ЯП вполне возможно и очень даже реально; это не ядерная физика и не высшие сферы математики. Это один из видов инженерии, прикладная вещь. Нужно освоить инструмент, и многие люди его осваивают самостоятельно.

    Но в целом люди так устроены, что примерно 80% их, изучая что-то новое, объективно, не способны обойтись без «наставника». Который, имея опыт преподавания, направляет прогресс ученика, с учетом его индивидуальных особенностей, знает подводные камни, которые отнимают уйму времени у неопытного человека. Вряд ли «гугол» и «яндекс» помогут во всех возможных ситуациях. Изучая ЯП самостоятельно, нужно быть готовым к тому, что этот процесс может оказаться значительно дольше, чем при посещении курсов. То есть, выучить-то можно, сколько времени на это уйдет? Год, два — а сейчас это кому-то кажется критичным. Поэтому вопрос «Идти ли на курсы?», в принципе, не стоит примерно для 80% людей — однозначно идти.

    Не стоит недооценивать и такую вещь, как гарантированное трудоустройство, предоставляемое лучшим ученикам.

    Не потеряю ли время на изучение неперспективного языка?

    Вопрос: « — А если я начал учить какой-то язык чтобы войти в ИТ через тестирование, а на собеседовании мне сказали, что язык ХХХ не нужен, что делать? Не потеряю ли время на изучение неперспективного языка, как мне кажется, в данное время и в данном месте?».

    Ответ: Ничего не пропадет, и знания никуда не денутся. Особенно знания алгоритмов, управляющих конструкций (которые в общем-то универсальны); навыки обращения с данными (хотя бы массивы и списки), и главное — опыт решения задач. Если есть уверенное знание какого-то ЯП, то потом учить другой ЯП существенно легче.

    Но есть нюансы, об этом следующий пункт.

    Язык программирования SmashTest — это что? Стоит внимания?

    Вряд ли. Во первых, он, мягко говоря, не очень распространен (хоть и активно продвигается). О нем говорят как о «языке для самых быстрых тестов» и он даже что-то демонстрирует в этом плане. Предназначен в основном для тестирования API и UI, поддерживает параллельное тестирование. Нужен Selenium WebDriver. Довольно удобные репорты. Язык выглядит достаточно простым для новичка. Однако, все плюсы перекрываются одним жирнейшим минусом — в QA-автоматизации уже сложилось применение большой тройки Python/Java/JS; эти языки хорошо оплачиваемые, опыт в тестировании на этих языках можно конвертировать переходом в разработку; так что не стоит терять время на изучение тупикового SmashTest. Лучше сосредоточиться на изучении языка из «первого ряда». То есть перечисленных выше ЯП.

    Можно ли, изучив ЯП, из QA перейти в разработку, и легко ли это сделать?

    Можно, но уже не легко. Дело в том, что такой способ «войти в айти с черного входа» был очень популярен в прошлые годы, примерно 2016-2021. Множество людей шли (правильнее сказать, «перли») в QA именно с такой целью, создавая нездоровый хайп, как считали многие.

    Кстати, именно поэтому вакансий Junior QA в действительности намного больше чем кажется — просто эти вакансии не публикуют. Предпочитая самим искать людей, перелистывая резюме. UPD 2023: благо, выбор огромнейший — тысячи человек на место.

    Что тут можно сказать? Наверное, все-таки лучше изначально не иметь иллюзий — и с самого начала задаться целью стать хорошим тестировщиком, и никем другим (пока). Имея соответствующие способности, и при должной дисциплине — этого будет достаточно, чтобы найти работу стажером/жуниором в QA.

    Для этого придется серьезно изучать ЯП — и также тестовые фреймворки (Selenium), и теорию QA, и сложившиеся лучшие практики. Устроившись в QA-отдел, хотя бы стажером, можно не спеша прокачивать свои навыки, в рамках должностных обязанностей; помня, что очень хороший QA-автоматизатор с опытом (например 1-2 года) может зарабатывать существенно больше, чем junior-программист и тем более стажер-программист [UPD 2023: так было в те годы, удивительно выглядит сейчас.] А потом, когда придет твое время, и уровень ЯП будет достаточным, перейти в разработку, если уж так хочется!

    Кстати, не факт, что захочется — потому что, помимо разработки (которую многие считают скучным занятием) для хорошего тестировщика с опытом 3…5 лет появится множество карьерных вариантов: DevOps, тест-архитектор, проджект-менеджер, продакт-менеджер, в конце концов QA-лид.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *