Методы тестирования программных продуктов
Короткий вводный курс в тестирование: основные понятия и методики.
Вопросы к экзамену
- Цели и задачи тестирования ПО. Эволюция подходов к тестированию программного обеспечения.
- Ошибки, дефекты и сбои в программных продуктах. Классификация дефектов ПО.
- Семь основных принципов тестирования.
- Модели разработки программных продуктов. Место и роль тестирования в жизненном цикле ПО.
- Жизненный цикл тестирования.
- Тестирование требований к ПО. Ключевые свойства качественных требований.
- Уровни, типы и источники требований к ПО.
- Основные техники статического тестирования.
- Основные инструменты организации тестирования. Виды и характеристики чек-листов.
- Основные инструменты организации тестирования. Структура и характеристики тест-кейсов.
- Основные инструменты организации тестирования. Характеристики наборов тест-кейсов.
- Организация тестирования с помощью электронных таблиц и специальных систем управления тестированием.
- Классификация тестирования по уровню детализации приложения. Уровни и пирамида тестирования.
- Модульное тестирование. Инструменты для модульного тестирования в Python (doctest, unittest, pytest).
- Классификация тестирования по запуску кода на исполнение. Техники статического и динамического тестирования.
- Классификация по доступу к коду и архитектуре тестируемой системы. Черный, белый и серый ящики.
- Классификация по объекту тестирования (функциональное тестирование, тестирование UI, тестирование скорости и надежности, тестирование опыта пользователя).
- Классификация тестирования по принципам работы с приложением. Позитивное и негативное тестирование.
- Классификация по степени важности тестируемых функций. "Дымовое" тестирование, тестирование критического пути, расширенное тестирование.
- Регрессионное тестирование и тестирование новых функциональных возможностей.
- Приемочное тестирование. Дымовые тесты и санитарное тестирование.
- Тестирование производительности. Нагрузочное тестирование.
- Тестирование с помощью техник классов эквивалентности и граничных значений. Доменное тестирование.
- Атрибуты, характеристики и жизненный цикл отчетов о дефектах.
- Алгоритм создания качественного отчета о дефекте. Типичные ошибки в отчетах о дефектах.
- Преимущества и недостатки автоматизации тестирования. Области эффективного применения автоматизации.
- Особенности тест-кейсов для автоматизированного тестирования.
- Технологии автоматизации тестирования.
- Инструменты для интеграционного тестирования веб-приложений (Selenium IDE и Selenium WebDriver).
Литература и ссылки к курсу
- Куликов С.С. "Тестирование программного обеспечения. Базовый курс" — 3-е изд. — Минск: Четыре четверти, 2020. — 312 с.
- Савин Р. "Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах" — М.: Дело, 2007. — 312 с.
- Мейерс Г. "Искусство тестирования", М.: Финансы и статистика, 1982.
- Канер С., Фолк Дж., Кек Нгуен Е. "Тестирование программного обеспечения" — Киев: ДиаСофт, 2000. — 416 с.
- Бейзер Б., Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем. – СПб.: Питер, 2004. -318 с.
- Любанович Б. "Простой Python. Современный стиль программирования" — СПб.: Питер, 2021. — 592 с.
- Хирьянов Т. Лекция "Качество ПО. Тестирование" курса "Практика программирования на Python", МФТИ, 2020 г.
- Куликов С.С. Онлайн-курс "Software Testing Introduction"
Презентации к лекциям
Схема сдачи лабораторных работ через Pull Request.
2. Тестирование в контексте жизненного цикла ПО
3. Тестирование требований к ПО и документации
4. Инструменты для организации тестирования
5. Классификация видов тестирования
6.1. Техники эффективного тестирования
Лабораторные работы
Тематика заданий- Анализ и тестирование требований для создания ПО.
- Разработка чек-листов и тест-кейсов для тестирования.
- Модульное тестирование кода на языке Python.
- Ручное интеграционное тестирование веб-сайта.
- Автоматизированное функциональное тестирование веб-сайта с помощью фреймворка Selenium.
- Для каждого студента групп 103M и 202М создан свой репозиторий в https://github.com/andpop-mrsu. В этих репозиториях преподаватель размещает задания для лабораторных работ (файлы task01.md, task02.md, ...), а студент - проекты для решения этих заданий (в соответствующих папках Task01, Task02, Task03, ...).
- Прав на запись в эти репозитории у студентов нет, ваши файлы должны попадать туда из личных репозиториев через механизм Pull Requests.
- Задание будет считаться принятым после закрытия соответствующего Pull Request в https://github.com/andpop-mrsu.
Статистика группы 103М
При расчете баллов учитываются два критерия:
- Полнота выполнения задания (в процентах).
- Своевременность сдачи задания:
- К контрольному сроку - коэффициент 1.
- Задержка до 14 дней - коэффициент 0,8.
- Задержка 14 дней и более - коэффициент 0,5.
Статистика группы 202М
При расчете баллов учитываются два критерия:
- Полнота выполнения задания (в процентах).
- Своевременность сдачи задания:
- К контрольному сроку - коэффициент 1.
- Задержка до 14 дней - коэффициент 0,8.
- Задержка 14 дней и более - коэффициент 0,5.