Программирование на C# для тестировщиков
Курс направлен на изучение возможностей языка C# и вспомогательных библиотек, позволяющих разрабатывать автотесты для приложений разных типов, а также шаблонов проектирования, позволяющих удобно организовать и легко изменять код.
Онлайн-тренинг
Описание
Этот курс предназначен для обучения тестировщиков программированию на языке С# (для тех, кого интересуют другие языки, у нас есть аналогичные курсы для Python и Java).
Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организовать код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Для успешного прохождения курса необходимо знание школьного курса информатики и опыта программирования на школьном уровне на любом из языков. Если у вас нет такого опыта, то мы рекомендуем начать с более простого курса.
1. Основы программирования, типы данных, структура кода
Большинство учебников и курсов по программированию начинаются с написания простейшей программы, которая выводит на консоль слова “Hello, world!”. Мы не станем нарушать эту традицию, потому что первым делом нужно подготовить среду разработки и убедиться, что всё установлено и настроено правильно.
Но затем мы сразу совершим “прыжок” -- вместо того, чтобы постепенно усложнять свою первую примитивную программу, мы запишем “рекордером” готовый тест, перенесём его в среду разработки, подключим все необходимые вспомогательные библиотеки, и только после того, как он успешно запустится -- внимательно рассмотрим, как этот тест устроен.
И вот на этом этапе мы как раз обсудим базовые конструкции языка программирования С# -- пространства имён, классы и объекты, поля и методы, переменные и типы данных.
2. Двухуровневая архитектура тестового набора
Автотесты “системного” уровня (в отличие от “unit-тестов”) удобно разделить на два слоя: 1) собственно тесты, 2) код, ответственный за взамодействие с тестируемой системой, причём вторая часть, как правило, является более сложной технически.
Мы научимся создавать такую двухуровневую архитектуру путём плавной трансформации ранее созданных при помощи “рекордера” простых одноуровневых тестов, и познакомимся с понятием “рефакторинга” кода.
Кроме того, в процессе построения такой архитектуры мы освоим использование механизма наследования, который является одним из ключевых элементов парадигмы объектно-ориентированного проектирования (ООП).
3. Управление потоком выполнения кода: условный переход
Условный переход (if-then) -- это одна из основных конструкций языка программирования, позволяющая программе вести себя по разному в разных условиях.
Мы научимся использовать эту конструкцию для того, чтобы менять поведение программы в зависимости от ситуации (есть на странице тестируемого веб-приложения нужный элемент или нет) и от входных данных (определено значение некоторой переменной или нет), для оптимизации тестов (уже попали на нужную страницу приложения или нет) и для повышения их гибкости.
4. Коллекции и циклы
Вторая основополагающая конструкция языка программирования -- это цикл, то есть многократное выполнение некоторого фрагмента кода. В тестах она может встречаться, например, при генерации большого количества тестовых данных.
Однако чаще циклы используются при работе с “коллекциями” -- списками и множествами объектов какого-то типа. Мы научимся строить и модифицировать коллекции, сравнивать и сортировать их, а также реализовывать в тестах сложные проверки, в которых участвуют коллекции объектов.
5. Работа со строками
Строки -- один из самых широко распространённых типов данных, с которым приходится иметь дело в тестах, особенно если тестирование выполняется через пользовательский интерфейс. Конечно, эти строки могут представлять собой числа или даты или объекты какого-то другого типа, но из тестируемого приложения мы получаем их именно в виде строк, так что перед дальнейшим использованием их ещё нужно правильно преобразовать в нужный тип данных.
Мы научимся сравнивать строки, проверять их на соответствие регулярным выражениям, преобразовывать строки в числа и обратно, а также генерировать строки, состоящие из случайного набора символов.
6. Работа с файлами
Файлы -- это место, где можно хранить тестовые данные. Поэтому в контексте разработки автотестов важно уметь читать данные из файлов разного формата. С другой стороны, создавать тестовые данные тоже не обязательно вручную, можно написать программу, которая их будет гененировать и сохранять в файл нужного формата.
Мы научимся читать данные из файлов в формате CSV, XML, Excel, а также писать данные в файл в этих форматах.
7. Автоматизация Windows UI
С одной стороны, это занятие-повторение. Мы заново построим новый тестовый набор с двухуровневой архитектурой для нового тестируемого приложения, для закрепления материала. С другой стороны, мы выберем приложение другого типа -- не веб-, а десктопное windows-приложение. Поэтому для работы с ним потребуется другой инструментарий. Но при этом мы увидим, что принципы построения тестового набора остаются теми же самыми.
8. Работа с базами данных
Подавляющее большинство многопользовательских приложений (к которым относятся и веб-приложения), а также многие однопользовательские приложения, используют базы данных для хранения информации. Когда пользователь вводит какую-то информацию через интерфейс приложения, она после некоторой обработки попадает в базу данных и хранится там до тех пор, пока она не потребуется для работы того же самого или или какого-то иного приложения. При тестировании часто бывает удобно проверить, правильно ли сохранилась информация в базе данных. Поэтому многие тестировщики, даже не умея программировать, достаточно хорошо владеют языком запросов к базе данных SQL.
Сначала мы научимся пользоваться технологией доступа к базам данных, которая позволяет выполнять привычные SQL-запросы и анализировать полученный ответ как таблицу. Затем мы освоим более современную технологию объектно-реляционных преобразований LINQ, позволяющую вместо SQL использовать более высокоуровневый и не зависящий от конкретной базы данных язык запросов.
9. Сетевое программирование (протоколы прикладного уровня)
Эти два занятия будут посвящены рассмотрению особенностей тестирования распределённых приложений и вопросам автоматизации интеграционного тестирования.
Помимо того, что приложения читают и пишут файлы, а также работают с базами данных, они ещё и взаимодействуют между собой. Поэтому при тестировании постоянно приходится решать задачу создания такого окружения для тестируемого приложения, которое либо эмулирует поведение сторонних систем, либо содержит специальные тестовые версии таких систем. Двигаясь по первому пути мы приходим к необходимости разработки специальных приложений-эмуляторов. Второй путь ставит перед нами задачу разработки таких автоматизированных тестов, которые способны управлять не только тестируемым приложением, но и рядом вспомогательных систем.
Для веб-приложений характерным случаем является использование электронной почты -- отправка ссылки для подтверждения регистрации, восстановление пароля, оповещения о каких-либо событиях. Для тестирования такого рода функциональности мы научимся работать с почтовым сервером из автоматизированных тестов: принимать и отправлять почту, анализировать содержимое почтовых сообщений. Одновременно с этим будут рассмотрены шаблоны проектирования тестов для распределённых систем.
Мы научимся из автоматизированных тестов получать файлы с тестового стенда или загружать их туда по протоколу FTP, это позволит проверять функциональность загрузки файлов на сервер через веб-приложение. Мы научимся формировать и отправлять произвольные HTTP-запросы, а не только такие, которые можно отправить через браузер, это позволит разрабатывать тесты для проверки надёжности и устойчивости приложений. Выйдя за пределы автоматизации только через пользовательский интерфейс путём эмуляции действий пользователя в браузере, мы научимся создавать комплексные тесты, проверяющие интеграцию нескольких систем.
10. Тестовые фреймворки
И последнее занятие будет посвящено рассмотрению альтернативных тестовых фреймворков, в том числе инструмента для разработки тестов “на естественном языке” SpecFlow.
Для прохождения тренинга не нужно приобретать лицензию на Microsoft Visual Studio, можно использовать бесплатную версию Microsoft Visual Studio Community Edition.
Формат
10 занятий (15 часов теории) + много практических заданий для самостоятельной работы + постоянные консультации тренера в чате.
Раз в неделю по пятницам до 12.00 по Московскому времени выкладываются теоретические лекции, ссылки на дополнительные материалы, домашняя работа.
Теоретическую информацию можно посмотреть в любое удобное время.
Помимо теоретической части, вас также ждут практические задания для самостоятельной работы, которые вы можете прислать тренеру на проверку. После проверки практических заданий Вы получаете подробный комментарий по своей работе и при необходимости советы по доработке. По результатам комментариев тренера Вы можете переделать работу и отправить ее тренеру еще раз.
Общение участников курса и тренера проходит и в чате группы, где можно задавать вопросы тренеру и при желании общаться с другими участниками группы. Вы можете задавать вопросы по теоретическому материалу или практическим работам, как только они у вас возникают.
Все выпускники, успешно сдавшие домашние задания, получают сертификат.
Материалы курса доступны в течение года с даты окончания.
Условия
Стоимость участия для физических лиц: 18 500 рублей за весь курс.
Стоимость участия для юридических лиц: 22 500 рублей за весь курс за одного участника. При регистрации от 3-х участников на один курс действует 15% скидка.
Организатор тренинга: ИП Баранцев Алексей Владимирович, ИНН 501208546235, ОГРНИП 309501211900065
Информация для физических лиц:
Услуги оказываются на основании публичного договора оферты. Ознакомиться с договором можно ЗДЕСЬ.
Если Вы хотите оплатить тренинг прямо сейчас, то нажмите кнопку выше для перехода в наш магазин и оформите покупку (если кнопка активна, значит можно оплачивать не беспокоясь о наличии мест). После оплаты мы пришлем письмо о регистрации на курс и подтверждение оплаты. Если Вы не получили письмо в течение рабочего дня, просто отправьте сообщение на trainings@software-testing.ru
Если Вы хотите совершить оплату позже, для гарантированного участия обязательно забронируйте место на тренинге, для этого необходимо нажать на кнопку ЗАПИСАТЬСЯ справа от тренинга и заполнить все необходимые поля.
Если у Вас есть какие-то вопросы, их можно задать по указанному выше адресу.
По ссылке Вы можете ознакомиться с информацией о способах оплаты: http://software-testing.ru/buy/sposoby-oplaty
Информация для юридических лиц:
Для регистрации на тренинг и оформления договора и выставления счета на оплату нажмите кнопку Записаться, выберите пункт Организация и заполните все поля.
Обратите внимание, что при постоплате стоимость тренинга увеличивается на 25%.
В случае возникновения вопросов обращайтесь по адресу trainings@software-testing.ru.
Отзывы
Екатерина Палиенко, Альфа-банк
Данный курс для меня стал мотивирующим толчком для изучения автоматизации тестирования. Очень понравилась практическая ориентация подачи материала. Курс знакомит с рядом технологий, с которой можно двигаться в сторону автоматизации как веб-, так и десктопных приложений. Но если бы в курсе также предлагались по каждой теме ссылки на дополнительные материалы для изучения теории было бы совсем замечательно. Курс открывает окно в мир автоматизации для тестировщиков, знакомых с программированием, а рекомендации по материалам для углубления знаний стали бы лестницей в него.
Тренер оперативно проверял задания и отвечал на вопросы в чате. Замечаний по его работе нет)
Горохов Федор, МФК "Align Technology"
Простите, все времени не было, но лучше поздно чем никогда.
Хочется сказать большое человеческое спасибо Алексею за лекции.
Курс был очень интересный и в меру сложный. Полностью догнать ушедшую на 3 недели вперед группу я так и не смог, но был близок. Думаю, могу сказать что информация не пролетела мимо - уже написал основу будущей системы мониторинга энвайронментов (пока только проверка через веб-интерфейс живы ли веб-сервера, крутится ли на них нужные сервисы) для своей работы, на основе нее надеюсь выращу систему для автоматизации интеграционного тестирования.
Занько Александра Сергеевна, ООО «Белэнвижн», ведущий инженер
Курс превзошел(и до сих пор превосходит) все ожидания, не думала, что будет столько интересного материала. Лекции четкие, информация подается последовательно и понятно. Очень рада, что было огромное количество практических заданий.
Анонимно
Формат тренинга чрезвычайно удобен - особенно прослушивать записи курса и ставить на паузу для выполнения тех или иных шагов. Также очень удобен общий скайп-чат. Онлайн-консультации так же неплохи, просто в этом курсе большая часть вопросов решалась в скайп-чате. Получил именно те знания, которые хотелось. Для старта изучения той или иной области автоматизации - этого вполне достаточно.
Ближайшие онлайн
-
Charles Proxy как инструмент тестировщика
Начало: 21 ноября 2024
-
CSS и Xpath: инструменты тестировщика
Начало: 21 ноября 2024
-
Python для начинающих
Начало: 21 ноября 2024
-
Автоматизация тестов для REST API при помощи Postman
Начало: 21 ноября 2024
-
Азбука IT
Начало: 21 ноября 2024
-
Инженер по тестированию программного обеспечения
Начало: 21 ноября 2024
-
Программирование на C# для тестировщиков
Начало: 22 ноября 2024
-
Логи как инструмент тестировщика
Начало: 25 ноября 2024
-
Погружение в тестирование. Jedi point
Начало: 25 ноября 2024
-
Школа Тест-Аналитика
Начало: 27 ноября 2024
-
Bash: инструменты тестировщика
Начало: 28 ноября 2024
-
Chrome DevTools: Инструменты тестировщика
Начало: 28 ноября 2024
-
Docker: инструменты тестировщика
Начало: 28 ноября 2024
-
Git: инструменты тестировщика
Начало: 28 ноября 2024
-
SQL: Инструменты тестировщика
Начало: 28 ноября 2024
-
Тестирование GraphQL API
Начало: 28 ноября 2024
-
Школа для начинающих тестировщиков
Начало: 28 ноября 2024
-
Selenium IDE 3: стартовый уровень
Начало: 29 ноября 2024
-
Программирование на Python для тестировщиков
Начало: 29 ноября 2024
-
Тестирование REST API
Начало: 2 декабря 2024