Виды тестирования :


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

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

Уровни Тестирования :

  1. Модульное тестирование - Компонентное(модульное) тестирование проверяет функциональность и ищет дефекты в частях приложения, которые доступны и могут быть протестированы по-отдельности.
    (Модули - это части нашего приложения, такие как: аватар, комментарий, сообщение, лайк и т.д. Приложение состоит из кучи модулей. Модули можно представить как пазлы)
  2. Интеграционное тестирование - Проверяем взаимодействие между компонентами внутри системы, так и со сторонними системами(другими сайтами):
    Список больниц определяется выбранным диагнозом на предыдущей вкладке(интеграция между компонентами системы).
    Расположение больницы на карте(интеграция с Яндекс-картой).
    Курсы валют на главной странице Яндекса(интеграция с биржей).
    Интеграцию между компонентами можно представить как несколько пазлов, образующих какую-то картинку.
  3. Системное тестирование - Это тестирование программного обеспечения выполняемое на полной, интегрированной системе, с целью проверки соответствия системы исходным требованиям, как функциональным, так и не функциональным.
    При этом выявляются дефекты, такие как неверное использование ресурсов системы, несовместимость с окружением, отсутствующая или неверная функциональность, неудобство использования и т.д. (Системное тестирование - это когда все пазлы собраны в единое целое).
  4. Приемочное тестирование - Формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:
    • определения удовлетворяет ли система приемочным критериям;
    • вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет.
    Это финальный этап тестирования продукта перед его релизом. При этом, он не является сверх тщательным – тестируется, в основном, только основной функционал.

Тестирование безопасности - это стратегия тестирования, используемая для проверки безопасности системы.


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

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

Виды нефункциональных тестов :

  1. Все виды тестирования производительности :
    • Нагрузочное тестирование — это автоматизированное тестирование, имитирующее работу определенного количества пользователей на каком-либо ресурсе.
    • Стрессовое тестирование - позволяет проверить насколько приложение и система в целом работоспособны в условиях стресса, т.е. повышение интенсивности выполнения операций до очень высоких значений или аварийное изменение конфигурации сервера.
    • Тестирование стабильности или надежности - проверка работоспособности приложения при длительном тестировании со средним уровнем нагрузки.
  2. Тестирование на отказ и восстановление - проверяет тестируемый продукт с точки зрения способности противостоять и успешно восстанавливаться после возможных сбоев, возникших в связи с ошибками программного обеспечения, отказами оборудования или проблемами связи (например, отказ сети)
  3. Тестирование пользовательского интерфейса(UI - User Interface) - соответствие интерфейса приложения(сайта), которые сделал разработчик макетам, сделанным дизайнером интерфейсов
  4. Тестирование удобства пользования(UX - User Experience) - характеризует систему с точки зрения удобства использования конечного пользователя.
    Это метод тестирования, направленный на установление степени удобства использования, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий.

Связанные с изменениями виды тестирования

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

К связанным с изменениями относятся :

  1. Дымовое(Smoke) тестирование рассматривается как короткий цикл тестов, выполняемый для подтверждения того, что после сборки кода (нового или исправленного) устанавливаемое приложение, стартует и выполняет основные функции.
    Вывод о работоспособности основных функций делается на основании результатов поверхностного тестирования наиболее важных модулей приложения на предмет возможности выполнения требуемых задач и наличия быстро находимых критических и блокирующих дефектов. В случае отсутствия таковых дефектов дымовое тестирование объявляется пройденным, и приложение передается для проведения полного цикла тестирования, в противном случае, дымовое тестирование объявляется проваленным, и приложение уходит на доработку.
    Для облегчения работы, экономии времени и человеческих ресурсов используется автоматизация тестовых сценариев для дымового тестирования. (Проверяются наиболее важные модули, например, регистрация, авторизация, поиск, подписка, загрузка аватара, отправление сообщений, лайк, комментарий и т.п. Проверяем на предмет работы используя позитивные проверки, т.е. действуя по требованиям(если в требованиях написано, что на аватар можно загрузить картинку не более 10 Мб, то мы грузим картинку не более 10 Мб и выполняем проверку следующего модуля)).
  2. Санитарное тестирование — это узконаправленное тестирование достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. Используется для определения работоспособности определенной части приложения после изменений, произведенных в ней или окружающей среде. Обычно выполняется вручную.
    (Т.е. мы концентрируемся на одном компоненте и тестируем только его, например, проверяем только аватар. По требованиям на аватар можно загрузить изображение не более 10 Мб. Сначала мы грузим картинку png не более 10 Мб и убеждаемся что она загрузилась. Далее картинку jpeg не более 10 Мб и убеждаемся что и она загрузилась. Далее картинку более 10 Мб и убеждаемся что она не загрузится. После грузим отличные от картинки файлы: docx, gif, mp3 и т.д.)

    Отличие санитарного тестирования от дымового
    Эти виды тестирования имеют "вектора движения", направления в разные стороны. В отличии от дымового, санитарное тестирование направлено вглубь проверяемой функции(т.е. мы концентрируемся на одном компоненте и тестируем только его), в то время как дымовое направлено вширь(т.е. мы проверяем различные компоненты: , регистрация, авторизация, поиск, подписка, загрузка аватара, отправление сообщений, лайк, комментарий и т.п.)
  3. Регрессионное тестирование — это вид тестирования, направленный на проверку изменений, сделанных в приложении, для подтверждения того факта, что существующая ранее функциональность работает, как и прежде.
    Таким образом, мы можем сказать, что цель регрессионного тестирования – убедиться, что исправление одних багов не стало причиной возникновения других и что внесение изменений в код не создало новых дефектов в уже проверенном коде.
    Как правило, для регрессионного тестирования используются тест-кейсы, написанные на ранних стадиях разработки и тестирования. Это дает гарантию того, что изменения в новой версии приложения не повредили уже существующую функциональность. Рекомендуется делать автоматизацию регрессионных тестов, для ускорения последующего процесса тестирования и обнаружения дефектов на ранних стадиях разработки программного обеспечения.

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

Методики тестирования