ru:https://highload.today/blogs/glavnoe-ponyat-osnovy-dalshe-budet-legche-skolko-yazykov-programmirovaniya-nuzhno-znat-testirovshhiku/ ua:https://highload.today/uk/blogs/golovne-zrozumiti-osnovi-dali-bude-legshe-skilki-mov-programuvannya-potribno-znati-testuvalniku/
logo
Вопросы      02/06/2022

«Главное — понять основы, дальше будет легче»: сколько языков программирования нужно знать тестировщику

Сергей Могилевский BLOG

QA Team Lead и TechLead в NIX

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

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

На IT-конференции NIX MultiConf я рассказывал о программировании как об одном из возможных инструментов для QA-инженера, а теперь готов поделиться своим опытом с читателями Highload.

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

Если я QA, то зачем мне глубоко погружаться в программирование?

Освоение любого языка поможет вам разобраться во всех базовых концептах программирования — переменных, типах данных, циклах, условных операторах, объектах и ​​т.д.

Это замечательная точка входа в автоматизацию тестирования, а отсюда совсем недалеко до более сложных умений вроде чтения кода разработчиков.

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

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

Окей, но неужели одного языка хватит?

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

Большинство языков создано по одному лекалу. Базовые концепты везде одинаковы, отличаются только синтаксис и минорные моменты. В любом языке переменные останутся переменными, циклы — циклами, а классы — классами.

Курс UX/UI дизайнер сайтів і застосунків з Alice K.
Курс від практикуючої UI/UX дизайнерки, після якого ви знатимете все про UI/UX дизайн .
Реєстрація на курс

И да, я понимаю, что если вдаваться в подробности, то низкоуровневые концепты того или иного языка будут заложены разные. Но для рядового QA-автоматизатора, уверен, мои тезисы будут актуальны.

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

Среди самых популярных сегодня — Java, Python, JS, C#, а меньше всего — Ruby и Groovy.

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

Мой совет прост: берите любой язык, который вам нравится, и осваивайте базу.

Когда QA может потребоваться знание еще одного языка программирования?

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

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

Требования клиента

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

Онлайн курс з промт інжинірингу та ефективної роботи з ШІ від Powercode academy.
Курс-інтенсив для отримання навичок роботи з ChatGPT та іншими інструментами ШІ для професійних та особистих задач, котрі допоможуть як новачку, так і професіоналу.
Записатися на курс

Специфика проекта

Бывает и такое, что вы заходите на проект, а вокруг уже происходят давно настроенные процессы, которые нельзя изменить. К примеру, помимо основной автоматизации команда привыкла делать небольшие автотесты в Postman для точечных проверок, а в нем можно писать скрипты только на JavaScript. В таком случае просто присоединяемся к команде и бежим в одном темпе.

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

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

Да, сначала это может быть обременительно, но если все сделать правильно, то помощь девелоперов быстро окупит всю изначальную боль.

Кроме этого, в проекте могут использоваться специфические технологии, которые не удастся тестировать на каком-либо языке. К примеру, существует протокол передачи данных MQTT. Для простоты можем назвать его аналогом HTTP, но с некоторыми оговорками и юз кейсамиUse Case описывает сценарий взаимодействия участников (как правило, пользователя и системы), специфическими для IoT.

Если вам понадобится писать перформанс-тесты для MQTT, вам не подойдет какой-либо перформанс-инструмент. Придется брать один из популярных, в котором необходим инструментарий. К примеру, для Jmeter есть такая библиотека, пусть и с ограниченным функционалом. Или можете использовать один из инструментов, который создавался специально для тестирования MQTT:

В противном случае вы просто не сможете выполнить поставленную перед вами задачу.

Курс Розмовної англійської від Englishdom.
Після цього курсу ви зможете спілкуватись з іноземцями і цікаво розкажете про себе.
Приєднатися

Особые задачи

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

Предположим, вам необходимо прочесть/поправить тестовый код, написанный другими командами с использованием другого набора технологий. Иногда нужно побыть первопроходцем и изучить какой-нибудь новый инструмент, чтобы сказать, будет ли он полезен на вашем проекте. В этом случае успех может означать ввод этого инструмента в обращение всей команды.

Необходимость читать девелоперский код

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

Главное понять основы программирования. А дальше любой язык легко будет выучить

Программирование – это набор концептов. Как только вы ими овладеете, вам будет не сложно «натянуть» на этот концепт конкретную имплементацию в виде языка программирования, библиотеки или фреймворка. Это подобно тому, как мы учимся кататься на велосипеде. Вот 5 минут назад ты еще неловко, подталкивая себя ногой, пытаешься на завалиться на бок, а теперь уже относительно быстро едешь, пытаясь научиться поворачивать, тормозить и объезжать прохожих.

Знаете это ощущение, когда учишься, и вдруг все становится ясно и все выходит? В голове будто что-то щелкает.

Буквально это же случилось и с моим умением программировать еще в университетские годы. Поначалу мне многое давалось нелегко. В первый год обучения на программировании я не понимал и половины того, что мне говорил преподаватель. Но впоследствии я перестал думать о том, «как ехать на велосипеде», и получил возможность овладевать более сложными конструкциями и умениями. Когда-то сначала хитроумная для меня теория упорядочилась и стала понятна.

Инженерный подход к задачам автоматизации — это ключ к решению любого таска.

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

Если вы уже изучаете программирование, но видимых успехов пока нет, возможно, вы уже в нескольких шагах от того же «щелчка в голове». Просто не останавливайтесь. Упорство — это то, что сделает из вас профессионала в будущем.

Курс Project Manager від Powercode academy.
Онлайн-курс Project Manager. З нуля за 3,5 місяці до нової позиції Без знання коду, англійської та стресу.
Зарееструватися

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Бізнес англійська від Englishdom.
Тут навчають за методикою Кембриджу, завдяки якій англійську вивчили понад 1 мільярд людей. Саме вона використовується в найкращих навчальних закладах світу, і саме за нею створені курси.
Інформація про курс

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров марта

PHP Developer в ScrumLaunch
Всего просмотровВсего просмотров
2229
#1
Всего просмотровВсего просмотров
2229
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсего просмотров
111
#2
Всего просмотровВсего просмотров
111
Career Consultant в GoIT
Всего просмотровВсего просмотров
93
#3
Всего просмотровВсего просмотров
93
CEO & Founder в Trustee
Всего просмотровВсего просмотров
92
#4
Всего просмотровВсего просмотров
92
Рейтинг блогеров

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: