Классификация видов тестирования

17 августа 2018
vidy

Итак, вы решили заняться тестированием ПО. Прекрасный выбор! Первый шаг к выбору (или смене) профессии уже сделан. Логичным вторым шагом было бы изучение теоретической части – без которой в любом деле никуда. Не имеет значения, техническое у вас образование или гуманитарное, есть у вас опыт работы, или вы студент – начинать нужно с получения теоретических знаний. Сегодня мы предлагаем вам узнать, какие виды тестирования программного обеспечения существуют.

Существует несколько подходов к классификации видов тестирования ПО. Рассмотрим самые распространенные.

1. Виды тестирования по целям

Согласно с тем, какие цели вы преследуете, тестируя то или иное приложение или программу, тестирование бывает:

  • Функциональное;
  • Нефункциональное.

Функциональное тестирование направлено на проверку того, какие функции программного продукта реализованы, и того, насколько верно они реализованы.

funkcionalnoe

Нефункциональное – проверяет корректность работы нефункциональных требований. Этот вид тестирования скорее проверяет КАК программный продукт работает и включает в себя следующие виды:

  • Тестирование производительности – проверяет как программный продукт работает под определенной нагрузкой. Включает в себя тестирование: 

    > Нагрузочное – определяет, как программа работает под ожидаемой нагрузкой. 

    > Стрессовое – определяет работоспособность программного продукта при максимальной нагрузке. 

    > Тестирование стабильности – проверяет, выдержит ли программный продукт длительную нагрузку. 

    > Конфигурационное – определяет, как программный продукт будет работать в условиях смены конфигурации (платформы, драйверов, компьютеров). 

  • Тестирование пользовательского интерфейса – определяет удобство пользовательского интерфейса (кнопки, цвета, выравнивание и т.д.).
  • Тестирование удобства использования – проверяет, удобен ли программный продукт в использовании.
  • Тестирование защищенности – определяет, насколько безопасно использование программного продукта, т.е. защищен ли программный продукт от атак хакеров, несанкционированного доступа к данным и т.д.
  • Инсталляционное тестирование – проверяет, не возникает ли проблем при установке, удалении, а также обновлении программного продукта.
  • Тестирование совместимости – тестирование работы программного продукта в определенном окружении.
  • Тестирование надежности – проверяет работу приложения при длительной средней ожидаемой нагрузке.
  • Тестирование локализации – тестирование локализованной версии программного продукта (языковой и культурный аспекты).

2. По степени автоматизации

В зависимости от того, используют ли тестировщики дополнительные программные средства для тестирования приложений или программ, тестирование бывает:

  • Ручное – тестирование программного продукта без использования дополнительных программных средств, т.е. тестирование «вручную».
  • Автоматизированное – тестирование программного продукта с использованием программных средств (более детально в описании курса по автоматизации тестирования ПО).

3. По позитивности сценария

По позитивности сценария тестирование бывает:

  • Позитивным – проверка программного продукта на соответствие ожидаемому поведению. Самый первый вид тестирования, который следует проводить, ведь основная задача тестирования – проверить, корректно ли работает программа.
  • Негативным – проверяет, будет ли программный продукт работать в случае, когда поведение пользователя отличается от ожидаемого.

4. По доступу к коду программного продукта

В процессе тестирования тестировщик может работать с программным продуктом, не обращаясь к его коду, а может определить правильность работы, взглянув на код. По доступу к коду программного продукта тестирование делится на:

  • Тестирование «белого ящика» – тестирование программного продукта с доступом к коду.
  • Тестирование «черного ящика» – тестирование без доступа к коду продукта.
  • Тестирование «серого ящика» – тестирование, основанное на ограниченном знании внутренней структуры программного продукта. Часто говорят, что это смесь тестирования «белого ящика» и «черного ящика», но это в корне неверно. В данном случае тестировщик не работает с кодом программного продукта, но он знаком с внутренней структурой программы или приложения и взаимодействием между компонентами.

cherny-yashchik

5. По уровню

По уровню тестирование бывает:

  • Модульное / юнит-тестирование – проверка корректной работы отдельных единиц системы программного продукта. Этот вид тестирования могут выполнять сами разработчики.
  • Интеграционное тестирование – проверка взаимодействия между несколькими единицами программного продукта.
  • Системное – проверка работы всей системы на соответствие заявленным требованиям к программному продукту.

6. По исполнителю

Наверняка, вы слышали об альфа- и бета-тестировании. А поучаствовать в одном из них можно даже не будучи тестировщиком. Итак, по исполнителю тестирование делится на:

  • Альфа-тестирование – тестирование программного продукта на поздней стадии разработки. Проводится разработчиками или тестировщиками.
  • Бета-тестирование – тестирование программного продукта перед выходом на рынок силами обычных людей – добровольцев, которым передается предварительная версия продукта (бета-версия). Их отзывы собираются, анализируются и учитываются при внесении правок в продукт.

7. По формальности

По формальности тестирование бывает:

  • Тестирование по тестам – тестирование по предварительно написанным тест-кейсам.
  • Исследовательское тестирование – одновременная разработка тестов и их исполнение.
  • Свободное тестирование –  тестирование без разработки тестов, без документации. Основывается на интуиции и опыте тестировщика.

8. По важности

По степени важности тестируемых функций тестирование делится на:

  • Дымное тестирование – проверка самой важной функциональности программного продукта.
  • Тестирование критического пути – проверка функциональности, используемой типичными пользователями в повседневной деятельности.
  • Расширенное тестирование – проверка всей заявленной функциональности.

Виды тестирования и подходы к классификации тестирования отличаются от автора к автору. Не существует единственного правильного варианта.

Надеемся, что данная статья поможет вам ориентироваться в самом начале вашего пути в тестировании программного обеспечения.

Читайте также