Методы и виды тестирования 
IT-Академия Алексея Сухорукова
Уровни тестирования
По времени проведения 
тестирования 
• Альфа-тестирование 
– Проверка ключевой 
функциональности (smoke 
testing) 
– Тестирование новой 
функциональности (new feature 
testing) 
– Регрессионное тестирование (regression testing) 
– Приемо-сдаточные испытания (acceptance testing) 
• Бета-тестирование
Альфа тестирование 
• это тестирование, обычно 
проводимое на ранней стадии 
разработки продукта и 
включающее имитацию 
реального использования 
продукта штатными 
разработчиками
Бета тестирование 
• интенсивное использование 
почти готовой версии продукта 
с целью выявления 
максимального числа ошибок в 
его работе для их 
последующего устранения 
перед окончательным выходом 
(Релизом) продукта на рынок, к 
массовому потребителю
По наличию документации 
• Тестирование по 
документации (formal 
testing) 
• Интуитивное (Эд Хок) (ad 
hoc testing)/ 
исследовательское 
(exploratory testing) 
тестирование
По объему информации о 
тестируемой системе 
• Тестирование чёрного ящика (black box) 
• Тестирование белого ящика (white box) 
• Тестирование серого ящика (gray box)
Тестирование черного ящика 
• тестирование через 
интерфейс пользователя, 
не имея доступа к 
исходному коду продукта, 
на основании 
документации 
• покрыть тестами все требования к системе
Тестирование белого ящика 
• вид тестирования, в котором тестировщик 
должен обладать знаниями о внутренних 
механизмах работы продукта и иметь доступ к 
исходному коду приложения 
• покрытие тестами каждой строчки кода 
системы
Серый ящик 
• Тестируются как 
требования к системе на 
основании документации, 
так и особенности 
реализации. Объединение 
тестирования черного и 
белого ящиков.
По степени автоматизирования 
• Ручное тестирование 
(manual testing) 
• Автоматизированное 
тестирование (automated 
testing) 
• Полуавтоматизированное 
тестирование 
(semiautomated testing)
По объекту тестирования 
• Функциональное тестирование (functional testing) 
* Тестирование безопасности (security testing) 
* Тестирование взаимодействия (Interoperability Testing) 
• Нефункциональное тестирование 
* Тестирование совместимости (compatibility testing) 
* Тестирование локализации (localization testing) 
* Тестирование удобства использования (usability testing) 
* Тестирование интерфейса пользователя (UI testing) 
• Тестирование производительности (prefomance/stress 
testing) 
• Нагрузочное тестирование 
• Стрессовное тестирование (stress testing) 
• Объемное тестирование (volume testing) 
• Тестирование стабильности (Stability / Reliability Testing)
Функциональное тестирование 
• это тестирование ПО в целях проверки 
реализуемости 
функциональных требований, то есть 
способности ПО в определённых 
условиях решать задачи, нужные 
пользователям
Тестирование безопасности 
Выявление уязвимостей системы 
• Обеспечение безопасности онлайн- 
транзакций 
• Защита конфиденциальной информации от 
несанкционированного доступа 
• Минимизация риска утраты, искажения или хищения 
данных 
• Увеличение сопротивления DoS-атакам
Тестирование 
взаимодействия 
• это функциональное 
тестирование, 
проверяющее 
способность приложения 
взаимодействовать 
с одним и более компонентами или системами 
и включающее в себя тестирование 
совместимости (compatibility testing) и 
интеграционное тестирование (integration 
testing).
Нефункциональное тестирование 
• Тестирование совместимости (compatibility testing) - 
вид нефункционального тестирования, основной 
целью которого является проверка корректной работы 
продукта в определенном окружении 
• Тестирование локализации (localization testing) 
• Тестирование удобства использования (usability 
testing) 
• Тестирование интерфейса пользователя (UI testing)
Тестирование 
производительности 
• Нагрузочное тестирование 
• Стрессовное тестирование (stress 
testing) 
• Объемное тестирование (volume 
testing) 
• Тестирование стабильности (Stability / 
Reliability Testing)
Нагрузочное тестирование 
• Исследует работу системы под 
регалментируемой нагрузкой 
• Проводится, чтобы убедиться, что 
приложение обладает 
запланированной пропускной 
способностью и работает стабильно 
• Можно узнать, какова 
производительностьсистемы на 
заданном количестве пользователей и 
плановой нагрузке
Стрессовое тестирование 
• Используется для 
определения пределов 
пропускной способности 
приложения 
• Система подвергается экстремальным нагрузкам и 
исследуется ее поведение в ситуациях, когда 
регламентируемые пределы нагрузок в несколько раз 
выше 
• Можно найти истинный предел работы приложения
Объемное тестирование 
• Исследует работу системы при 
увеличении объема 
обрабатываемой информации 
• Можно выяснить, что будет, 
если база данных приложения 
вырастет в несколько раз 
• Производится измерение времени работы выбранных 
операций при определенной интенсивности 
• Производится измерение количества пользователей, 
одновременно работающих с приложением
Тестирование стабильности 
• Проверяет 
длительную работу 
системы при 
среднем уровне 
нагрузки 
• Не очень важна скорость выполнения 
отдельных операций 
• Главные объекты мсследования: утечки памяти, 
перезагрузки серверов, и другие аспекты 
которые могут повлиять на стабильность 
работы системы
По степени позитивности 
сценариев 
• Позитивное тестирование (positive 
testing) - это тестирование на данных или 
сценариях, которые соответствуют нормальному 
(штатному, ожидаемому) поведению системы. 
• Негативное тестирование (negative 
testing) - это тестирование на данных или 
сценариях, которые соответствуют нештатному 
поведению тестируемой системы – различные 
сообщения об ошибках, исключительные ситуации, 
“запредельные” состояния и т.п.

02-lection-ka

  • 1.
    Методы и видытестирования IT-Академия Алексея Сухорукова
  • 2.
  • 3.
    По времени проведения тестирования • Альфа-тестирование – Проверка ключевой функциональности (smoke testing) – Тестирование новой функциональности (new feature testing) – Регрессионное тестирование (regression testing) – Приемо-сдаточные испытания (acceptance testing) • Бета-тестирование
  • 4.
    Альфа тестирование •это тестирование, обычно проводимое на ранней стадии разработки продукта и включающее имитацию реального использования продукта штатными разработчиками
  • 5.
    Бета тестирование •интенсивное использование почти готовой версии продукта с целью выявления максимального числа ошибок в его работе для их последующего устранения перед окончательным выходом (Релизом) продукта на рынок, к массовому потребителю
  • 6.
    По наличию документации • Тестирование по документации (formal testing) • Интуитивное (Эд Хок) (ad hoc testing)/ исследовательское (exploratory testing) тестирование
  • 7.
    По объему информациио тестируемой системе • Тестирование чёрного ящика (black box) • Тестирование белого ящика (white box) • Тестирование серого ящика (gray box)
  • 8.
    Тестирование черного ящика • тестирование через интерфейс пользователя, не имея доступа к исходному коду продукта, на основании документации • покрыть тестами все требования к системе
  • 9.
    Тестирование белого ящика • вид тестирования, в котором тестировщик должен обладать знаниями о внутренних механизмах работы продукта и иметь доступ к исходному коду приложения • покрытие тестами каждой строчки кода системы
  • 10.
    Серый ящик •Тестируются как требования к системе на основании документации, так и особенности реализации. Объединение тестирования черного и белого ящиков.
  • 11.
    По степени автоматизирования • Ручное тестирование (manual testing) • Автоматизированное тестирование (automated testing) • Полуавтоматизированное тестирование (semiautomated testing)
  • 12.
    По объекту тестирования • Функциональное тестирование (functional testing) * Тестирование безопасности (security testing) * Тестирование взаимодействия (Interoperability Testing) • Нефункциональное тестирование * Тестирование совместимости (compatibility testing) * Тестирование локализации (localization testing) * Тестирование удобства использования (usability testing) * Тестирование интерфейса пользователя (UI testing) • Тестирование производительности (prefomance/stress testing) • Нагрузочное тестирование • Стрессовное тестирование (stress testing) • Объемное тестирование (volume testing) • Тестирование стабильности (Stability / Reliability Testing)
  • 13.
    Функциональное тестирование •это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям
  • 14.
    Тестирование безопасности Выявлениеуязвимостей системы • Обеспечение безопасности онлайн- транзакций • Защита конфиденциальной информации от несанкционированного доступа • Минимизация риска утраты, искажения или хищения данных • Увеличение сопротивления DoS-атакам
  • 15.
    Тестирование взаимодействия •это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование (integration testing).
  • 16.
    Нефункциональное тестирование •Тестирование совместимости (compatibility testing) - вид нефункционального тестирования, основной целью которого является проверка корректной работы продукта в определенном окружении • Тестирование локализации (localization testing) • Тестирование удобства использования (usability testing) • Тестирование интерфейса пользователя (UI testing)
  • 17.
    Тестирование производительности •Нагрузочное тестирование • Стрессовное тестирование (stress testing) • Объемное тестирование (volume testing) • Тестирование стабильности (Stability / Reliability Testing)
  • 18.
    Нагрузочное тестирование •Исследует работу системы под регалментируемой нагрузкой • Проводится, чтобы убедиться, что приложение обладает запланированной пропускной способностью и работает стабильно • Можно узнать, какова производительностьсистемы на заданном количестве пользователей и плановой нагрузке
  • 19.
    Стрессовое тестирование •Используется для определения пределов пропускной способности приложения • Система подвергается экстремальным нагрузкам и исследуется ее поведение в ситуациях, когда регламентируемые пределы нагрузок в несколько раз выше • Можно найти истинный предел работы приложения
  • 20.
    Объемное тестирование •Исследует работу системы при увеличении объема обрабатываемой информации • Можно выяснить, что будет, если база данных приложения вырастет в несколько раз • Производится измерение времени работы выбранных операций при определенной интенсивности • Производится измерение количества пользователей, одновременно работающих с приложением
  • 21.
    Тестирование стабильности •Проверяет длительную работу системы при среднем уровне нагрузки • Не очень важна скорость выполнения отдельных операций • Главные объекты мсследования: утечки памяти, перезагрузки серверов, и другие аспекты которые могут повлиять на стабильность работы системы
  • 22.
    По степени позитивности сценариев • Позитивное тестирование (positive testing) - это тестирование на данных или сценариях, которые соответствуют нормальному (штатному, ожидаемому) поведению системы. • Негативное тестирование (negative testing) - это тестирование на данных или сценариях, которые соответствуют нештатному поведению тестируемой системы – различные сообщения об ошибках, исключительные ситуации, “запредельные” состояния и т.п.