Бакалавриат
2020/2021
Обеспечение качества и тестирование
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Кильдишев Денис Степанович,
Кулямин Виктор Вячеславович,
Татарников Андрей Дмитриевич
Язык:
русский
Кредиты:
5
Контактные часы:
60
Программа дисциплины
Аннотация
Курс знакомит слушателей с основными проблемами проверки качества сложных программных систем и современными подходами к их решению на основе тестирования. Рассматриваются различные методы верификации программного обеспечения. Детально изучаются классические техники построения тестов, использующие конечные автоматы и комбинаторные схемы. Также представлены более пригодные для систем реальной сложности подходы к разработке тестов, интегрирующие разнородные методы. Разбираются различные техники организации тестовых наборов, понятие полноты тестирования и различные критерии полноты, рассматриваются формальные модели различного вида и их применение для оценки качества ПО. На практических занятиях анализируются требования к ПО, изучается техника инспекции кода, осваиваются различные техники разработки тестов для простых функций, систем с состояниями и приложений, имеющих пользовательский интерфейс, включая Web-приложения. Слушатели получают базовые знания и навыки в области тестирования и знакомятся с тестированием на основе формальных моделей, динамично развивающейся области на границе между теоретической информатикой и программной инженерией, а также с некоторыми практическими приложениями этого подхода.
Цель освоения дисциплины
- Владение основными понятиями в области обеспечения качества ПО
- Знание основных методов моделирования поведения ПО
- Знание основных методов оценки полноты тестирования ПО
- Знание целей, задач и основных методов разработки тестов и тестирования ПО
- Умение проектировать и реализовывать тесты для программ различных типов
- Умение оценивать полноту тестирования программ различных типов
- Умение анализировать результаты выполнения тестов
- Умение применять формальные модели при разработке тестов и оценке их полноты
- Владение навыками решения типовых задач разработки тестов для ПО
Планируемые результаты обучения
- Владение основными понятиями в области обеспечения качества ПО
- Знание основных методов моделирования поведения ПО
- Знание основных методов оценки полноты тестирования ПО
- Знание целей, задач и основных методов разработки тестов и тестирования ПО
- Умение анализировать результаты выполнения тестов
- Владение навыками решения типовых задач разработки тестов для ПО
- Умение проектировать и реализовывать тесты для программ различных типов
- Умение оценивать полноту тестирования программ различных типов
- Умение применять формальные модели при разработке тестов и оценке их полноты
Содержание учебной дисциплины
- Качество программного обеспечения и методы его контроляПонятие качества ПО. Характеристики качества, стандарты ISO 9126 и ISO 25010. Требования к ПО. Источники и виды требований. Задачи извлечения и анализа требований. Необходимые свойства требований, стандарты IEEE 830 и IEEE 1233. Ошибки в ПО и их основные причины. Методы обеспечения качества ПО. Методы предотвращения ошибок. Методы контроля качества ПО.
- Методы верификации ПОКлассификация методов верификации ПО. Экспертиза. Статический анализ. Динамический анализ. Тестирование и мониторинг. Формальные методы верификации. Дедуктивный анализ. Проверка моделей. Синтетические и гибридные методы верификации. Примеры применения различных методов верификации.
- Цели и задачи тестирования ПОРазличные определения тестирования ПО. Тесты и тестовые наборы. Тестируемая система, тестируемая реализация, тестируемый интерфейс. Точки контроля и наблюдения. Роль требований. Модели поведения и модели ситуаций. Характеристики ситуаций. Цели тестирования в рамках жизненного цикла ПО. Задачи разработки тестов. Виды тестирования, аспекты классификации методов тестирования. Модульное, интеграционное и системное тестирование.
- Организация тестовых наборовТестовые варианты. 4-х шаговая структура тестового варианта. Основные паттерны организации тестовых наборов. Квалификаторы тестов. Связи между тестами и другими артефактами разработки. Основные модули тестовых наборов. Тестовые заглушки. Тестовые оракулы. Способы построения оракулов. Виды инструментов разработки тестов и тестирования. Семейство инструментов xUnit.
- Модели поведения ПОЛогико-алгебраические и исполнимые модели. Модальные и временные логики. Абстрактные типы данных. Исчисления процессов. Конечные автоматы. Расширенные конечные автоматы. Системы размеченных переходов. Использование разных видов моделей для описания функциональности.
- Модели ситуаций и критерии полноты тестированияСпособы описания моделей ситуаций. Критерии полноты и критерии покрытия. Доменные, функциональные, структурные и проблемные критерии полноты. Использование графов, грамматик и логических выражений для построения критериев полноты тестирования. Типовые критерии покрытия кода: покрытие инструкций, ветвлений, покрытие потоков данных, покрытие условий, комбинаций условий, модифицированное покрытие условий и ветвлений (MC/DC). Критерии покрытия на интеграционном и системном уровнях.
- Основные методы построения тестов. Вероятностные и нацеленные методыВероятностные, нацеленные и комбинаторные методы тестирования. Области применимости и характеристики различных методов. Вероятностные методы. Распределение рисков. Марковские цепи. Нацеленные методы. Техники выбора экстремальных значений. Доменное тестирование. Тестирование с помощью сценариев. Часто встречающиеся ошибки для различных типов данных.
- Комбинаторные методы построения тестовОсновные комбинаторные техники построения тестов. Построение дерева классификации. Использование грамматик. Покрывающие наборы. Алгоритмы построения однородных покрывающих наборов. Жадный алгоритм построения покрывающих наборов.
- Автоматные методы построения тестовЗадача построения набора тестов для проверки соответствия конечному автомату. Методы построения тестов для конечных полных детерминированных автоматов. Различающие и UIO-последовательности. Покрывающее множество последовательностей. Характеризующее множество последовательностей. D-метод. W-метод. Wp-метод. Построение тестов для расширенных и недетерминированных автоматов. Различные виды соответствия реализации и спецификации.
- Интегрированные технологии построения тестовЭлементы технологии UniTESK. Использование программных контрактов для описания поведения. Редукция автомата по критерию полноты. Описание асинхронного поведения. Семантика чередования. Тестирование систем с внутренним параллелизмом и асинхронными событиями.
Элементы контроля
- Работа на семинаре (РС1)
- Домашнее задание 1 (ДЗ1)
- Домашнее задание 2 (ДЗ2)
- Домашнее задание 3 (ДЗ3)
- Домашнее задание 4 (ДЗ4)
- Домашнее задание 5 (ДЗ5)
- Домашнее задание 6 (ДЗ6)
- Домашнее задание 7 (ДЗ7)
- Контрольная работа (КР1)
- Экзамен (Э1)
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)Прак = Округление((1/8)*РС1+(1/8)*ДЗ1+(1/8)*ДЗ2+(1/8)*ДЗ3+(1/8)*ДЗ4+(1/8)*ДЗ5+(1/8)*ДЗ6+(1/8)*ДЗ7) Окончательная оценка = Округление((1/2)*Прак+(1/4)*КР1+(1/4)*Э1)
Список литературы
Рекомендуемая основная литература
- Black, R. (2011). Pragmatic Software Testing : Becoming an Effective and Efficient Test Professional. Chichester: Wiley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=364274
Рекомендуемая дополнительная литература
- A. Brakarenka S., & А. Бракоренко С. (2015). Testing and Quality Assurance of Software and Hardware Systems Based on Use of Virtual Technological Objects ; Тестирование И Обеспечение Качества Программно-Технических Комплексов На Основе Использования Виртуальных Технологических Объектов. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.800B9519
- Mili, A. (2015). Software Testing : Concepts and Operations. Hoboken, New Jersey: Wiley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=995369