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, то зачем мне глубоко погружаться в программирование?

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

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

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

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

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

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

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

Курс English For IT: Communication від Enlgish4IT.
Почни легко працювати та спілкуватися з мультикультурними командами та міжнародними клієнтами. Отримайте знижку 10% за промокодом ITCENG.
Інформація про курс

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

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

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

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

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

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

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

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

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

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

Онлайн-курс "Корпоративна культура" від Laba.
Як з нуля побудувати стабільну корпоративну культуру, систему внутрішньої комунікації та бренд роботодавця, з якими ви підвищите продуктивність команди, — пояснить HR-директор Work.ua.
Детальніше про курс

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

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

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

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

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

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

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

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

Онлайн-курс "Створення текстів" від Skvot.
Великий практичний курс для розвитку скілів письма та створення історій, які хочеться перечитувати Результат курсу — портфоліо з 9 робіт та готовність братися за тексти будь-яких форматів.
Детальніше про курс

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

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

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

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

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

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

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

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

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

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

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

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

Практичний інтенсивний курс з дизайну - Design Booster від Powercode academy.
Навчіться дизайну з нуля за 3 місяці і заробляйте перші $1000, навіть якщо ви не маєте креативного мислення, смаку або вміння малювати. Отримайте практичні навички, необхідні для успішної кар'єри в дизайні.
Зарееструватися

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

Онлайн-курс "Чистий код та патерни проєктування" від robot_dreams.
Прискорюйте й спрощуйте процес розробки.Під менторством лектора з 15-річним досвідом ви навчитеся застосовувати 20+ шаблонів, опануєте рефакторинг і принципи чистого коду.
Детальніше

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

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

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

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

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

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