ПиТПМ
Поддержка и тестирование программных модулей. В курсе 13 лекций.
Методология обеспечения качества ПО. Жизненный цикл дефектов. Принципы тест-дизайна.
В современной инженерии программного обеспечения (ПО) качество перестало быть факультативной характеристикой. Оно является системообразующим фактором, влияющим на стоимость владения продуктом, лояльность пользователей и репутацию…
02Модульное тестирование (Unit Testing). Тестирование методом «белого ящика». Метрики покрытия кода (Code Coverage).
В первой лекции мы рассмотрели подходы «черного» и «серого» ящика, при которых тестировщик взаимодействует с системой через внешние интерфейсы — пользовательский интерфейс, API, базы данных. Эти подходы незаменимы на этапах систем…
03Архитектура тестируемых систем. Изоляция компонентов. Использование mock-объектов и заглушек (Stubs, Mocks)
Во второй лекции мы освоили модульное тестирование как метод проверки отдельных модулей кода. Мы научились писать тесты по схеме AAA, измерять покрытие и понимать, какие участки кода остаются непроверенными. Однако мы столкнулись…
04Автоматизация сквозного (E2E) тестирования интерфейсов и программных интерфейсов приложений (REST API)
В предыдущих лекциях мы освоили модульное тестирование — мощный инструмент, позволяющий проверять корректность отдельных методов и классов. Мы научились изолировать тестируемый код от внешних зависимостей с помощью заглушек (Stub)…
05Современные концепции поддержки ПО: Рефакторинг, регрессионное тестирование и управление техническим долгом
В предыдущих лекциях мы сосредоточились на том, как создавать программное обеспечение: писать код, тестировать его, исправлять дефекты и готовить релиз. Однако у начинающих разработчиков существует устойчивый миф: «Программа напис…
06Интеграционное тестирование сложных распределенных систем. Тестирование слоев взаимодействия с СУБД.
В первом семестре вы освоили юнит тестирование . Давайте вспомним ключевую идею:
07Автоматизированное тестирование веб-интерфейсов (E2E) и управление асинхронными операциями.
В первом семестре мы познакомились с Selenium WebDriver — классическим инструментом для автоматизации браузера. Мы научились:
08Тестирование производительности: Нагрузочное, стресс-тестирование, стабильность и масштабируемость системы.
Вы наверняка слышали эту фразу от разработчиков (или даже сами так говорили): «У меня всё работает!» .
09Практики непрерывной поддержки интеграции (CI/CD). Автоматический запуск тестов в конвейерах сборки (Build Pipelines).
Представьте себе команду разработчиков в 2000 х годах. Они пишут код на своих компьютерах . Каждый работает над своей задачей. Через несколько недель или месяцев они решают, что пора «собрать релиз» .
10Архитектура микросервисов и стратегии их поддержки. Контрактное тестирование.
В курсе «Основы Алгоритмизации и Программирования» вы уже знакомились с понятиями монолитной и микросервисной архитектуры .
11Безопасность модулей программного обеспечения. Анализ уязвимостей в зависимостях программного кода (SAST/DAST).
Осталось последнее: безопасность . Если система работает, но небезопасна — она не работает . Потому что:
12Профилирование программного обеспечения, диагностика утечек памяти и оптимизация выполнения алгоритмов.
Представьте, что вы написали программу . Она отлично справляется со своей задачей: считает налоги, отправляет отчеты, сохраняет данные. Всё работает.
13Инфраструктурный мониторинг развернутых модулей (Observability): Логирование, метрики и трассировка.
Мы с вами прошли долгий путь. Научились тестировать код, интеграции, интерфейсы, нагрузку, безопасность . Научились автоматизировать проверки в CI/CD . Научились искать утечки памяти и медленные методы .