Нужен ли линукс тестировщику

Обновлено: 05.07.2024

Почти год назад я спрашивал мнения у вас, ребята, по поводу профессии тестировщика. Было много дельных советов, и не очень, но все они были полезны в коей-то мере. И вот, я уже ровно 7 месяцев как тестировщик. Возможно, что кому-то будет полезен пост. Вероятно, что именно ты задумываешься о том, чтобы начать строить карьеру в тестировании, но пока обременён другими заботами. Я постараюсь максимально простым языком поделиться своим скромным опытом, и возможно, повлиять на твоё решение в вопросе "хочу ли я быть тестировщиком?".В общем, заваривай чайку, хватай печенюги и усаживайся поудобнее. А я беру бокал креплёного и начинаю.

Войти в Ай-Ти или хлопоты "входа"

Немного цифр. После окончания универа по профилю "Энергетика" я уже окончательно для себя решил, что хочу быть тестировщиком. У меня всегда была тяга к тому, чтобы всё, чем я пользуюсь было идеальным + большое увлечение компами и еже с ними. Небольшой опыт кодинга (говно-кодинга) в конце 10-11 класса школы и первых курсов универа, но со временем всё забылось. После получения заветной корочки и месяца беспросветных кутежей, я составил резюме и начал шерстить вакансии на хх. И вот, первый отклик. Мне выслали тестовое задание, с ним я к сожалению не справился. Как говорится, первый блин комом. Затем почти один за одним были еще 3 ответа к моим откликам. Каждая компания высылала тестовое задание, которые я уже успешно выполнил и впереди у меня состоялись 3 первых в моей жизни собеседования. Первые два я успешно провалил, а на третьем, уже имея некоторый опыт в общении с HR и тестировщиками, успешно его прошел. Спустя приблизительно неделю в один жаркий летний день мне позвонили и сообщили, что с 1 сентября я выхожу на работу. Это была моя маленькая победа. К слову, я даже рад, что в предыдущие места меня не взяли, но об этом дальше.

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

Испытательный срок или оклад за обучение

После оффера (успешного прохождения собеседования и приглашения на работу) я начал усиленно готовиться, читал блоги, смотрел видео, впитывал и вкушал опыт других, бывалых тестировщиков. Первые два месяца я приходил на работу и изучал документацию по продукту, который мне предстояло тестировать, смотрел видео-уроки (записывали их тестировщики из компании). Очень круто, что для лёгкого входа новичков был весь необходимый материал, это очень помогло. В течение месяца я каждый день изучал новое, а два раза в неделю общался с менеджером разработки (член команды, который ставит задачи, общается с заказчиками и вообще, занимается многими организационными вопросами + защищает нас от других команд, которые хотят скинуть свои косяки на нас), рассказывал ему, что нового узнал, отвечал на его вопросы. Честно, я ощущал себя идиотом, который нифига не понимал, но очень хотел и старался вникнуть в процесс. Какие-то непонятные названия, странные слова Agile, Scrum, МР, ПМ, Тим-лид и прочие, уже кажутся такими простыми и примитивными, но тогда, будучи совсем зелёным, я их до конца не мог сложить воедино. Первые три месяца пролетели быстро, но их я запомню на всю жизнь - это самое болезненное время, когда много, просто невероятно МНОГО информации, которую нужно усвоить и научиться использовать.

И вот, наступил декабрь. К этому моменту я успешно прошёл испытательный срок. У нас была даже некая балльная система, по которой по всем критериям у меня было 5/5, что не могло не радовать + положительный отзыв МРа. И в декабре, когда я уже неплохо освоился, состоялась ретроспектива. Ретроспектива - это некое собрание, когда команда обсуждает предыдущий квартал, какие были проблемы, находит пути их решения, подводит итоги и строит планы на следующий квартал. Цель - стать лучше. Одна из задач - разрешить предыдущие проблемы. И на этой ретроспективе я понял, что эта команда та самая, с которой можно свернуть горы и сделать наш продукт очень крутым. Я много читал историй, когда коллектив, мягко говоря - хрень, но в моём случае все более, чем круто сложилось. Ребята, зная, что я совсем зеленый, легко отвечали на все мои самые глупые вопросы, чем я старался не злоупотреблять.

Пошло-поехало

Прошло ровно пол года, как почувствовал, понял, осознал (как это не назови), что тестирование - это моё. Именно спустя пол года я понял, что то, чем я занимаюсь - это призвание. Естественно, что бывают косяки, не тестируемые задачи и прочие грустны вещи, но целая картинка позитивна!

Результат работы

Спустя 7 месяцев я научился и освоил некоторые инструменты и приобрёл скиллы, а именно:

PostgreSQL (СУБД) на уровне, который нужен тестировщику (анализ связей в БД, типов данных, запросы для тестирования и выборки данных);

Консольку Linux для просмотра логов, кода на тестовых стендах, правки "на горячую", всякие curl и прочие мелочи;

Различные техники тест-дизайна;

Буквально в последний месяц начал писать автотесты в связке Ruby+Selenium Webdriver+(всякие гемы аля Browsermob-proxy);

Написание документации (тест-планы, тест-кейсы, чек-листы и пр.);

Ну и всякие мелочи из разряда "деплоить ветку на тестовый стенд", "проверить наличие задач в ветке".

Вывод и скромный совет

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

Хочу узнать, что входит в понятие "знание Linux/*nix". Например, знание bash-a, уметь написать простой скрипт, знание базовых комманд, умение работать без графической оболочки (только с консолью), умение собрать программу и так далее.
Если можно, поделитесь мыслями с указанием "уровня" знания (знание простейших комманд - beginner level, написать скрипт - intermediate, пересобрать ядро - advanced).

Так же интересно какие таски в этой ОС чаще всего приходилось делать, расскажите о вашем опыте.

В конце хочу составить для себя эдакий список-чеклист того, что надо выучить.

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

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

1) Линукс очень разный. Много дистрибутивов, разные оконные среды, много инструментов для работы и горы документации. Поэтому путь у каждого индивидуальный. Конечно, надо уметь работать с командной оболочкой и консольными редакторами, так как *nix в своей основе - командная строка, и именно в ней доступны все возможности. Ограничения графических оболочек почувствуете довольно быстро.

3) Имхо, знание базовых команд не сильно отличается от умения написать скрипт для bash. Скрипт тоже может быть на "базовом" уровне. А вот поднабрать арсенал полезных утилит и опций можно только на практике: почитайте man даже по самым простым командам и убедитесь, что без опыта всё это множество опций освоить нереально.

Так же интересно какие таски в этой ОС чаще всего приходилось делать, расскажите о вашем опыте.

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

Хочу узнать, что входит в понятие "знание Linux/*nix". .
Также посоветуйте дистрибутив годный для учебы - я ставил убунту, но не знаю насколько она "близка" к боевым машинам, с которыми приходится работать тестировщикам.

написать скрипт ---- скрипт для чего?
пересобрать ядро ---- простейших команд будет совсем мало.

  • Пересобрать ядро, модуль ядра, чтобы включить дополнения виртуализации (Hyper-V)
  • Поднять почтовый сервер (сейчас стал чаще использовать Exchange - 120 дней работает бесплатно, а так под Windows есть только один нормальный бесплатный почтовый сервер: hMailServer, но всё-же и он кривой, а в Linux всё ставится удобно и работает неограниченно долго).
  • Поднять Novell e-Directory (сам не делал - но это реальная задача для целей тестирования).
  • Запустить какой-нибудь специфичный софт для тестирования (тестирования безопасности в основном - особых навыков не требует, ни кто-то и этого не сможет сделать).
  • Проверить работу программы в Wine (также удобно, когда надо быстро сэмулировать Windows 98, например, которой нет под рукой), но wine - это редко. Так чтобы прямо по работе нужно было - два раза в жизни, остальное - собственные исследования.
  • Обойти пароль в Windows (забыт пароль на виртуальной машине, а зайти как-то надо, не ломая машину).

На работе Linux можно использовать очень широко. Главное написать хорошие инструкции. Как мне говорят - мол на Linux это делать не будем, потому, что как там всё устроено, будешь знать только ты. Но если написать хорошую документацию (рассказать как там всё устроено, как поднять то, как настроить это, как подключиться к этому и где логи лежат). И это действительно будет работать. То разрешат. Но в основном не разрешают. И если какой-то нужный для работы сайт работает на связке IIS+FastCGI+PHP нестабильно (кеширование в такой связке глючное), а на LAMP - вполне хорошо, то как вариант рассмотрят LAMP, но примут решение делать всё на nginx+PHP под Windows, например.

Если не получится составить чек-лист, то есть такой совет. Поставье любой дистрибутив (Altlinux, OpenSuse, Ubuntu). Разверните на нём нужные для работы службы. И обновитесь (ядро обновите, драйвер видеокарты, или ещё-чего). Вот тут нежданчики появятся.

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

Тут, конечно, не хватает инструментов от Марка Русиновича. Но тут есть свои инструменты.

А когда освоитесь (в Windows бы пришлось переустанавливать), то почувствуете - границы мира расширились, мир стал больше; и пришло понимание основ, понимание того, как он функционирует и должен функционировать.

Поставье любой дистрибутив (Altlinux, OpenSuse, Ubuntu). Разверните на нём нужные для работы службы. И обновитесь (ядро обновите, драйвер видеокарты, или ещё-чего). Вот тут нежданчики появятся.

очень интересно как он будет все это поднимать.

Или найдёт TFM, и выполнит по отношению к нему действие Read.

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

Сомневаюсь :) Люди занимающиеся подбором персонала обычно, в лучшем случае, знают что линукс существует и как-то используется в компании.

2) Научиться работать в консоли можно и в убунте. Просто забудьте, что есть графические конфигураторы, файловые менеджеры и центр установки приложений. Открывайте терминал и пытайтесь делать всё там. Убунта обладает тем преимуществом, что на начальном этапе помогает сберечь нервы и не способствует возникновению антипатии к ОСи.

Вот с этим могу поспорить. Убунта - УГ и вообще бажное УГ. И нервы попортить она как раз может больше чем другие дистры. Я предпочитаю openSuse.

3) Имхо, знание базовых команд не сильно отличается от умения написать скрипт для bash. Скрипт тоже может быть на "базовом" уровне. А вот поднабрать арсенал полезных утилит и опций можно только на практике: почитайте man даже по самым простым командам и убедитесь, что без опыта всё это множество опций освоить нереально.

Абсолютно точно, полностью поддерживаю этот комментарий. Хотите научиться - перебирайтесь на линукс и работайте в нем, если это не критично для тестируемого приложения (ну или пускайте его в виртуалке, если виндовое). Есть рецепт перелезания на линукс, которым я сам и воспольовался - сначала на виндах перейти на кросплатформенные продукты (мс офис - libre office, почтовик - thunderbird итд.) Единственно - нет замены Far-у (есть mc, но это отстой).

Хочу узнать, что входит в понятие "знание Linux/*nix". Например, знание bash-a, уметь написать простой скрипт, знание базовых комманд, умение работать без графической оболочки (только с консолью), умение собрать программу и так далее.
Если можно, поделитесь мыслями с указанием "уровня" знания (знание простейших комманд - beginner level, написать скрипт - intermediate, пересобрать ядро - advanced).

Так же интересно какие таски в этой ОС чаще всего приходилось делать, расскажите о вашем опыте.

В конце хочу составить для себя эдакий список-чеклист того, что надо выучить.

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

Начну с конца - тестировщикам "приходится" работать на разных операционках с разными настройками - ведь все зависит от того, как надо тестировать приложение. У нас, например, нет жестких требований по окружению, но корпоративный стандарт - убунта (хотя у меня openSuse).

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

А ядро вам не придется пересобирать (если вы конечно не выберете какой-нибудь gentoo). Людям которым нужно "ехать" это ни к чему, ну а тем кому "шашешчки".

Заметка, которая будет продолжением серии "Как развиваться начинающим тестировщикам". Ранее я писал про Groovy, теперь хочу поделиться опытом изучения Linux.

Давайте разберемся, нужно ли вообще тестировщикам знать Linux? Конечно же ответ зависит от многих факторов. Первый из них: есть ли у вас на проекте машины или сервера с *nix на борту ? Если нет, то можете закрывать страницу и наслаждаться жизнью, унывая за рабочим столом Windows 10 ;) Но, если у вас есть все-таки поддержка *nix платформ и вы не унылый овощ, то вам следует разобраться с Linux.

Лично мое знакомство c Linux началось с того, что у нас на проекте было 4 машинки и на всех стоял разный дистрибутив IBM AIX, Solaris, Red Hat Linux.

Дабы не быть полным профаном, я решил себе дома установить тогда еще Ubuntu 12.04 LTS, чтобы начать разбираться с системой и учить команды. Это была кардинальная перемена, меня затянуло и до сих пор у меня дома стоит Ubuntu, и на все возгласы по поводу выхода новых версий Windows я даже не парюсь.

Чисто в образовательных целях можете установить себе Ubuntu на виртуальную машину. Сделать это максимально быстро можно с помощью Vagrant.

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

Я бы рекомендовал почитать книгу - Скотта Граннеманна:

LinuxSprav2010

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

Вторая книга, которую я бы посоветовал тем, кто уже немного знаком с системой и хочет понять все ее внутренности, - How Linux Works: What Every Superuser Should Know

How Linux Works 200x250

Под конец, для тех, кто уже хочет научиться писать Bash скрипты:

51EjC yjBKL. SX403 BO1,204,203,200

Последнюю книгу полностью не читал, но могу сказать, что издательство apress всегда издает стОящие книги.

Ну и напоследок на обучающей платформе edx есть полезный курс - Introduction to Linux. Этот курс дает практические знания графической оболочки и командной строки для всех самых распространенных дистрибутивов Linux. Лично я его прошел и получил сертификат;)

Гид по профессии тестировщик: чем занимается специалист в сфере QA, сколько з. главное изображение

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

Кто такой тестировщик, за что отвечает и чем занимается

Тестировщик программного обеспечения планирует и выполняет тестирование приложений, отлаживает код, улучшает юзабилити программ. Часто к названию профессии добавляют латинские буквы q и a: qa тестировщик. Также употребляют название qa инженер. В латинских буквах спрятана суть деятельности тестировщика. Подробности ниже.

За что отвечает тестировщик

QA произошло от английских слов quality assurance — обеспечение качества. Это часть разработки, которая управляет качеством продукта. QA — широкое понятие, а работа над обеспечением качества начинается задолго до написания первой строки кода будущего приложения. В идеальном мире инженер по качеству работает над продуктом если не на этапе генерации идей, то на этапе исследования рынка и изучения потребностей целевой аудитории.

В широкое понятие QA входит ещё одно направление деятельности: QC, quality control или контроль качества. Инженеры QC контролируют продукт на этапе разработки и поддержки. Тестирование программного обеспечения — один из инструментов контроля качества. То есть тестировщик проверяет приложение в рамках мероприятий по контролю качества (QC), которые входят в комплекс работ по обеспечению качества (QA).

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

Чем занимается тестировщик

Как сказано выше, тестировщики проверяют программное обеспечение. Разберёмся, как они работают.

Есть ручное и автоматизированное тестирование ПО. Соответственно, специалисты по ручному тестированию проверяют приложения вручную, а специалисты по автоматизированному тестированию работают с помощью программ.

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

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

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

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

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

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

Затем тестировщик выбирает инструменты, планирует и реализует дизайн проверки. На этом этапе специалист готовит данные для тестов, настраивает инструменты, устанавливает расписание тестирования. Тесты запускаются, результаты тестирования автоматически фиксируются. Специалист анализирует полученные данные и передаёт информацию разработчикам.

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

Промежуточный итог: тестировщики контролируют качество программного обеспечения. Эта деятельность входит в комплекс работ по QA — обеспечению качества приложений. Тестирование бывает ручным и автоматизированным. Ручное тестирование предполагает проверку приложений вручную, а для автоматических тестов специалисты используют программы.

Работа тестировщиком: где работают QA-инженеры, сколько зарабатывают, какие вакансии есть на рынке

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

QA-инженеров и QC-тестировщиков часто привлекают команды, которые используют DevOps. В таких командах разработка, тестирование и поддержка ПО выполняется циклически с использованием подходов Agile или Scrum.

Сколько зарабатывают тестировщики

По данным QA-инженера Антона Якутовича, на рынке есть несколько уровней тестировщиков. Новички получают меньше $600 в месяц, зарплата специалистов среднего уровня составляет от $1500, опытные специалисты получают до $2300. Эксперты по автоматизации тестирования экстракласса могут рассчитывать на зарплату от $2300 в месяц.

Большая часть вакансий открыта в Москве и Санкт-Петербурге. Но тестировщики требуются и в регионах. Например, в Новосибирской области открыто 293 вакансии по тестированию, в Татарстане — 219 вакансий, в Свердловской области — 210 вакансий.

Как стать тестировщиком: что надо знать и где учиться

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

Что должен знать и уметь тестировщик, какие софт-скилы нужны этому специалисту

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

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

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

Где учиться тестированию

Профессии «Тестировщик» на Хекслете пока нет. Тем не менее у нас есть полезные для будущих тестировщиков курсы и интенсивы. Вот некоторые из них:

Также вы можете посмотреть программы обучения в других школах. Например, курсы для будущих специалистов в области QA есть в «Тинькофф Образование», «Нетологии», GeekBrains, Skillbox и в других русскоязычных школах. А если вы владеете английским языком, можете пройти курсы на известных англоязычных площадках, включая Udacity, edX, Udemy, Coursera и так далее.

Промежуточный итог: чтобы работать тестировщиком, нужны специальные знания, включая основы тестирования, основы программирования, системы контроля версий, инструменты автоматизации и так далее. Часть знаний будущие тестировщики могут получить на Хекслете.

Профессия глазами профессионалов: комментарии экспертов о работе тестировщиков, перспективах и обучении

Мы обратились к опытным специалистам в сфере QA, чтобы узнать о нюансах профессии тестировщик. Они ответили на несколько вопросов о профессии.

Константин Виноградов: после курсов программистов можно смело становиться тестировщиком

Дмитрий Дементий: Чем работа тестировщика отличается от работы программиста? И что есть общего в работе тестировщика и программиста?

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

Конечно, есть отдельные специализации, такие, как специалист по автоматизации тестирования (test automation engineer) или разработчик в тестировании (software development engineer in tests), чья работа почти идентична работе программиста. Она предполагает написание кода автоматических тестов и тестовых фреймворков.

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

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

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

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

Д. Д.: Кем проще стать: разработчиком или тестировщиком?

К. В.: Тестировщиком. Но не потому, что им быть проще. Просто порог входа ниже. Карьера разработчика начинается с позиции junior software developer, которая требует наличия минимальных знаний: язык программирования, основные алгоритмов и структур данных, знакомство с фреймворками и так далее. Чтобы стать джуном, ты уже должен быть разработчиком.

Карьера тестировщика начинается с уровня специалиста по ручному тестированию (manual testing): есть описание тестов, делай руками, вноси результаты в отчет. Очевидно, что начинать во втором случае проще.

Д. Д.: С финансовой точки зрения к чему выгоднее стремиться: к позиции тестировщика или программиста?

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

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

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

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

Д. Д.: Можно ли рассматривать позицию тестировщика как один из простых способов войти в IT?

Д. Д.: Какими инструментами пользуются тестировщики: окружение, редакторы и IDE, библиотеки и фреймворки?

Все зависит от продуктового стека и того, чем автоматизируется тестирование. У меня:

  • Linux/macos;
  • VScode;
  • Pytest;
  • Jenkins;
  • Gitlab.

Д. Д.: Где можно научиться тестировать ПО? Можно ли стать тестировщиком после курсов программирования?

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

Станислав Урюпин: тестированию можно научиться только на практике

alt_text

Станислав Урюпин, QA-инженер, руководитель волонтёрского образовательного проекта Sciberia

Дмитрий Дементий: Чем работа тестировщика отличается от работы программиста? И что есть общего в работе тестировщика и программиста?

Станислав Урюпин: Избегая формальных определений, отсылающих к различным стандартам, описание разницы в работе программиста и тестировщика можно свести к следующему виду — работа программиста заключается в создании приложений, а работа тестировщика заключается в обеспечении их гарантированной работоспособности. Тем не менее у этих профессий общие цели — создание полноценных программ, которые используют другие люди и системы.

Д. Д.: Кем проще стать: разработчиком или тестировщиком?

С. У.: Начать карьеру в IT проще тестировщиком, чем разработчиком. Но за последние годы сложность разрабатываемых программ и предъявляемых требований сильно возросли. Данные изменения не могли не отразиться на работе тестировщика. В связи с этим повысился порог вхождения в профессию.

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

Д. Д.: С финансовой точки зрения к чему выгоднее стремиться: к позиции тестировщика или программиста?

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

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

С. У.: Этот тезис не является верным. Лучше самих программистов в коде не может и не должен разбираться кто-либо ещё. Тестировщики работают чаще всего по стратегии черного ящика, когда непосредственный доступ к коду закрыт для анализа. Зато тестировщику доступны различные способы и инструменты для определения работоспособности программ.

Д. Д.: Можно ли рассматривать позицию тестировщика как один из простых способов войти в IT?

С. У.: Можно, но лишь отчасти. Всё зависит от конкретных целей. Например, часто новички работу в тестировании рассматривают как промежуточный этап перед переходом в разработку. Тестирование и разработка — это разные области деятельности. В каждой из них найдутся характерные особенности, без которых продуктивная работа невозможна. Потому неизбежно придётся тратить ресурсы на погружение в предметную область.

Если цель — пройти в разработчики или иные направления работы в IT, такие, как DevOps или аналитика, стоит отдельно изучать эти направления. Но получится ли это делать без падения продуктивности работы в тестировании, вопрос открытый.

Д. Д.: Какими инструментами пользуются тестировщики: окружение, редакторы и IDE, библиотеки и фреймворки?

С. У.: Область тестирования обширна, и в ней много направлений, в которых найдутся свои инструменты. Есть инструменты, которыми пользуются тестировщики независимо от направления. Например, cистемы управления тестированием или системы отслеживания ошибок.

Д. Д.: Где можно научиться тестировать ПО? Можно ли стать тестировщиком после курсов программирования?

С. У.: Тестированию, как и многому другому, можно научиться только на практике. Если нет опыта, с которым можно начать карьеру, стоит изучить теорию и воспользоваться готовыми решениями для практики. Например, выбрать сайт или мобильное приложение и попробовать научиться составлять тест-кейсы или изучить на предмет возможных ошибок.

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

Заключение: работодателям нужны тестировщики, а соискателям нужно учиться и практиковаться

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

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Читайте также: