Закрыто

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

Тема в разделе "Курсы по программированию", создана пользователем popovsqa, 18 июл 2014.

Цена: 11000р.-96%
Взнос: 354р.
100%

Основной список: 71 участников

Резервный список: 28 участников

Статус обсуждения:
Комментирование ограничено.
  1. 18 июл 2014
    #1
    popovsqa
    popovsqa ДолжникДолжник

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

    Программирование на C# для тестировщиков (использование библиотеки Selenium WebDriver)

    Этот курс предназначен для обучения тестировщиков программированию на языке С# .
    Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.

    Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организовать код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.

    1. Основы программирования, типы данных, структура кода
    Большинство учебников и курсов по программированию начинаются с написания простейшей программы, которая выводит на консоль слова “Hello, world!”. Мы не станем нарушать эту традицию, потому что первым делом нужно подготовить среду разработки и убедиться, что всё установлено и настроено правильно.

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

    И вот на этом этапе мы как раз обсудим базовые конструкции языка программирования С# -- пространства имён, классы и объекты, поля и методы, переменные и типы данных.

    2.1. Двухуровневая архитектура тестового набора
    Автотесты “системного” уровня (в отличие от “юнит-тестов”) удобно разделить на два слоя -- 1) собственно тесты, 2) код, ответственный за взамодействие с тестируемой системой, причём вторая часть, как правило, является более сложной технически.

    Мы научимся создавать такую двухуровневую архитектуру путём плавной трансформации ранее созданных при помощи “рекордера” простых одноуровневых тестов, и познакомимся с понятием “рефакторинга” кода.

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

    2.2. Управление потоком выполнения кода: условный переход
    Условный переход (if-then) -- это одна из основных конструкций языка программирования, позволяющая программе вести себя по разному в разных условиях.

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

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

    Однако чаще циклы используются при работе с “коллекциями” -- списками и множествами объектов какого-то типа. Мы научимся строить и модифицировать коллекции, сравнивать и сортировать их, а также реализовывать в тестах сложные проверки, в которых участвуют коллекции объектов.

    4. Работа со строками
    Строки -- один из самых широко распространённых типов данных, с которым приходится иметь дело в тестах, особенно если тестирование выполняется через пользовательский интерфейс. Конечно, эти строки могут представлять собой числа или даты или объекты какого-то другого типа, но из тестируемого приложения мы получаем их именно в виде строк, так что перед дальнейшим использованием их ещё нужно правильно преобразовать в нужный тип данных.

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

    5. Работа с файлами
    Файлы -- это место, где можно хранить тестовые данные. Поэтому в контексте разработки автотестов важно уметь читать данные из файлов разного формата. С другой стороны, создавать тестовые данные тоже не обязательно вручную, можно написать программу, которая их будет гененировать и сохранять в файл нужного формата.

    Мы научимся читать данные из файлов в формате CSV, XML, Excel, а также писать данные в файл в этих форматах.

    6. Автоматизация Windows UI
    С одной стороны, это занятие-повторение. Мы заново построим новый тестовый набор с двухуровневой архитектурой для нового тестируемого приложения, для закрепления материала. С другой стороны, мы выберем приложение другого типа -- не веб-, а десктопное windows-приложение. Поэтому для работы с ним потребуется другой инструментарий. Но при этом мы увидим, что принципы построения тестового набора остаются теми же самыми.

    7. Работа с базами данных
    Подавляющее большинство многопользовательских приложений (к которым относятся и веб-приложения), а также многие однопользовательские приложения, используют базы данных для хранения информации. Когда пользователь вводит какую-то информацию через интерфейс приложения, она после некоторой обработки попадает в базу данных и хранится там до тех пор, пока она не потребуется для работы того же самого или или какого-то иного приложения. При тестировании часто бывает удобно проверить, правильно ли сохранилась информация в базе данных. Поэтому многие тестировщики, даже не умея программировать, достаточно хорошо владеют языком запросов к базе данных SQL.

    Сначала мы научимся пользоваться технологией доступа к базам данных, которая позволяет выполнять привычные SQL-запросы и анализировать полученный ответ как таблицу. Затем мы освоим более современную технологию объектно-реляционных преобразований LINQ, позволяющую вместо SQL использовать более высокоуровневый и не зависящий от конкретной базы данных язык запросов.

    8. Работа с почтой

    9. Сетевое программирование (протоколы прикладного уровня)

    Эти два занятия будут посвящены рассмотрению особенностей тестирования распределённых приложений и вопросам автоматизации интеграционного тестирования.

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

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

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

    10. Тестовые фреймворки
    И последнее занятие будет посвящено рассмотрению альтернативных тестовых фреймворков, в том числе инструмента для разработки тестов “на естественном языке” SpecFlow.
    Цена: 11000р.
     
    Последнее редактирование модератором: 18 июл 2014
    2 пользователям это понравилось.
  2. Последние события

    1. analytic
      analytic оставил отзыв "Отлично".
      25 дек 2014
    2. Хован
      Хован оставил отзыв "Отлично".
      2 ноя 2014
    3. DiGal
      DiGal оставил отзыв "Отлично".
      1 ноя 2014
    4. thedoctorde
      thedoctorde оставил отзыв "Отлично".
      1 ноя 2014

    Последние важные события

    1. skladchik.com
      Складчина закрыта.
      26 авг 2014
    2. skladchik.com
      Взнос составляет 177р.
      8 авг 2014
    3. skladchik.com
      Складчина активна.
      8 авг 2014
    4. skladchik.com
      Сбор взносов начинается 07.08.2014.
      4 авг 2014
  3. Отзывы участников

    5/5,
    • 5/5,
      Работой организатора доволен
      Работа орга на высоте..курс пока не смотрел
      25 дек 2014
    • 5/5,
      Работой организатора доволен
      Отличная организация, отличный курс :)
      2 ноя 2014
      1 человеку нравится это.
    • 5/5,
      Работой организатора доволен
      Курс начал только изучать подача материала понравилась, пока что все легко и понятно усваивается. Оргу отдельная благодарность за отличную организацию!
      1 ноя 2014
      1 человеку нравится это.
    • 5/5,
      Работой организатора доволен
      Отличная работа организатора! Материал выкладывался быстро и сам курс очень качественный (начинающим есть что нового узнать)
      1 ноя 2014
      1 человеку нравится это.
    • 5/5,
      Работой организатора доволен
      огромное спасибо оргу за отлично выполненную раздачу !
      не давно начал изучать сей материал , преподаватель грамотный , объясняет доступно.
      1 ноя 2014
      1 человеку нравится это.
    • 5/5,
      И продукт хорош и орг выше всяких похвал!

      Про курс, он, конечно, именно что для пользователей, для кодеров сильно много воды и мало нового.
      31 окт 2014
      4 пользователям это понравилось.
    • 5/5,
      Работой организатора доволен
      Курс отличный. Автор пошагово рассказывает от азов программирования до рассмотрения тестовых фреймворков. Маатериал сложный, но довольно интересный. Орг выдавал материал каждую неделю ,а не одним архивом через 2 месяца, за что ему отдельное большое СПАСИБО!
      31 окт 2014
      4 пользователям это понравилось.
    • 5/5,
      Работой организатора доволен
      Курс мне показался достаточно сложным (это же прекрасно, кэп!).
      Уважаемый Орг провел складчину очень четко и правильно. Респект ему!
      31 окт 2014
      3 пользователям это понравилось.
  4. Обсуждение
  5. 18 июл 2014
    #2
    openbr
    openbr ДолжникДолжник
    че-то мы как-то одновременно темы создали :rolleyes:, но у меня народу больше (а вечеру предполагаю еще будет больше) перебирайтесь в мою что ли.:oops:
    не заметил я вашу, хотя перед создание специально проверил (видимо долго ковырялся с оформлением)

    P.s. Мне в принципе пофиг кто будет оргом... :cool:
     
    1 человеку нравится это.
  6. 18 июл 2014
    #3
    Grek2010
    Grek2010 ОргОрганизатор
    Получилось что эта раньше создана, вторую удалил.
     
  7. 18 июл 2014
    #4
    openbr
    openbr ДолжникДолжник
    эх, а я так старался, ковырялся с оформлением полчас, любителей автоматизации приглашал с других тематических складчин (полдня)
    Щас у них мертвые ссылки получатся (полдня работы - коту под хвост) :rolleyes:
     
  8. 18 июл 2014
    #5
    Grek2010
    Grek2010 ОргОрганизатор
    Добавил твое описание сюда, оно на самом деле более информативнее :rolleyes:
     
  9. 18 июл 2014
    #6
    openbr
    openbr ДолжникДолжник
    Огромная просьба, Господа Члены Клуба, особенно к тем у кого место в подписи пустует, поставьте пожалуйста ссылку на эту ветку себе в подпись, и сделайте там акцент не на тестировании, а на автоматизации работы в браузере, Желающих накрутить что-либо гораздо больше, чем желающих что-то тестировать :cool:
    И нам всем будет дешевле ;)
     
    Последнее редактирование модератором: 19 июл 2014
    1 человеку нравится это.
  10. 18 июл 2014
    #7
    udk100
    udk100 ЧКЧлен клуба
    Что это за звери такие программирующие тестировщики, для кого курс полезен будет?
    Во что нашел
     
  11. 18 июл 2014
    #8
    goandr
    goandr ЧКЧлен клуба
    Спасибо за тему!
    А от этого же автора только про java и pithon уже было?
     
  12. 19 июл 2014
    #9
    openbr
    openbr ДолжникДолжник
    уже было
    питон был здесь
    яву ищи в паблике
     
  13. 19 июл 2014
    #10
    openbr
    openbr ДолжникДолжник
    смотри глубже, это считай, что бесплатный аналог Human Emulator! Можно крутить все что у тебя в мыслях есть! Автоматизация осуществляется непосредственно берез браузер, а не через запросы пост/гет! А это - проще крутитить что угодно, и сложнее вычислить накрутку! Как-то так, бро... Ну конечно никто не запрещал тестировать свои веб-приложения на предмет устойчивости ;)
    Да здравствует бесплатная и безлимитная автоматизация работы в браузере при помощи Selenium!
    Ура товарищи!
    Автоматизированное тестирование чужих веб-приложений, это не только ценная практика, но и 3-4 килограмма российских рублей! ;)
     
    Последнее редактирование модератором: 19 июл 2014
    2 пользователям это понравилось.
  14. 27 июл 2014
    #11
    openbr
    openbr ДолжникДолжник
    до старта курса осталось чуть больше полмесяца, активнее приглашаем народ
     
    Последнее редактирование модератором: 27 июл 2014
  15. 28 июл 2014
    #12
    analytic
    analytic ОргОрганизатор (А)
    openbr - когда покраснеешь?=)
     
  16. 30 июл 2014
    #13
    Eskin
    Eskin ЧКЧлен клуба
    3-4к рублей в день?
    Если да, то думаю уже можно в авторские складчины со своим мануалом. ;)
     
  17. 30 июл 2014
    #14
    openbr
    openbr ДолжникДолжник
    Че зря воздух сотрясаешь? не записываешься, то и не фиг троллить ;)
    Или у тебя что-то по делу? :cool: выкладывай!
    Спасибо конечно за то что апнул тему, только вот не нужно здесь лишний флудизм разводить. ;)
    Записывайся давай, а потом хоть в авторские, хоть на глопарт, куда хочешь, мне все равно... :rolleyes:
     
  18. 4 авг 2014
    #15
    openbr
    openbr ДолжникДолжник
    ...также не забываем, что мы ограничены по времени...
     
    Последнее редактирование модератором: 4 авг 2014
  19. 6 авг 2014
    #16
    Pitman
    Pitman БанЗабанен
    Курс можно "с нуля" изучать, я правильно понял?
     
  20. 6 авг 2014
    #17
    openbr
    openbr ДолжникДолжник
    я думаю да (читай под спойлером п.1)
     
    1 человеку нравится это.
  21. 15 авг 2014
    #18
    ilyamart
    ilyamart ЧКЧлен клуба
    Напишите реквизиты плиз
     
  22. 24 авг 2014
    #19
    wwt1983
    wwt1983 СкладчикСкладчик
    Добрый вечер! Скажите, еще можно оплатить?
     
Статус обсуждения:
Комментирование ограничено.