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