Экскурсии в офис Mail.ru. Успейте записаться!

Обеспечение качества в разработке ПО

Осень 2019

Цель курса — Получение студентами теоретических знаний и практических навыков по обеспечению качества ПО.

В результате изучения дисциплины студенты должны

Знать:
- Что такое качество;
- Этапы обеспечения качества;
- Цели тестирования;
- Тестирование на этапе разработки;
- Кривая Боэма;
- Виды тестирования;
- Пирамида тестирования;
- Виды тестовой документации;
- Что такое и что показывает тестовое покрытие;
- Что такое белый и черный ящик;
- Когда стоит автоматизировать тестирование;
- Семейство фреймворков xUnit;
- Принципы юнит-тестирования;
- Инструменты для юнит-тестирования;
- Тестовые заглушки;
- Статический анализ кода;
- Паттерны и антипаттерны разработки тестов;
- Антипаттерны разработки ПО;
- Подходы к разработке тестов: TDD и BDD;
- Особенности тестирования web-приложений;
- Антипаттерны при работе с selenium;
- Что такое и зачем нужен Continuos Intergration;
- Инструменты для Continuos Intergration;
- Что такое Continuos Delivery и Continuos Deployment;
- Что такое и зачем нужно CodeReview;
- Что такое и зачем нужны системы контроля версий (Git);
- Зачем нужны системы управления конфигурациями;
- Задача нагрузочного тестирования;
- Ключевые показатели при нагрузочном тестировании;
- Стратегия проведения нагрузочного тестирования (модель, профиль, точки нагрузки);
- Инструменты для нагрузочного тестирования;
- Какие бывают метрики тестирования;

Уметь:
- Искать баги*;
- Оформлять багрепорты;
- Составлять чек-листы;
- Составлять тест-планы;
- Использовать багтрекинговые системы;
- Измерять тестовое покрытие;
- Писать юнит-тесты;
- Писать функциональные тесты;
- Анализировать результаты нагрузочного тестирования;

Владеть:
- Методом свободного поиска;
- Техниками тест-дизайна;
- Паттернами PageObject;
- Инструментами Selenium;

Подробнее

Курс состоит из 5 лекций, 4 практических занятий и 2 рубежных контролей (44 академических часов аудиторных занятий и 20 часов – самостоятельных).

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

Для получения успешной аттестации по данному курсу студентам необходимо набрать пороговый рейтинг — 60 баллов + иметь 2 сделанных ДЗ по автоматизации (даже если просрочили каждое на 15 дней).

При пересчете баллов студенты могут получить итоговую оценку: 0–59 неудовлетворительно, 60–74 удовлетворительно, 75–89 хорошо, 90-100 отлично.

Подробнее

Преподаватели

Дмитрий Котегов Дмитрий Котегов

Руководитель backend разработки
target.my.com

Рената Минигалиева Рената Минигалиева

Программист группы frontend-разработки Почты Mail.Ru. Ко мне можно обратиться по любым вопросам, ...


Подробнее

Виктория Камолдинова Виктория Камолдинова

Frontend-разработчик Почты Mail.Ru

Программа

занятие Часы в ауд. + сам. работа

Лекция №1: Введение в Обеспечение качества   + ДЗ №1

Знакомство. Обзор курса, его основных блоков и занятий. Рассмотрение понятия качества и его характеристик. Обоснование актуальности обеспечение качества в разработке. Связь понятий обеспечение качества и контроль качества. Этапы обеспечения качества.
Поговорим о том что такое тестирование, о его видах, целях, принципах и мифах.
Домашнее задание №1: Составление баг-репортов. Часть 1
В рамках домашнего задания каждая команда должна провести тестирование своего проекта и зафиксировать найденные баги и недочеты
4 часа + 2 часа СР

Лекция №2: Дефекты и тестовая документация   + ДЗ №2

На этом занятии мы поговорим о багах и о тестовой документации. Важность обнаружения багов на начальных этапах разработки. Severity и Priority багов. Основные типы багов. Откуда берутся баги и как их предупредить. Познакомимся с наиболее популярными баг-трекинговыми системами, видами тестовой документации (тест-план, тестовый набор, тест кейс). Покажем как правильно составлять баг-репорты, как вести тестовую документацию и расскажем почему это так нужно.
Домашнее задание №2: Составление баг-репортов. Часть 2
В рамках домашнего задания необходимо оформить баг-репорты для найденных ранее дефектов
4 часа + 2 часа СР

Лекция №3: Тестовое покрытие, тест дизайн   + ДЗ №3

Тестовое покрытие. Задача минимизации кол-ва проверок при сохранении максимального покрытия. Классы эквивалентности. Анализ граничных значений. Комбинаторные методы генерации тестовых наборов. Стохастическое тестирование. Мутационное тестирование.
Домашнее задание №3: Часть 1: Составление чек-листа на проект
В рамках домашнего задания каждому члену команды необходимо составить чек-лист на свою часть проекта
4 часа + 4 часа СР

Лекция №4: Модульное тестирование  

Модульные тесты. Задачи, решаемые модульными тестами. Анатомия модульного теста. Тестовые фреймворки. Форматы отчетов.
Заглушки. Примеры заглушек. xUnit.
Покрытие кода тестами. Различные метрики и инструменты для измерения покрытия.
Паттерны и антипаттерны разработки тестов. TDD. Антипаттерны в разработке ПО. Статический анализ кода.
4 часа + 2 часа СР

Семинар №1: Unit-тесты на JavaScript  

Особенности написания unit-тестов на js. Рассмотрим наиболее популярные фреймворки. Познакомимся с лучшими практиками и напишем несколько тестов при помощи chai и mocha
4 часа + 4 часа СР

Рубежный контроль №1: Рубежный контроль  

Рубежный контроль по первому блоку
4 часа + 4 часа СР

Лекция №5: Автоматизация тестирования   + ДЗ №4

Когда стоит автоматизировать. Задачи, решаемые функциональными тестами. Функциональное тестирование UI. Selenium WebDriver: назначение, возможности, аналоги. Дополнительные возможности драйверов. Selenium Grid.
Паттерны проектирования функциональных браузерных тестов: PageObject. Антипаттерны при работе с Selenium. BDD.
Домашнее задание №4: Часть 2: Автоматизация функционального тестирования
В рамках домашнего задания необходимо написать автоматизированные функциональные selenium тесты по чек-листам, которые делались в предыдущем задании. Работа выполняется в командах. На одного человека один чек-лист.
4 часа + 4 часа СР

Семинар №2: End-to-End тесты на JavaScript  

Рассмотрим современные инструменты для тестирования веб-приложений.
Создадим и настроим тестовый проект с webdriver io. Напишем несколько тестов, которые запускаются и проходят. Поговорим про скорость написания тестов и их стабильность
4 часа + 4 часа СР

Лекция №6: Непрерывная интеграция  

Что такое CI. Основные идеи. Какие проблемы решает. Требования для CI
Автоматическая сборка. Антипаттерны в CI. Инструменты. CD.
4 часа + 2 часа СР

Лекция №7: Нагрузочное тестирование  

Зачем нужно нагрузочное тестирование. Ключевые показатели. Модель нагрузки. Профили нагрузки. Куда прикладывать нагрузку.
Генерация нагрузки. Протоколы. Инструменты и их особенности.
Анализ результатов нагрузочного тестирования.
4 часа + 2 часа СР

Рубежный контроль №2: Рубежный контроль по второму блоку  

Рубежный контроль по второму блоку
4 часа + 4 часа СР

Лекция №8: Управление тестированием  

Постановка задач тестировщикам. Планирование сроков. Контроль выполнения. Мотивация команды. Сбор метрик, работа с метриками. От чего зависит рост. Обучение сотрудников. Переговоры. Найм тестировщиков. Инструменты автоматизации.
4 часа + 2 часа СР

Экзамен №1: Итоговое занятие  

Итоговое занятие
4 часа + 4 часа СР

Пересдача №1: Пересдача  

Пересдача
4 часа + 4 часа СР