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

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

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

Знать:

  • -Что такое качество;
    • -Этапы обеспечения качества;
      • -Цели тестирования;
        • -Тестирование на этапе разработки;
          • -Кривая Боэма;
            • -Виды тестирования;
              • -Пирамида тестирования;
                • -Виды тестовой документации;
                  • -Что такое и что показывает тестовое покрытие;
                    • -Что такое белый и черный ящик;
                      • -Когда стоит автоматизировать тестирование;
                        • -Семейство фреймворков 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 отлично.

Подробнее

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

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

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

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

Ко мне можно обратиться по любым вопросам касающимся e2e автоматизированного тестирования UI высо...


Подробнее

Программа

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

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

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

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

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

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

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

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

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

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

Особенности написания unit-тестов на js. Рассмотрим наиболее популярные фреймворки. Познакомимся с лучшими практиками и напишем несколько тестов при помощи chai и mocha
Домашнее задание №3: Написать юнит-тесты
В рамках домашнего задания необходимо покрыть юнит-тестами свой проект.
4 часа + 4 часа СР

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

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

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

Когда стоит автоматизировать. Задачи, решаемые функциональными тестами. Функциональное тестирование UI. Selenium WebDriver: назначение, возможности, аналоги. Дополнительные возможности драйверов. Selenium Grid.
Паттерны проектирования функциональных браузерных тестов: PageObject. Антипаттерны при работе с Selenium. BDD.
Домашнее задание №2: Часть 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 часа СР