Спасибо! Вы подписались на «Тестовый курс». Скоро придет письмо с дальнейшими инструкциями.

Тестовый курс

Практический курс о тестировании в Ruby и Rails. С наставником, теорией, домашкой и дополнительными материалами: статьями, советами, видео.

Последнее обновление: 25 декабря 2019 добавили четыре бонусных письмах с тонкостями тестирования рандома, внешних АПИ, рейк-тасков и «мигающих» тестов

Объясняем теорию на пальцах

И на примерах

Задаем домашние задания

И проверяем их в Гитхабе

Для кого

Для разработчиков знакомых с Ruby и RSpec, но не до конца понимающих что и как тестировать. Для тех, кто прочитал RSpec Book, но не может написать тест с нуля. Для тех, кто исправляет баг за 5 минут, а потом 2 часа пишет тест.

Если вы в совершенстве владеете TDD/BDD и отличаете мок от стаба, то уроки не принесут вам ощутимой пользы.

Чем полезен

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

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

В курсе предусмотрена практика. Набьёте на ней руку и станете писать тесты быстрее чем код.

Кто автор

Меня зовут Василий Половнёв, последние пять лет я работаю ведущим разработчиком в Бюро Горбунова: отвечаю за сроки и качество.

Я специализируюсь на бэкенде и клиентской оптимизации:

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

Курс в вашей компании

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

Чтобы начать разговор напишите:
vasily@polovnyov.ru

Ответы на вопросы

Что внутри?
Вот уроки, которые мы отправляем:

  • Понятные тесты
  • 5. Пишите для людей
  • 6. describe и context
  • 7. before и let
  • 8. Одна проверка на тест
  • 9. Ничего лишнего
  • Тесты в браузере
  • 10. Модульные тесты с Jest
  • 11. UI тесты
  • 12. Хорошие сценарии
  • Бонус-треки
  • 13. Как тестировать рандом
  • 14. Как тестировать код, использующий внешний АПИ
  • 15. Как тестировать рейк-таски
  • 16. Как бороться с «мигающими» тестами

Что будем использовать?
RSpec и Capybara. Тесты на них выразительные: их проще читать и понимать.

Какие системные требования?
Акаунт на Гитхабе и базовые знания Ruby и Rails: отличать класс от модуля, attr_reader от attr_accesor, контролер от модели.

Если сомневаетесь, пройдите бесплатный вводный курс по Ruby и RSpec:
Как написать первый тест с RSpec

Сколько времени занимает?
Около 3-4 часов в неделю. Первые домашние задания самые сложные: бывает, в них по 70-80 замечаний, нужно будет чуть больше времени.

 

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

А можно купить в рассрочку?
Конечно. Напишите на vasily@polovnyov.ru, что-нибудь придумаем.

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

Что если уроки не приходят?
Напишите на vasily@polovnyov.ru. Если проблему с доставкой писем не сможем исправить, вернём деньги.

Можно ли отказаться?
Если курс вам не понравится, вернём деньги пропорционально неотправленным урокам.

Что еще почитать по тестам?
Пожалуйста:

Отзывы

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

Что получили?
Получил то, чего и ожидал, и даже больше. Узнал новые для себя приемы и подходы. Всеобъемлющий cheat sheet по тестированию)

Увидел свои слабые стороны — нужно уметь контролировать своё время и подтягивать английский. Желание написать свой первый миллион тестов :-)

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

Чего не хватило курсу, чтобы он вам принес ещё больше пользы?
Наверное, практических заданий, чтобы тесты прям от фаланг отскакивали) (Может быть, когда-то появится Pro-версия курса :-)).

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

Благодарю за терпение и за возможность правильной мысли в тестировании с самого старта!

Евгений Соболенко

Чего вы ждали от курса?
Я хотел получить структурированные знания о тестировании с использованием RSpec.

Что получили?
В целом всё, что ожидал.

Что понравилось?
Краткость (хотя сначала и было непривычно) и конкретность изложения. Уровень внимания к деталям во время ревью.

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

Кому бы вы порекомендовали курс?
Себе три года назад.

Василий, спасибо за курс! Очень круто получилось!

Александр Борисов

Чего вы ждали от курса?
Ждал, что буду понимать, что и как тестировать. Сложится структура, как надо и как не стоит тестировать.

Что получили?
Собственно это и получил. Осталось только больше практиковаться.

Что понравилось?
Всё понравилось.

Чего не хватило курсу, чтобы он вам принес ещё больше пользы?
Еще больше домашки. И очень сильно не хватает теста GraphQl с домашним заданием.

Кому бы вы порекомендовали курс?
Так коллегам и посоветую. Хотя коллеги мне и посоветовали пройти этот курс ) Им спасибо.

П.С. Василий, большое спасибо за терпение )

Алексей

Чего вы ждали от курса?
Я хотел получить структурированные знания о тестировании с использованием RSpec.

Что получили?
Получил то, что хотел, и даже больше.

Что понравилось?
Мне очень понравилось, что во время курса все подходы были аргументированы. Аргументы в выборе того или иногда предлагаемого подхода дали возможность переосмыслить сформированные привычки в тестировании и осознать в каких именно местах моих тестов была выбрана неправильная техника и/или тактика.

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

Чего не хватило курсу, чтобы он вам принес ещё больше пользы?
Лично мне в написании тестов не хватало binding.pry. Иногда бывает удобно остановиться в тесте и посмотреть, что же именно я замокал. Материалы о JS мне сложно оценить, потому что у меня нет опыта работы с JS. А в работе с capybara мне не хватило настроенного запуска тестов вживую и binding.pry: иногда хочется видеть, где именно находится курсор и какая кнопка нажимается.

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

В.П.: добавили в домашку pry, pry-byebug, инструкции для запуска Капибары вживую. Плюс пересмотрели лекции и ссылки на дополнительную литературу в них

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

Курс однозначно дает полное представление о подходах в тестировании с использованием RSpec и это отличная возможность ответить на вопрос «а правильно ли я использую тесты?».

Алексей Ярославцев

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

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

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

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

В самих заданиях я бы добавил 1-2 предложения, в которых бы описывалась бизнес-суть тестируемого модуля, так было бы проще погрузиться в контекст задачи.

Андрей Ермолаев

Чего вы ждали от курса?
— больше узнать о тестировании;
— практики под присмотром.

Что получили?
Всё, что ожидал.

Что понравилось?
— хороший и доходчивый язык в письмах;
— необходимо и достаточно ссылок по теме;
— отзывы и общение по коду.

Чего не хватило курсу, чтобы он вам принес ещё больше пользы?
— вопросов для самопроверки в уроках. Что-то типа: «Ознакомься с уроком, прочитай статьи из урока и ответь на следующие вопросы: ...»;
— необязательные задания с повышенной сложностью;
— ссылок «куда идти дальше» в последнем письме.

Кому бы вы порекомендовали курс?
Парням на работе.

Курс сделал вторую половину лета ещё лучше.
Спасибо, Василий!

Алексей Мехоношин

Чего вы ждали от курса?
Хотелось закрыть свои пробелы в RSpec.

Что получили?
Применяю полученные знания на работе, получил положительный отзыв о качестве написанных тестов.

Что понравилось?
Доступность информации и подробный Code Review.

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

Кому бы вы порекомендовали курс?
Уже рекомендовал коллегам.

Давид Саламау

Чего вы ждали от курса?
Лучшего понимания как и что тестировать. Когда достаточно модульных тестов, когда нужны интеграционные. Избавиться от страха/лени писать тесты.

Что получили?
Умение писать тесты с нуля. Вижу и понимаю когда тесты написаны плохо (не всегда, но много лучше чем до курсов). Теперь, когда вижу кривые тесты, глаза начинают кровоточить, руки чесаться, с трудом сдерживаю желание все перехерачить. И все-таки иногда перехерачиваю, если ПР от этого не сильно разрастется.

Что понравилось?
Язык, как все объяснено — с юмором и без занудства. Минимум текста, максимум наглядных примеров. Ко всем темам были примеры, простые и понятные. Домашнее задание для закрепление материала и его проверка с разбором — бесценно. После этого курса тесты стали восприниматься немного иначе. Не как принудиловка, рутина.

Чего не хватило курсу, чтобы он вам принес ещё больше пользы?
Немного не хватило примеров или практики для понимания, когда тестов слишком много. Можно было бы включить занятие по PageObjects (site_prism) и побольше примеров js тестов для общего развития. А так же тестов на вьюхи.

Разбора кукумбер фич. Многие сталкивались в проектах с ними, многие хотят избавиться от них

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

Нияз Серазетдинов

Подписаться

Курс идёт шесть недель. Есть два варианта: с проверкой домашки и без. В обоих вариантах вы получаете по электронной почте 16 уроков с домашними заданиями.

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

Оплата банковской картой. При оплате укажите адрес, на который отправлять письма.