Что такое тестирование ПО?
Тестирование программного обеспечения (ПО) — это процесс проверки соответствия системы заявленным требованиям и ожиданиям пользователя, с целью выявления дефектов и повышения качества продукта.
- Позволяет обнаружить ошибки до релиза
- Снижает риски и стоимость исправления багов
- Повышает доверие к продукту
Цели тестирования
- Обнаружение дефектов
- Проверка соответствия требованиям
- Оценка качества продукта
- Снижение рисков
- Повышение удовлетворённости пользователя
Принципы тестирования (ISTQB)
- Тестирование демонстрирует наличие дефектов
- Исчерпывающее тестирование невозможно
- Раннее тестирование экономит время и деньги
- Скопление дефектов
- Парадокс пестицида
- Тестирование зависит от контекста
- Заблуждение об отсутствии ошибок
Валидация и верификация
Верификация — процесс проверки, правильно ли реализована система относительно требований (делаем продукт правильно).
Валидация — процесс проверки, соответствует ли система ожиданиям и нуждам пользователя (делаем правильный продукт).
- Верификация: ревью, инспекции, статический анализ
- Валидация: динамическое тестирование, пользовательское тестирование
Тестовая документация
Тест-план — объём, подходы, ресурсы, расписание, критерии тестирования.
Тестовая стратегия — общий подход к тестированию в компании/проекте.
Чек-лист — краткий список проверок.
Тест-кейс — формализованный сценарий с шагами и ожидаемым результатом.
Баг-репорт — описание найденного дефекта.
Отчёт о тестировании — итоговый документ по результатам тестирования.
Жизненный цикл тестирования ПО (STLC)
Жизненный цикл тестирования (STLC) — это последовательность этапов, которые проходит процесс тестирования ПО для обеспечения его качества. Каждый этап имеет свои цели, задачи и результаты.
- Анализ требований Цель: Определить, что тестировать, на основе требований.
- Планирование тестирования (Test Planning) Определить стратегию тестирования, ресурсы и сроки. Разработать тест-план.
- Разработка тест-кейсов (Test Case Design) Цель: Создать тест-кейсы для проверки функционала.
- Настройка тестового окружения (Test Environment Setup) Цель: Подготовить среду для выполнения тестов.
- Выполнение тестов (Test Execution) Цель: Запустить тесты и зафиксировать результаты
- Регистрация и анализ дефектов (Defect Logging & Analysis) Цель: Определить причину бага и его влияние на систему.
- Анализ результатов и отчетность (Test Closure) Цель: Подвести итоги тестирования.
Жизненный цикл ПО (SDLC, ЖЦПО)
Жизненный цикл программного обеспечения (SDLC, ЖЦПО) — это последовательность этапов, через которые проходит ПО от идеи до вывода из эксплуатации.
- Waterfall (Каскадная модель): этапы идут строго друг за другом (требования → анализ → дизайн → разработка → тестирование → внедрение → сопровождение).
+ Простота, - нет гибкости, ошибки поздно обнаруживаются.
- V-Model: тестирование планируется параллельно с разработкой, каждому этапу соответствует свой уровень тестирования.
+ Контроль качества на каждом этапе, - негибкая.
- Iterative (Итерационная): разработка и тестирование идут циклами, продукт улучшается с каждой итерацией.
+ Быстрая обратная связь, - сложнее управлять изменениями.
- Spiral (Спиральная): акцент на анализе рисков, каждый виток — планирование, анализ, разработка, тестирование.
+ Управление рисками, - сложность, дороговизна.
- Agile: гибкие методологии (Scrum, Kanban), короткие спринты, постоянная обратная связь, тестирование интегрировано в процесс.
+ Гибкость, быстрая реакция на изменения, - требует зрелой команды.
Общие этапы SDLC:
- Сбор и анализ требований
- Проектирование (дизайн)
- Разработка
- Тестирование
- Внедрение (релиз)
- Сопровождение и поддержка
- Вывод из эксплуатации
Связь с тестированием: Тестирование присутствует на каждом этапе (статическое — на ранних, динамическое — на поздних), в Agile — тесты пишутся и выполняются постоянно.