ФУНКЦИОНАЛЬНЫЕ ВИДЫ ТЕСТИРОВАНИЯ 1. Функциональное тестирование (Functional testing) - это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям. 2. Тестирование пользовательского интерфейса (GUI Testing) Обеспечение качественного взаимодействия с пользователем – Выявление ошибок функциональности – Выявление необработанных исключений при взаимодействии с интерфейсом – Выявление потери или искажения данных, передаваемых через элементы интерфейса – Выявление ошибки в интерфейсе (несоответствие проектной документации, отсутствие элементов интерфейса) 3. Тестирование безопасности (Security and Access Control Testing) - это стратегия тестирования, используемая для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным 4. Тестирование взаимодействия (Interoperability Testing) - это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование (integration testing). НЕФУНКЦИОНАЛЬНЫЕ ВИДЫ ТЕСТИРОВАНИЯ Все виды тестирования производительности: 1. Нагрузочное тестирование (Performance and Load Testing) Тесты производительности проверяют стабильность и масштабируемость. Можно замерять такие вещи как количество ошибок в секунду или сколько занимает загрузка страницы. Тестирование производительности не обязательно имеет какие-то критерии прохождения или провала. Это стадия больше относится к сбору данных и поиску путей к улучшению. Нагрузочное тестирование это своего рода специализированное тестирование производительности. Оно проверяет, как ваш продукт работает под значительными нагрузками в течение определенного периода времени. 2. Стрессовое тестирование (Stress Testing) - один из видов тестирования программного обеспечения, которое оценивает надёжность и устойчивость системы в условиях превышения пределов нормального функционирования. 3. Тестирование стабильности или надежности (Stability / Reliability Testing) один из видов автоматизированного тестирования ПО, целью которого является проверка работоспособности приложения при длительном тестировании с ожидаемым уровнем нагрузки. 4. Объемное тестирование (Volume Testing) тестирование проводится с увеличением не нагрузки и времени работы, а количества используемых данных, которые хранятся и используются в приложении. 5. Тестирование установки (Installation testing) Тестирование установки направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения. 6. Тестирование удобства пользования (Usability Testing) исследование, выполняемое с целью определения, удобен ли некоторый искусственный объект для его предполагаемого применения 7. Тестирование на отказ и восстановление (Failover and Recovery Testing) проверяет тестируемый продукт с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками программного обеспечения, отказами оборудования или проблемами связи (например, отказ сети) 8. Конфигурационное тестирование (Configuration Testing) специальный вид тестирования, направленный на проверку работы программного обеспечения при различных конфигурациях системы (заявленных платформах, поддерживаемых драйверах, при различных конфигурациях компьютеров и т.д.). СВЯЗАННЫЕ С ИЗМЕНЕНИЯМИ ВИДЫ ТЕСТИРОВАНИЯ 1. Дымовое тестирование (Smoke Testing) дымовые тесты должны проверяют систему в целом для уверенности в том, что весь основной функционал исправен. Они не должны быть всеобъемлющими. 2. Регрессионное тестирование (Regression Testing) Регрессионные тесты проверяют набор сценариев, которые раньше работали и должны быть относительно стабильными. Регрессионные тесты нужно запускать после успешного прохождения интеграционных тестов. Не добавляйте новый функционал в набор для регрессионного тестирования, пока не проведете регрессионные тесты уже имеющегося в наборе функционала. Если регрессионные тесты провалены, это означает, что новый функционал сломал какойто существующий функционал, приведя к регрессии. Провал тестов дает вам знать, что сломалось что-то в старых свойствах. Это говорит о том, что нужно написать дополнительные интеграционные тесты нового и старого (сломанного) функционала. Также провал регрессионных тестов может указывать но то, что вы случайно заново ввели баг, который уже исправляли в прошлом. 3. Повторное тестирование (Re-testing) - тестирование, во время которого исполняются тестовые сценарии, выявившие ошибки во время последнего запуска, для подтверждения успешности исправления этих ошибок.