Нужно знать эти виды тестирования для QA

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

По запуску кода на исполнение 

  1. Статическое тестирование — одно тестирование применяется без запуска программы (тестирование требований и документации)
  2. Динамическое тестирование — тестирование, которое требует от нас запуск программы, запуск кода на исполнение.

По знанию внутренностей системы

Знает ли у нас тестировщик, что-либо про систему, которую тестирует. 

  1. Тестирование методом чёрного ящика — пользовательское тестирование, когда тестировщик не знает, как программа под капотом работает, это максимально приближенное к пользователю тестирование
  2. Тестирование белого ящика — применяется, когда тестировщик все знает о внутренности системы. Белый ящик применяется для тестирования Back end, то что под капотом программы, его серверной части. Также применятся для юнит тестов. 
  3. Серый ящик — симбиоз белого и черного ящика. Например, когда тестировщик тестирует что-либо, например регистрацию и оплату на сайте, делает тестовую оплату и тут же заходит в базу данных SQL и проверяет с помощью SQL запросов, что действительно тестовый пользователь появился и то, что оплата прошла, он может это проверить заглянув под капот нашей программы в его серверную часть.

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

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

  1. Тестирование безопасности — тестирование нашей программы, системы или приложения на то, как она устойчива к действиям мошенников. (отдел кибербезопасности)
  2. Тестирование взаимодействия — тестируется взаимодействие с различными внешними компонентами, например, проверяем как на сайте происходит регистрация с помощью сервиса авторизации через ВКонтакте.  
  3. По степени изолированности тестируемых компонентов:
  • Компонентное тестирование — это тестирование на уровне логического модуля. Обычно это тестирование проводят разработчики, когда пишут сам код и покрывают юнит тестами.  
  • Интеграционное тестирование — это тестирование взаимодействия двух и более каких-либо компонентов. Тестировщики как раз чаще всего занимаются интеграционным и системным тестированием
  • Системное тестирование — это тестирование когда у нас проверяется работа всей системы, программы, приложения от начала и до конца. 

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

Если функционально тестирование отвечает на вопрос: соответствует ли наша программа заявленным требованиям? То нефункциональное тестирование отвечает на вопрос, как это все работает при этом.  

  1. Нагрузочное тестирование. Например, у нас есть сайт и мы хотим проверить, как он будет работать под определенной нагрузкой, под постоянной в течение какого-либо времени. Мы создаем 100 тестовых пользователей и имитируем заход на сайт и проверяем, как под этой нагрузкой у нас будет работать сайт, как справится сервер с заданной нагрузкой. 
  2. Стресс тестирование это максимально жесткое тестирование. Например, у нас есть приложение, сайт и мы имитируем одномоментно туда нагрузку выше, чем у нас в требованиях. Что случится, если на маленький сайт задет 10 000 пользователей? И видим как система восстанавливается после стресс тестирования. Например, упал сервер и проверяем, как он восстановится, после того, как нагрузка уйдет. 
  3. Тестирование стабильности и надежности. Например, под нагрузкой в пределах документации мы проверяем как под заданной нагрузкой ведет себя система, нет ли каких-либо утечек памяти. 
  4. Юзабилити тестирование. Оценка, удобство пользования нашим сайтом. Например, пользователь хочет оплатить товар, но не может найти кнопку ОПЛАТИТЬ, так не пойдет.  

Связанное с изменениями в коде

  1. Smoke тестирование. Или дымовое тестирование — проверка, что наше приложение или программа работает. Например, если у нас есть сайт, то smoke тестирование включает в себя то, что ты заходишь на сайт, регистрируешься и сайт работает, это и есть smoke тестирование.  
  2. Регрессионное тестирование. После того, как мы прошли smoke тестирование у нас появились изменения в коде, мы проверяем, что у нас все те функции, которые раньше работали, работают и все те тесты, которые были написаны нами ранее на заданный функционал, они проходятся. Нужно заново пройти все старые тесты и убедится, что наш новый участок кода, новых фикс бага не испортил какой-либо другой участок кода. 

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

  1. Ручное тестирование. Это прохождение тест-кейсов в ручную, без применения каких-либо программ, позволяющих тебе автоматизировать прохождение тест кейсов.
  1. Автоматизированное. Тестирование с помощью каких-либо программ, которые позволяют нам автоматизировать наши тест кейсы, например написание автотестов с помощью программного кода + какой-либо фреймворк* упрощающий написание автотестов. Например, язык программирования Java + фреймворк или язык программирования Python с помощью которого мы автоматизируем наши тест кейсы. Наиболее применимые в автотестах языки программирования это или Java или Python

*Фреймворк — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов.

По критерию позитивности сценариев 

  1. Позитивное тестирование — это тестирование в рамках заявленных требований. Например, мы заходим на сайт и регистрируемся под именем пользователя, которое допустимо и под длиной пароля, который тоже допустим, проверяем что у нас работает программа с заявленными требованиями. Его мы делаем в первую очередь, а только потом негативное
  2. Негативное тестирование — например вместо пароля вставляем непонятные символы или огромное количество символов, из произведения Л. Толстого “Война и Мир”.

По времени проведения

  1. Альфа тестирование — проводится самими сотрудниками компании. 
  2. Бета тестирование — уже на более поздних сроках, на ограниченном круге лице, внешние пользователи, заранее отобранные для этого. 

Видео-урок

Ссылка на основную публикацию