Всю рутину, которую можно отдать роботам, нужно отдать роботам. Большие системы без этого невозможны. В разработке и тестировании очень много похожих задач, которые не требуют высокой квалификации, но отнимают много времени. Человек, который умеет обеспечить разработку, тестирование и деплой – это редкий специалист и его на количество этих страничек никак не масштабируешь.
В Яндексе тестировщику невозможно без автоматизации. Мы даже развиваем экспериментального робота, который способен брать на себя функциональное тестирование. В какой-то момент мы поняли, что не так много людей осознают, сколько сейчас есть возможностей работать не 12 часов, а головой. Собрав весь свой опыт в тестировании и деплое, мы открыли в питерском офисе Яндекса Школу автоматизации процессов разработки. У нас получилась школа, где каждый, кто пишет код, может получить базовый набор знаний о том, как собрать, запустить и поддерживать сервис в продакшене так, чтобы это стоило недорого.
Курс открывает моя лекция о том, зачем вообще автоматизировать процесс разработки. Из нее вы получите представление о то, что будут рассказывать мои коллеги.
Сейчас занятия закончились, и мы, как и обещали, выкладываем записи лекций, которые перемежаются с мастер-классами, для всех желающих. Понятно, что наш опыт и знания – не 42, но мы надеемся, что они принесут вам пользу.
Системы хранения исходного кода
Марат Мавлютов занимается автоматизацией тестирования той части Яндекса, надежная работа которой напрямую влияет на доходы компании – рекламных технологий.
В лекции Марат расскажет, зачем вообще нужны системы хранения исходного кода, их историю и уделит отдельное внимание рассказу о Git и Github.
Автоматизация сборки Java-проекта
Иван Крутовзанимается вопросами, связанными с применением облачных технологий для целей тестирования. Он один из разработчиков проекта Allure Framework. Он служит для получения отчетов о прохождении автотестов. Отчеты отображают информацию в понятном виде и для тестировщиков, и для менеджеров проекта. К ним можно прикладывать скриншоты, логи и любые другие файлы. Allure позволяет разбивать сложные тесты на шаги, включать информацию о параметрах тестов и тестового окружения.
Из лекции вы узнаете, почему промышленная разработка невозможна без использования инструментов сборки, услышите краткую историю их развития. Иван расскажет о наиболее популярных инструментах сборки для Java-платформы и некоторых других языков программирования, поговорит об основных возможностях Maven.
Инструменты непрерывной интеграции
Денис dchr Чернилевский руководит работой команды, которая занимается тестированием системы медийной рекламы и Яндекс.Браузера. У Дениса есть опыт и в интернет-сервисах, и в софтовых продуктах. В Яндексе он с 2012 года, а до этого четыре года был сначала инженером, а потом руководителем в Parallels.
Лекция посвящена основам автоматизации различных процессов при разработке ПО. Она о том, что и для чего можно автоматизировать, какими инструментами для этого стоит пользоваться. Представлены несколько самых популярных CI-систем, на основе которых можно строить всю дальнейшую автоматизацию.
Автоматизация тестирования
Эту лекцию читаю я. Я в Яндексе уже шесть лет.
В этой лекции подробно рассказывается об интеграционных, системных и юнит-тестах, а также об их отрицательных и положительных сторонах.
Фреймворки автоматизации тестирования
Леонид Руденко руководит командой, которая отвечает за автоматизацию тестирования поисковых интерфейсов. Сам он закончил физфак СПбГУ, пришел в Яндекс в 2010 году стажером, а сейчас – ведущий инженер.
Все хотят писать тесты быстро и понятно, легко запускать их и анализировать результаты. Лёня расскажет, какие инструменты позволяют наладить процесс создания автотестов и что выбрать, чтобы не прогадать? В лекции вы познакомитесь с идеологией xUnit, а также Java-фреймворками JUnit и TestNG.
Отчеты автотестов
Дмитрий Баев – выпускник ИТМО. В Яндексе уже более двух лет. Занимается разработкой инструментов тестирования. Один из разработчиков Allure — фреймворка для получения отчетов о прохождении тестов.
Зачем нужны отчёты автотестов, какими они бывают и какой выбрать? В лекции вы познакомитесь с системами Surefire, Thucydides, Allure, а также узнаете, как сделать свой отчёт.
Запахи тестов
Кирилл Lanwen Меркушев пришел в Яндекс стажером в начале 2012 года. Начинал с автоматизации тестирования Яндекс.Почты. Сейчас его команда занимается автоматизацией тестирования персональных сервисов Яндекса: внутренних почтовых компонентов, Почты, Диска. Очень любит OpenSource и Jenkins.
Из лекций Кирилла вы узнаете, почему тестовый проект требует внимания больше, чем приносит пользы, от чего страдают некачественные тесты и как это «почуять». То есть как не автоматизировать все так, чтобы после этого стало хуже, чем было. Вы узнаете о необходимой профилактике, которая поможет избежать проблем с тестами.
Статический анализ кода
Артём art_koshelev Кошелев – один из создателей фреймворка Allure и человек, который отвечает за тестирование самой посещаемой страницы рунета – главной Яндекса. Работает в Яндексе уже больше пяти лет.
Артём расскажет от особенностях, достоинствах и недостатках динамического и статического анализа, устройстве статического анализатора. Вы услышите, почему составляющие качественного кода —понятность, простота и архитектура. Также в лекции затрагиваются популярные инструменты статического анализа и есть обзор SonarQube.
Покрытие кода
Илья Садыков в Яндексе около года. Он не только разрабатывает внутренние инструменты автоматизации процессов тестирования, но и различные открытые проекты команды qatools. Кандидат технических наук.
Это лекция о способах измерить качество тестирования кода. Подробный рассказ о тестовом покрытии и факторах, которые на него влияют. Илья затронет инструменты для измерения тестового покрытия и особенности их работы, и расскажет о возможностях, которые даёт инструментирование кода.
Нагрузочное тестирование
Олесь doctornkz Писаренко в Яндексе уже шесть лет. При нем у нас появился Танк и Лунапарк, о которых он рассказывал. Сейчас он руководит нагрузочным тестированием и занимается поддержкой нашего опенсорсного Танка. Это инструмент для нагрузочного тестирования и анализа производительности веб-сервисов и приложений. Танк был разработан в Яндексе в 2006 году для проверки на прочность баннерной системы. Сейчас это один из основных инструментов измерения производительности.
Это обзорная лекция о тестировании производительности для слушателей самого начального уровня. В ней рассматриваются самые базовые вопросы: смысл нагрузочного тестирования, его основные инструменты, отличия разных утилит, существующие виды тестов, критерии качества тестируемого продукта и т.д. Лекция полезна для расширения кругозора не только тестировщикам, но и менеджерам, разработчикам и администраторам высоконагруженных сервисов.
Как я говорил, помимо лекций у нас еще проводились мастер-классы. Для тех, кому удобнее смотреть их подряд вместе с лекциями, мы собрали отдельный плейлист с материалами Школы в канале Яндекс.Образование, где и дальше будут выкладываться материалы всех наших образовательных проектов.
Автор: eroshenkoam