Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Тестирование

Сисадмин плюс безопасник равно… ведущий инженер!

В октябре 2019 года Сергей Бут пришел работать на Ильском нефтеперерабатывающем заводе инженером АСУ ТП — автоматических систем управления технологическими процессами. Но рядовым инженером пробыл недолго — уже через четыре месяца спустя получил должность ведущего. Что помогло быстро продвинуться на новом месте? Профильное образование, опыт, а также, как признается сам Сергей, учеба в GeekBrains. Здесь он осваивал информационную безопасность, системное администрирование и навыки тестировщика. Как эти знания пригодились ему при трудоустройстве и в работе? Какую еще IT-специальность он изучает на нашей площадке? Обо всем по порядку.

— Сергей, добрый день! Если правильно понимаю, изучать тестирование и информационную безопасность вы начали, когда уже состоялись как инженер. Расскажите о своей карьере до учебы в GB. Почему решили заниматься автоматизацией, чем вам это нравится, какое образование получили в этой сфере?

Я окончил Кубанский государственный технологический университет (КубГТУ) по специальности «автоматизация технологических процессов и производств». На нее я прошел без экзаменов, потому что школу окончил с золотой медалью и сдал централизованное тестирование (тогда еще не было ЕГЭ). 

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

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

После университета я два года работал на станках с ЧПУ (числовым программным управлением). Сначала как инженер-технолог, потом — начальник сектора. Дальше почти десять лет трудился в ООО «НОИНТ» инженером-программистом, ведущим инженером-программистом, начальником отдела.

C октября 2019 года работал инженером автоматических систем управления технологическими процессами в КНГК-ИНПЗ (Кубанская нефтегазовая компания, Ильский нефтеперерабатывающий завод). А в марте стал там ведущим инженером.

— У вас есть и второе образование — менеджмент. Вы получали его, чтобы лучше понимать процессы на предприятии? Или хотели попробовать принципиально новое направление?

Во времена моей учебы в КубГТУ было модно получать два высших образования одновременно. В нашей группе на второе высшее решились три четверти студентов. Занятия шли несколько раз в неделю по вечерам. Как в известной комедии, «Все побежали — и я побежал».

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

— В GeekBrains вы пришли изучать информационную безопасность. До этого пробовали тестирование ПО. Сейчас осваиваете системное администрирование. Зачем вам столько всего?

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

Тестирование мне близко: еще в детстве проверял работоспособность всего вокруг, начиная с игрушек :) Это в моем характере — вникать в каждую мелочь и изучать реакцию объекта на нестандартные воздействия. Обучение в GeekBrains по профессии «Тестировщик ПО» упорядочило мои знания и навыки, помогло их «разложить по полочкам». 

Пользоваться этими знаниями я начал практически сразу — мне постоянно надо проверять свою и чужую работу, изменения, которые вносятся в ПО разных объектов на заводе. Теперь я понимаю, что нужно тестировать в первую очередь, что во вторую, а что можно не тестировать вообще.

— Для чего вам нужны знания безопасника и системного администратора?

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

С развитием промышленной автоматизации такие системы росли и усложнялись. Появились беспроводные интеллектуальные датчики, а в качестве управляющих устройств стали использовать «умные» контроллеры, объединенные в сети. 

Автоматизация затронула и ведение технологических журналов. На смену тетрадкам с записями от руки пришли автоматизированные системы, которые собирают и накапливают информацию в специализированных базах данных. Появилась возможность автоматически обрабатывать эту информацию, «сводить» ее в отчеты и передавать в системы управления предприятием: CRM, ERP. 

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

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

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

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

— Новая должность — новая ответственность, а вы еще продолжаете учиться. Хватает ли времени? Как восстанавливаете силы после работы и как любите отдыхать?

Времени не хватает! Лучший отдых для меня — это полеты на самолете. Летаю на симуляторе X-Plane на Boeing 737-800. Иногда интересно осуществить стандартный перелет из одного аэропорта в другой, иногда придумываю нештатные ситуации — отказы — и пытаюсь посадить самолет в целостности и сохранности. Это по настроению.

Еще у нас в Краснодаре есть авиатренажер Boeing 737-800, который в точности воспроизводит реальную кабину пилотов. Все это находится на подвижной платформе, поэтому создается впечатление, что управляешь настоящим самолетом. В полете тебя сопровождает опытный инструктор. Я летаю постоянно с одним и тем же — он настоящий пилот, много отлетал именно на Boeing 737-800. С ним очень интересно общаться — постоянно узнаю новое.

— Как руководство узнало о ваших новых навыках в IT? Через сколько времени с начала учебы вы почувствовали практическую пользу от новых знаний?

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

— Чему вы успели научиться в GeekBrains к моменту перехода на новую работу? 

К началу поиска новой работы я отучился всего один семестр на факультете информационной безопасности в GeekUniversity. Дальше принял решение перейти на профессию «Специалист по ИБ» — обучение там более концентрированное и сжатое.

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

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

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

— Какие темы изучаете сейчас в Geekbrains и что еще предстоит?

Сейчас я продолжаю изучать профессию «Системный администратор». Считаю, что специалист по информационной безопасности должен досконально знать Unix-системы и очень глубоко разбираться в сетях и сетевой безопасности. Поэтому специальности «системный администратор» и «специалист по ИБ» очень органично дополняют друг друга.

В будущем хочу изучить C# и Unity, чтобы попробовать разрабатывать свои игры. Тем более что владение C# и Visual Studio, по-моему, никогда не будет лишним.

— Раз вы упомянули Unity... Какую игру вам было бы интересно создать? Свой авиасимулятор, например? :) А еще же в Unity можно моделировать технические системы и процессы. Тоже в перспективе польза для работы?

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

— Есть ли пожелания к GeekBrains? Что бы вы улучшили на курсах, которые прошли и проходите?

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

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

— Какие практические задания и проекты по специальностям вам были интересны или полезны?

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

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

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

Пройти обучение

30 окт 19, 16:21
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Факультет тестирования ПО — короткая дорога в IT

 

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

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

Теперь историй успеха станет гораздо больше — ведь факультет, в отличие от отдельных курсов:

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

Программа факультета разработана так, что студентом может стать человек совершенно без подготовки. А выпускник факультета может работать:

  • мануальным тестировщиком веб-приложений (устроиться на эту должность реально уже после I четверти);
  • инженером по автоматизации тестирования на Java;
  • мануальным тестировщиком мобильных приложений;
  • инженером по автоматизации тестирования мобильных приложений на Java.

Подробнее о факультете и его программе рассказал методист образовательных программ GeekBrains Александр Скударнов.

— Александр, чем руководствовались при составлении программы факультета? Что лежит в ее основе?

— Затрагиваемые темы и временные пропорции во многом соответствуют программе международной сертификации по тестированию — ISTQB® Certified Tester. Базовый уровень. Конечно, студенты, желающие получить этот сертификат, должны понимать, что это как знать английский и сдавать IELTS или TOEFL — перед экзаменом нужно отдельно подготовиться к его формату.

— Чем обучение на факультете отличается от того, что предлагают конкуренты?

— Не видел на рынке каких-то очень хороших продуктов. Где-то программы — фактически наш факультет, но за три месяца. Не знаю, как можно в человека впихнуть столько информации за такое время. Если у нас нагрузка примерно 10 часов в неделю, то там 30 будет? :) У нас все довольно размеренно, аккуратно, без перегибов — чтобы все усвоилось.

Обучение проходит в формате вебинаров, предусмотрено живое общение с преподавателями и возможность узнать об их личном опыте. Всегда можно получить обратную связь по практике в ключе: «Молодец! Но у нас в компании еще так делают...», — то есть полезный совет и конструктивную критику. У нас четкие дедлайны и задачи, а обучение проходит в группах, что дополнительно мотивирует возвращаться к занятиям.

— Какая будет практика?

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

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

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

— Скажешь что-то мотивирующее напоследок? :)

— Ниша тестирования огромная! Вот я зашел на HeadHunter и вбил «тестирование ПО» по Москве — он выдал 5 000 вакансий. По России — 15 000 вакансий. Просто для понимания, насколько это крутая возможность, чтобы сменить профессию и войти в сферу IT. 

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

А ведь тестировщики имеют очень большое влияние в компании. Хороший тестировщик — специалист по качеству продукта. Он должен не только найти баг, но и дать рекомендации коллегам, чтобы такие ошибки не повторялись в будущем. Хороший senior уже отстраивает бизнес-процессы — это человек, который действительно знает продукт полностью! В общем, плох тестировщик, который не хочет стать инженером по качеству продукта!

А еще факультет тестирования ПО — это бренд. Я как методист понимаю, что мы не можем облажаться, и это для меня стимул привлекать лучшие ресурсы.

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

Ручное тестирование

Раиль Закиров, Senior Software Validation / Integration Engineer в международном проекте, работал в EPAM и группе компаний FIX. Имеет два высших образования — оба в нефтегазовой сфере. Отработал несколько лет в нефтяной отрасли, разочаровался в ней и сменил профессию. 

— Раиль, чему научите студентов?

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

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

Подготовлю студентов к вопросам, которые задают на собеседовании. Хочу научить их спокойнее относится к результатам первых интервью и лучше готовиться. На начальных этапах им нужна поддержка. Очень важно сказать, что первые отказы или сложные собеседования — это НОРМАЛЬНО. У меня самого в начале пути были такие интервью: во время одного хотелось просто повесить трубку и выбежать из квартиры, чтобы как-то снять стресс — настолько тяжело было в первые разы. 

— Как сделаете занятия интересными?

— Студентам интересно, КАК все происходит в реальности. Скучно слушать сухие лекции. Интересны примеры из реальных проектов. Поэтому я буду давать информацию из практического опыта. Расскажу, с какими ошибками я столкнулся, когда менял профессию. Где были провалы, где успехи. Как не разочаровываться при неудачах или малых результатах. Сколько времени уходит на разные этапы в работе и на что стоит обратить внимание в начале пути. Это все интересно студентам — особенно тем, кто меняет профессию. 

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

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

— К чему стремиться студентам? Как относиться к учебе, чтобы все получилось?

— Хороший инженер по качеству ПО — это специалист, которому не все равно. Не обязательно иметь знания в огромном количестве инструментов — инструмент можно выучить за один-два дня или месяца, в зависимости от сложности. Гораздо сложнее встретить ответственного человека или же воспитать в сотруднике ответственное отношение и чувство вовлеченности в процесс. 

Мне нравится подход в европейских компаниях — там очень скрупулезно относятся к тому, насколько хорошо вольется потенциальный инженер в команду. Будет ли он ее дополнять или же вносить разлад? Технические моменты тоже важны, все-таки на серьезные проекты нужны технически подкованные специалисты, но soft skills не менее важны (на мой взгляд, даже более). 

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

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

Владлена Бонк, работает тестировщиком три года, получила опыт в геймдеве, банковской сфере, ip-телефонии. Сейчас работает с энергетикой и промышленностью. Закончила ОмГУ им. Достоевского по специальности «экскурсоведение и охрана природных и культурных объектов» — то есть училась на музейного работника.

— Владлена, чему научите студентов?

— Я преподаю курс «Тестирование. Уровень 1», где изучаются азы тестирования. Научу тому, как все устроено: как проходит организационный процесс, как выглядит типичный день тестировщика в компании, как находить баги, как их фиксировать. Будем учиться тестировать новую функциональность — там много-много видов тестирования: функциональное, нефункциональное и другие. Также определим как тестировать старый функционал - научимся регрессионному тестированию. На практику каждый раз буду давать новое приложение — чтобы студенты получили как можно более широкий опыт тестирования. На этом курсе также затрагивается тема тест-дизайна, мы тренируемся не только понимать что тестировать, но и как. Так что при ответственном подходе к учебе после курса уже можно идти на должность Manual QA Engineer.

Автоматизация тестирования на Java

Александр Фисунов, Senior Java Developer, разработчик ПО в области компьютерного зрения и видеоаналитики. Консультирует зарубежных тестировщиков. Кандидат технических наук, лауреат стипендии Президента РФ для молодых ученых и аспирантов.

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

— На младшего инженера автоматизации тестирования можно спокойно идти. Для тестирования достаточно хорошего знания Java Core: циклы, массивы, методы, условия, типы данных, переменные. ООП — без него никуда. Коллекции, исключения, немного многопоточности, обобщения, работа с файлами, JDBC, Apache Maven — самые основы. Все это и инструменты, которые понадобятся в работе, мы изучим на курсе. 

Небольшая история для вдохновения. Несколько лет назад через «знакомых знакомых знакомых» со мной связался человек, который работал в Америке, он тогда занимал позицию Manual QA Engineer. У него было время, и он хотел изучить Java, Selenium, TestNG, SQL, а в процессе работы сюда еще добавились SoapUI, Zap Proxy, Jersey Client, Jbehave, Appium, Selenide и другие вещи. За три-четыре месяца еженедельных консультаций по два-четыре часа он разобрался с необходимой базой языка Java, которая как раз будет преподаваться в курсе, и устроился на позицию Middle Automation QA Engineer. 

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

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

Мобильное тестирование

Александр Данилов, более десяти лет опыта в тестировании. Разрабатывает и проводит интерфейсное, функциональное и регрессионное тестирование веб- и мобильных приложений в компании CDC. Начинал с ручного тестирования крупного аналитического инструмента в ООО «Мегапьютер ТЕК», был старшим тестировщиком в Diasoft. Окончил два факультета Чувашского государственного университета им. И. Н. Ульянова: электротехнический и экономический. 

— Александр, чему научите студентов? Какие задачи будут под силу выпускникам?

— Научу принимать правильные решения в процессе тестирования. Чтобы занятия были интересными, будет много примеров и практики с учетом современных тенденций. Выпускники получат опыт использования современных инструментов автоматизации (UI Automator, XCUITest, Appium и Espresso), смогут внедрить их на своих проектах.

У вас вопрос по программе обучения? Напишите консультанту в чат или оставьте комментарий к статье. Либо запишитесь на факультет тестирования ПО и задайте вопросы менеджеру.

Пройти обучение

7 окт 19, 16:56
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Обучение программированию через тестирование или TDD

Еще в XIX веке шотландский автор Самуэль Смайлс написал: «Мы учимся мудрости на ошибках гораздо быстрее, чем на успехах». Этому утверждению созвучны многие методологии разработки, где особое место уделяется тестированию, — например, DevOps и Agile. Лучшей считается та проверка, которая быстро находит ошибки. Если баги не обнаружены — цикл неудачный.

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

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

Это не означает, что обучение через одну лишь практику эффектно. Необходима правильная градация. Такая, где на первом месте — анализ возможных ошибок.  Это Test-Driven Development (TDD), или разработка через тестирование — частное направление экстремального программирования. Суть этого принципа сводится к следующему:

  1. Составляется тест для небольшого отрывка кода, описывающего «базу».
  2. Создается код, прогоняется тест.
  3. По мере увеличения объема кода тест прогоняется повторно, каждый раз подтверждая правильность.

Отметим плюсы такого подхода:

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

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

Чтобы погрузиться в тему TDD, почитайте классные вводные статьи:

  1. Обзорный текст на Habr.
  2. Подробная статья на Technology Conversations.
  3. Наглядный туториал на Agile Data.
  4. Тест на вашу совместимость с TDD на Scott Logic.

И несколько книг:

  1. Экстремальное программирование: разработка через тестирование. Кент Бек.
  2. The Art of Unit Testing: With Examples in .NET. Roy Osherove.
  3. xUnit Test Patterns: Refactoring Test Code. Gerard Meszaros.
  4. Test-Driven Web Development with Python. Harry Percival.
  5. Growing Object-Oriented Software, Guided by Tests, Steve Freeman.

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

Пройти обучение

12 авг 19, 17:59
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 3

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru