• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Book
ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction

Edited by: Vitaly Semenov, R. J. Scherer.

CRC Press, 2021.

Article
Equivalence checking and intersection of deterministic timed finite state machines

Bresolin D., El-Fakih K., Villa T. et al.

Formal Methods in System Design. 2022.

Book chapter
City and building information modelling using IFC standard

Shutkin V., Morozkin N., Zolotov V. et al.

In bk.: ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction. CRC Press, 2021. P. 406-413.

Working paper
Preventive Model-based Verification and Repairing for SDN Requests

Burdonov I., Kossachev A., Nina Yevtushenko et al.

arxiv.org. Computer Science. Cornell University, 2020

Software Quality Assurance and Testing

2019/2020
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Type:
Compulsory course
When:
3 year, 1, 2 module

Instructors

Кузьмина Елена Сергеевна

Кузьмина Елена Сергеевна

Программа дисциплины

Аннотация

Курс знакомит слушателей с основными проблемами проверки качества сложных программных систем и современными подходами к их решению на основе тестирования. Рассматриваются различные методы верификации программного обеспечения. Детально изучаются классические техники построения тестов, использующие конечные автоматы и комбинаторные схемы. Также представлены более пригодные для систем реальной сложности подходы к разработке тестов, интегрирующие разнородные методы. Разбираются различные техники организации тестовых наборов, понятие полноты тестирования и различные критерии полноты, рассматриваются формальные модели различного вида и их применение для оценки качества ПО. На практических занятиях анализируются требования к ПО, изучается техника инспекции кода, осваиваются различные техники разработки тестов для простых функций, систем с состояниями и приложений, имеющих пользовательский интерфейс, включая 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