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

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

Как определить каким видом тестирования вы занимаетесь? В этой статье выделены виды, которые полезно знать каждому тестировщику программного обеспечения. Мы классифицировали эти типы тестирования программного обеспечения на основе различных параметров.

Всем привет! Меня зовут Георгий, я CEO FIRETMS. Сегодня начну цикл статей о классификации видов тестирования программного обеспечения.

Содержание цикла:

Часть 1:

  • Виды тестирования в зависимости от цели тестирования

  • Виды тестирования по методу выполнения теста
  • Уровни тестирования
  • Виды интеграционного тестирования
  • Виды приемочного тестирования
  • Виды тестирования производительности (нагрузочное)
  • Типы "черного ящика" или спецификационного тестирования

  • Типы тестирования белого ящика или структурного тестирования
  • Виды тестирования, основанные на опыте или планировании
  • Другие типы тестирования программного обеспечения

Типы тестирования на основе цели тестирования

1. Функциональное тестирование

Это тип тестирования, который включает в себя проверку программного приложения на соответствие его функциональным спецификациям или бизнес-требованиям. Он направлен на проверку каждой функции приложения путем выполнения тестовых случаев и сопоставления ожидаемого результата с фактическим.

2. Нефункциональное тестирование

Это тип тестирования, который включает тестирование нефункциональных атрибутов или требований системы, таких как производительность, надежность, безопасность, масштабируемость и юзабилити. Соответствующие каждому параметру, мы можем иметь один или несколько типов тестирования, как у нас есть тестирование производительности, которое включает нагрузочное, стрессовое, выносливостное, пиковое и объемное тестирование. Точно так же у нас есть тестирование безопасности, надежности, масштабируемости и юзабилити.

3. Ручное тестирование

Ручное тестирование — это тип тестирования программного обеспечения, при котором выполнение тестового сценария выполняется вручную человеком без использования автоматизированного инструмента. Это помогает в обеспечении выполнения как функциональных, так и нефункциональных требований.

Считается, что 100% автоматизация невозможна. Некоторые типы тестирования программного обеспечения, такие как исследовательское, юзабилити, удобство использования и т. д., могут выполняться только вручную. Поэтому ручное тестирование всегда необходимо, но наряду с его преимуществами есть и недостатки, такие как — это очень трудоемкий, ресурсоемкий процесс и подвержен человеческим ошибкам.

4. Автоматизированное тестирование

Это тип тестирования, при котором автоматизированное выполнение тестового случая выполняется с использованием различных автоматизированных инструментов и тестовых скриптов. Его преимущество — как только создаются автоматизированные скрипты, это сэкономит много времени на выполнение тестов. Также это помогает в реализации непрерывной интеграции и непрерывного развертывания (CI/CD) , при которых автоматизированные тестовые сценарии могут выполняться автоматически, как только новый код отправляется. Таким образом, выпуск продукта становится автоматическим и гораздо быстрее.

Типы тестирования на основе метода выполнения теста

5. Тестирование черного ящика

Это тип тестирования программного обеспечения, при котором тестировщику не требуется иметь знания о внутренней архитектуре или реализации системы для проведения тестирования. Оно проводится, рассматривая программное приложение только как черный ящик, в котором мы передаем ввод в приложение и проверяем фактический результат с ожидаемым результатом, не учитывая, как данные обрабатываются внутри.

6. Тестирование на основе спецификаций

Это то же самое, что и тестирование черного ящика, которое требует проверки спецификаций тестируемого приложения без знания внутренней архитектуры системы.

7. Тестирование белого ящика

Это тип тестирования программного обеспечения, при котором тестировщику нужно иметь доступ к и знания о внутренней архитектуре приложения.

Тестировщик анализирует архитектуру, а также исходный код на различные качественные параметры, такие как покрытие кода, оптимизация кода, повторное использование и т. д.

8. Структурное тестирование

Это то же самое, что и тестирование на основе белого ящика или стеклянного ящика, при котором требуется структура или внутренняя реализация приложения для тестирования приложения.

9. Тестирование серого ящика

В тестировании серого ящика, испытуемый обладает ограниченным доступом или понимание внутренней архитектуры системы.

Например, тестировщик может не иметь доступа к полному исходному коду приложения, но ему могут быть доступны документы проектирования или структура базы данных (схема и таблицы). Вся эта информация помогает тестировщику в создании более эффективных тестовых примеров.

Уровни тестирования или пирамида тестирования

10. Модульное тестирование

Это первый уровень тестирования, обычно выполняемый разработчиками. При модульном тестировании модуль или компонент тестируется изолированно. Его преимуществом является обнаружение дефектов в модуле на ранней стадии, что снижает общую стоимость исправления ошибок.

11. Интеграционное тестирование

Это второй уровень тестирования, на котором группа связанных модулей тестируется как интегрированный компонент. Целью является выявление проблем совместимости между модулями. Интеграционное тестирование разделяется на четыре типа — «Всё сразу», снизу вверх, сверху вниз, и гибридный. Их мы рассмотрим чуть позже.

12. Системное тестирование

Это третий уровень тестирования, на котором полностью интегрированное приложение тестируется в комплексе. Цель — определить, соответствует ли приложение его бизнес-требованиям.

13. Приемочное тестирование

Это последний и один из самых важных уровней тестирования, после успешного завершения которого приложение отправляется в производство. Его виды – альфа и бета-тестирование.

В сегодняшней статье мы рассмотрели 13 видов тестирования. Надеюсь данный материал был интересен вам. Если вы считаете, что мы что-то упустили, не стесняйтесь сообщить об этом в комментариях.

До новых встреч! Подписывайтесь на этот блог, скоро я продолжу данный цикл статей (впереди еще 3 части). Спасибо за внимание!

3232
9 комментариев

Хорошая статья! Кратко, понятно и ничего лишнего. Для тех кто только начинает свой путь в тестирование все объясняется доступно, без перегруза лишней информацией.

2
Ответить

Было очень интересно и полезно 🔥

2
Ответить

Полезная инфа, все по полочкам. А про Unit тесты будет статья?

1
Ответить

по факту Unit тестирование - это модульно тестирование.
Мы поверхностно касаемся каждого вида тестирования не раскрывая тему в ширь
Возможно в дальнейшем, будет отдельная статья, после завершения данного цикла
Либо новый цикл про пирамиду тестирования

2
Ответить

Спасибо за статью! Очень полезно для начинающего специалиста

1
Ответить

Кратко и по делу, лайк!

1
Ответить

Спасибо за статью!

Ответить