Mtour12.ru

Обучение в онлайне
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование для тестировщиков

Как тестировщику стать разработчиком — отвечают эксперты

Как тестировщику стать разработчиком — отвечают эксперты

  • Ответы экспертов , 6 июля 2018 в 19:20
  • Анастасия Витвицкая

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

«Говорят, что многие тестировщики из тестирования переходят в разработку ПО. Так ли это на самом деле? Насколько сложно из тестировщика «превратиться» в программиста? И в чем плюс того, что у разработчика имеется за плечами опыт в тестировании ПО?»

Мы обратились за разъяснением к нашим экспертам, а полученные ответы представляем вашему вниманию.

Григорий Земсков , Директор компании «Ревизиум»

Задачи тестирования и разработки лежат немного в разных интеллектуальных плоскостях. Хороший тестировщик совершенно не обязательно будет хорошим разработчиком и наоборот. Задача тестировщика придумывать нестандартные сценарии (use cases), при которых будет возникать ошибка. При этом разработчик, зная, как работает алгоритм приложения, какие у него реализованы возможности и как приложения «запрограммированы», с меньшей вероятностью сможет придумать сценарии, которые приведут к ошибкам, поскольку, скорее всего, будет мыслить категориями «фич». Наверняка есть люди, которые с одинаковым успехом будут хорошими тестировщиками и разработчиками, но из моей практики, обычно это разные люди, с разной подготовкой и разным складом ума.

Алла Клименко , CEO Mad Devs

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

Сергей Храпов , начальник центра качества компании Nexign

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

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

В плане профессионального развития это если не насущная необходимость, то, как минимум, работа на перспективу. Судите сами: автоматизированное тестирование к настоящему времени порядком потеснило ручное. А в автоматизации вы уже не тестировщик, а developer in test. Вы пишете библиотеки, тест-дата генераторы, работаете с ветками в git, как и «программисты»… Де-факто вы сами и есть программист. Автотесты проходят все те же стадии жизненного цикла, что и любой код, и подход к написанию автотестов идентичен тому, что используется при разработке.

Для трансформации из ручного тестировщика в программиста/автотестера можно избрать один из двух путей. Простой, быстрый и неправильный (на мой взгляд) путь выглядит так: вы берёте свои же тесты и начинаете их понемногу переписывать. Допустим, на Python – из-за достаточно низкого порога вхождения. Понемногу набиваете руку и начинаете претендовать на новую должность.

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

Второй путь медленный и более трудный, но он же и более почётный. Следуя им, вы нарабатываете себе хорошую инженерную базу. А именно: возьмём ручного тестировщика, который знает только основы тестирования, и больше ничего. Чтобы стать приличным автоматизатором, ему недостаточно освоить основы ООП на примере, предположим, Java core. Ему нужно, чтобы хотя бы такие слова, как «система контроля версий», «консоль unix», «стек TCP/IP», «SQL», «UML», «Maven», «Jenkins» не вызывали у него растерянного недоумения. А вызывали, напротив, воспоминания о каком-то практическом опыте. То есть, в идеале нужно устроиться куда-то, где можно учиться на практике, и держать в фокусе именно обучение и практику, а (покамест) не карьеру.

Да, это проект не на месяц и не на два, зато потом вы будете грамотным специалистом, способным произвольно выбирать для себя область применения, а не прикованным к единственной роли «тестировщиком-который-что-то-может-на-Pyhon».
Что касается преимуществ, то у экс-тестировщика они вполне могут быть. Но это не в последнюю очередь зависит от того, в какой компании и на каких проектах человек набирался опыта. Если вы имели дело со сложными распределёнными системами – вероятно, у вас сформировались хороший системный склад ума и интуиция, представление о том, куда направлять усилия, умение видеть тонкие места. Такой аналитический/архитектурный тип мышления всегда в цене. Если вы хороши в тест-дизайне, саппорте или аналитике – отлично. В ту же копилку падают знание предметной области и soft skills. Из всех этих кирпичиков, которые относятся, правда, не столько к опыту тестирования, сколько к опыту работы, может выстроиться достаточно выигрышный набор ваших преимуществ.

7. Отзыв на курс «Программирование на Java для тестировщиков»

Все события — Программирование на Java для тестировщиков

Тренинги для тестировщиков

software-testing.ru

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

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

Собственно, я решила поучаствовать в этой интересной авантюре, преодолевая все свои страхи и неуверенность в себе и собственных силах.

Software-Testing.Ru

Software-Testing.Ru — портал специалистов по тестированию и обеспечению качества ПО

software-testing.ru

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

Для меня определяющим фактором в сторону именно этого курса стали отзывы моих коллег, которые прошли аналогичный, но на .Net.

Почему я выбрала именно Java? Здесь все очень просто: мой текущий проект как раз использует этот язык программирования.

Нужно отметить ещё то, что я выбрала достаточно подходящее время для прохождения курса (конец зимы, стартовали в конце февраля, летом мне было бы сложнее себя заставить учиться каждый день, но об этом позже). А курс, на минуточку, рассчитан на 2.5 месяца.

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

Каждую неделю выкладываются лекции следующего занятия. Всего 10 таких занятий и 21 домашнее задание за все время учёбы. В каждом занятии порядка 10–12 лекций (может быть больше или меньше), которые нужно посмотреть, не забываем ещё про домашки, которые оцениваются. Чтобы успешно пройти курс, минимальные оценки за задания этого типа должны быть не меньше 4 из 5 баллов. Домашнее задание можно сдать используя несколько попыток. Обычно тренер оставлял рекомендации по улучшению кода в комментарии к заданию (итого, у меня только одна четвёрка, остальные пятёрки, но даже этот результат для меня просто отличный!).

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

Здорово, что все лекции сразу не выкладывали: потому, что большой объём уроков может испугать, убить желание учиться. А так, нагрузка растёт постепенно, появляется привычка посмотреть видео-уроки, повторить задачи, которые выполнил тренер, а потом уже пошаманить над домашними заданиями. Мне ещё понравилось, что была сводная табличка с результатами домашних заданий и средним баллом. Что-то вроде школьного дневника. Как по моим ощущениям, нагрузка начала увеличиваться где-то с 5-го занятия.

Я не буду в своём отзыве перечислять программу курса, вы её можете найти на сайте. Хотелось бы обратить внимание на то, что она выстроена достаточно последовательно и логично, начиная с основ этого языка программирования, с примерами, подробным описанием, с обязательной отработкой на реальных веб-проектах + вы не будете сразу писать тесты, не настроив себе достаточное и необходимое окружение для этого (даже этому моменту в курсе выделяется отдельное занятие).

Само собой, у вас обязательно, по мере прохождения курса, будут появляться вопросы, которые вы сможете задать в чатике группы. И здесь я бы хотела обратить внимание на работу тренеров (Алексея Баранцева и Игоря Чередниченко). Ребята — крутые! Во-первых, вежливое и корректное общение со всеми учениками, во-вторых, достаточно компетентная помощь, которая действительно улучшала понимание отдельных вопросов, в-третьих, это их терпение к большому количеству вопросов. Плюс, вы будете учиться не только на своих ошибках, но и на ошибках других учеников. В нашей группе, по мере возможности, мы помогали комментариями, если видели какие-то ошибки и неточности в коде, поддерживали друг друга (вспоминаю сейчас каким сложным нам казалось 8-ое занятие, на которое потратили очень много времени, сил и нервов!).

Что для меня оказалось полезным и интересным в этом курсе: понимание того, как организовать тесты в среде разработки, возможность научиться запускать тесты в разных браузерах, настройка Jenkins и Allure для формирования отчетов о тестах, работа с Hibernate и Git, работа с различными библиотеками и фреймворками, возможность научиться генерировать тестовые данные в разных форматах (.csv, .xml, .json).

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

Что нужно знать тестировщику для работы в студии мобильной разработки

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

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

Каковы главные человеческие качества тестировщика

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

Что должен знать и уметь тестировщик

Мы собрали перечень ключевых навыков и умений тестировщиков ПО. Итак, тестировщик должен:

  • владеть английским на уровне чтения;
  • обладать терпением, внимательностью и способностью смотреть на одно и то же с разных точек зрения. Это самое важное;
  • знать, что такое юзер-стори , чек-лист и тест-кейс , уметь правильно их составить;
  • понимать, какие виды и типы тестирования бывают и когда надо их применять. Поможет разобраться: «Тестирование программного обеспечения — основные понятия и определения»;
  • знать, как пользоваться баг-трекером . В Лайв Тайпинг это YouTrack, но если научился пользоваться одним — считай, что научился пользоваться всеми;
  • владеть техниками тест-дизайна , как минимум анализом классов эквивалентности и граничных значений и диаграммами переходов состояний;
  • иметь общее представление о гайдлайнах iOS и Android;
  • быть опытным пользователем как минимум одной из ОС;
  • понимать принципы клиент-серверного взаимодействия;
  • тестировщик ПО должен уметь разобраться с продуктом при отсутствии документации;
  • работать с IDE (Xcode/Android Studio);
  • снифферить и модифицировать трафик через Fiddler/Charles;
  • конструировать запросы в Postman;
  • знать, для чего нужен browserstack;
  • создавать эмуляторы в Genymotion, Android Studio, Xcode;
  • иметь или развивать чувство прекрасного. Тут может помочь бюро Горбунова;
  • понимать, что такое кроссплатформенные приложения и чем они отличаются от нативных. Поможет разобраться: «Кроссплатформенные приложения против нативных: сравнение и выбор подходов»;
  • работать с виртуальным окружением VirtualBox и Vagrant;
  • понимать принцип работы и знать основные команды Git. Поможет разобраться: «Основы Git»;
  • уметь пользоваться инструментом для разработки тестовых сценариев Selenium IDE;
  • понимать как работает инструмент нагрузочного тестирования Yandex Tank и уметь его настроить.

Приятный плюс, если вы:

  • обладаете навыками автоматизации при помощи Appium, Katalon studio;
  • имеете глубокие знания Selenium WebDriver;
  • умеете организовать нагрузочное тестирование при помощи Apache jMeter;
  • знаете, как провести тестирование безопасности для мобильного или веб-приложения .

C чего может начать новичок

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

  • «Тестирование дот ком» Романа Савина. Книга не новая, но даст базовые представления о специализации;
  • Tap into mobile application testing, Jonathan Kohl. Книга о специфике тестирования мобильных приложений;
  • гайдлайны iOS и Android;
  • «Ководство» Артемия Лебедева;
  • советы бюро Горбунова.

Чтобы почувствовать суть тестирования, попробуйте протестировать любое приложение:

  • определите, какую проблему оно решает;
  • составьте план тестирования;
  • напишите проверки;
  • проведите тесты и составьте баг-репорты .

Баг-репорты , пожалуй, можно будет отправить разработчикам — они будут благодарны.

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

Стоит яростно следить за:

  • блогами Yandex и Badoo на «Хабре»;
  • RadioQA;
  • сайтом software-testing .ru и их форумом.

А ещё стоит посмотреть это видео, в котором наш QA-инженер Роман показывает красивые усы и говорит правильные вещи о том, какие профессиональные метаморфозы ждут тестировщика при столкновении со сложными проектами.

Читать еще:  Лучший вуз москвы по программированию
Ссылка на основную публикацию
Adblock
detector
Для любых предложений по сайту: [email protected]