Лекция 2 Виды тестирования Тестирование Тестирование – это процесс, направленный на выявление характеристик системы и демонстрации различий между ее требуемым и фактическим состоянием. Цель тестирования – распознать дефекты в объекте тестирования и увеличить вероятность того, что он при любых обстоятельствах будет работать в соответствии с установленными требованиями. Development Process Testing Process Анализ требований Анализ требований Спецификации (Specification) Планирование процесса тестирования Программная архитектура (Software Architecture) Программирование (Coding) Поддержка Проектирование тестов Версия Результат (build) (test result) Выполнение тестов (testing cycles) Отладка тестов Приемочные испытания (Acceptance Testing) Системное тестирование (System testing) Поддержка Тестирование программного продукта Анализ требований Изучение спецификаций, функциональных требований к системе. Получение данных для составления плана проведения тестирования Планирование процесса тестирования Определение объемов тестирования, подходов, ресурсов и расписание выполнения намеченных действий Проектирование тестов Определение цели тестирования, спецификации входных данных, архитектуры тестов для упорядочивания тестов по группам Выполнение тестов (testing cycles) Отладка тестов Стадии динамического тестирования Стадии статического тестирования Непосредственная проверка спроектированных тестов, анализ всевозможных тестовых случаев Пересмотр и отладка тестовых случаев Системное тестирование (System Testing) Функциональная проверка, тестирование для определения рабочих характеристик Приемочные испытания (Acceptance Testing) Эксплуатация и поддержка Альфа-тестирование, Бета-тестирование По знанию внутренностей системы черный ящик (black box testing); серый ящик (grey box testing); белый ящик (white box testing). По объекту тестирования функциональное тестирование (functional testing); тестирование интерфейса пользователя (UI testing); тестирование локализации (localization testing); тестирование скорости и надежности (load/stress/performance testing); тестирование безопасности (security testing); тестирование удобства использования (usability testing); тестирование совместимости (compatibility testing). По субъекту тестирования альфа-тестировщик (alpha tester); бета-тестировщик (beta tester). По времени проведения тестирования до передачи пользователю альфа-тестирование (alphatesting); тест приемки (smoke test, sanity test или confidence test); тестирование новых функциональностей (new feature testing); регрессивное тестирование (regression testing); тест сдачи (acceptance or certification test); после передачи пользователю — бета-тестирование (beta testing). По критерию "позитивности" сценариев позитивное тестирование (positive testing); негативное тестирование (negative testing). По степени изолированности тестируемых компонентов компонентное тестирование (component testing); интеграционное тестирование (integration testing); системное (или энд-ту-энд) тестирование (system or end-to-end testing). По степени автоматизированности тестирования ручное тестирование (manual testing); автоматизированное тестирование (automated testing); смешанное/полуавтоматизированное тестирование (semi-automated testing). По степени подготовки к тестированию тестирование по документации (formal/documented testing); эд хок-тестирование (ad hoc testing). Test cycle - это процесс выполнения последовательности различных типов тестов для определения работоспособности конкретной версии продукта. По содержанию это набор тестовых сьютов и их выполнение в процессе тестирования конкретной версии продукта. Последовательное выполнение New version Sanity test Yes Version Functional test Acceptance No Test cycle GUI test Regression test Test Cycle с параллельный выполнением: Functional test New version Sanity test Yes Version Acceptance No GUI test Test cycle Regression test Test Cycle с комбинированным выполнением: New version Sanity test Version Acceptance Yes Functional test Regression test GUI test No Test cycle