Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить курсы бесплатно
ГлавнаяБлогФункциональное тестирование ПО: задачи, виды, методы проведения
Программы для создания базы данных
11.07.2022
25 763
Время чтения: 17 минут

Функциональное тестирование ПО: задачи, виды, методы проведения

11.07.2022
25 763
Время чтения: 17 минут
Сохранить статью:
Сохранить статью:

В статье рассказывается:

  1. Понятие функционального тестирования программного обеспечения
  2. Разница между функциональным и нефункциональным тестированием
  3. Виды функционального тестирования
  4. Этапы функционального тестирования
  5. Основные методы функционального тестирования
  6. Когда требуется функциональное тестирование сайта
  7. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

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

У вас есть ряд требований, которые вы хотите видеть в вашем велосипеде: горный, алюминиевая рама, большие колеса, переключения скоростей; и требования вы сравниваете с предложениями на страницах магазинов. Совпадение – тест пройден.

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

Понятие функционального тестирования программного обеспечения

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

Понятие функционального тестирования программного обеспечения
Понятие функционального тестирования программного обеспечения

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

  • «черный ящик» (black box) – тестирование проводится без доступа к исходному коду;
  • «белый ящик» (white box) – доступ к коду системы обеспечивается.
Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 28040 pdf иконка

Тестирование «черный ящик» берет за основу внешние проявления работы системы. Внутренние механизмы при этом остаются неизвестными. Данные тесты проверяют ответную реакцию программного обеспечения на различные вводные данные при определенном внутреннем состоянии программ. В процессе тестирования типа «белый ящик» создаются тест-кейсы на основе кода системы.

Помимо указанных концепций существует еще так называемый «серый ящик» (grey box) — это расширенный вариант исследования black box, допускающий изучение исходного кода.

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

  • пользовательский интерфейс;
  • API;
  • базы данных;
  • безопасность систем;
  • работа клиентских и серверных приложений;
  • общая функциональность.

Перечислим основные преимущества системы функционального тестирования:

  • создание точной копии тестируемого продукта;

Иными словами, проверяются конкретно те спецификации, по которым продукт будет эксплуатироваться пользователем.

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

Разница между функциональным и нефункциональным тестированием

Функциональное исследование принципиально отличается от нефункционального. Приведем эти различия в сравнительной таблице.

Функциональное тестирование Нефункциональное тестирование
Для проверки системы на соответствие требованиям используется функциональная спецификация, которую предоставляет заказчик. Объектами проверки являются такие нефункциональные параметры системы, как производительность, надежность и масштабируемость.
Выполняется в первую очередь. Выполняется строго по завершению функциональных тестов.
Помимо ручного метода может использоваться автоматизированное функциональное тестирование. Использование любых инструментов покажет свою эффективность.
Требования заказчика служат входными данными За входные данные в данном случае принимаются производительность, скорость, масштабируемость и т. п.
В процессе исследования описывается функциональность программного продукта. В процессе исследования описывается качество работы программного продукта.
Достаточно просто выполняются ручные методы. Ручными методами проводить данные тесты сложно.
Примеры функционального тестирования:
  • модульное тестирование;
  • тесты «дымности»;
  • тесты «в здравом уме»;
  • интеграционное тестирование;
  • white-box-исследования;
  • black-box-исследования;
  • пользовательское тестирование
  • регрессионные тесты.
Примеры нефункционального тестирования:
  • проверка производительности;
  • проверка нагрузки;
  • объемное тестирование;
  • проверка безопасности;
  • тестирование установки;
  • проверка проницаемости;
  • проверка совместимости;
  • миграционное тестирование.

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

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

  • Модульные тесты

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

Дарим скидку от 60%
на обучение «Инженер-аналитик» до 12 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку
  • Проверка работоспособности

Выполняется с целью обеспечить бесперебойную работу ключевых функций программы или системы. Данный тест обычно проводят после проверки на «дым».

  • Smoke–тест

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

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

Необходимо после модернизации кода для исключения нестабильной работы и нарушения функционала согласно спецификациям.

  • Интеграционное функциональное тестирование

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

  • Проверка юзабилити

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

Этапы функционального тестирования

Этап 1: Подготовка

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

Кроме того, разрабатываются план предстоящих тестов и тест-кейсов, который затем согласовывается с клиентом. Согласованию подлежат также проектные сроки выполнения, число итераций, оценка вероятных рисков. Подготовка ведется при участии представителей заказчика.

Этапы функционального тестирования
Этапы функционального тестирования

Этап 2: Проведение

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

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

Только до 9.05
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Этап 3: Отчет

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

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

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

  • Положительное тестирование

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

  • Отрицательное тестирование

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

Далее эти фундаментальные методы можно разделить на типы функционального тестирования:

  • Проверки на основе конечного пользователя

Исследуемая система состоит из компонентов, соответствующих пользовательским ожиданиям при условии совместной работы этих компонентов.

  • Тесты эквивалентности

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

  • Граничное тестирование

В рамках этих тестов ограничиваются данные для исследуемой программы, а затем анализируется поведение этой программы. Выход исходных данных за пределы установленных границ автоматически относит данное тестирование к отрицательному.

  • Тесты на основе принятия решений

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

  • Альтернативные проверки потока

Обычно таким образом проверяются все вероятные способы выполнения функции, отличные от основного потока.

  • Специальные тесты

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

Когда требуется функциональное тестирование сайта

Необходимость в таком исследовании возникает при наличии на сайте интерактивных элементов, таких как:

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

Сайт интегрируется с другими информационными системами, среди которых:

  • программы складского учета,
  • CRM,
  • сервисы оплаты и доставки,
  • программы лояльности и т. д.

Каждый такой модуль может работать с ошибками и сбоями.

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

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

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

Тем не менее, упор в процессе данных тестов делается именно на проверку функциональности сайта. Остальные критерии проверяются скорее факультативно.

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

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

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

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

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

Оцените статью
Рейтинг: 2.13
( голосов 15 )
Поделиться статьей
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
  1. Аноним

    Забыли написать про Grey box testing

    0
    0
    Ответить
До конца акции осталось
0 дней 00:00:00
Получите бесплатно 3 курса для лёгкого старта работы в IT
  • Начни зарабатывать от 210 000 ₽ в ИТ-сфере
  • Работай там, где ты хочешь: дома, на море, и даже на концерте
Получить бесплатно
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...