В статье рассказывается:
- Понятие функционального тестирования программного обеспечения
- Разница между функциональным и нефункциональным тестированием
- Виды функционального тестирования
- Этапы функционального тестирования
- Основные методы функционального тестирования
- Когда требуется функциональное тестирование сайта
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Функциональное тестирование программных продуктов, сайтов нацелено на выявление соответствия заданных в ТЗ параметров реальному результату. Если проводить простую аналогию, то суть тестирования можно сравнить с выбором велосипеда в интернет-магазине.
У вас есть ряд требований, которые вы хотите видеть в вашем велосипеде: горный, алюминиевая рама, большие колеса, переключения скоростей; и требования вы сравниваете с предложениями на страницах магазинов. Совпадение – тест пройден.
Конечно же, когда речь идет о ПО, всё происходит намного сложнее. Существуют ручные и автоматизированные тесты, разные методики их проведения, инструменты и множество других аспектов. Подробнее о том, что такое функциональное тестирование, где и как применяется, вы узнаете из нашего материала.
Понятие функционального тестирования программного обеспечения
Функциональное тестирование программ представляет собой комплекс ключевых мероприятий по проверке программного обеспечения, по результатам которых устанавливается соответствие этого ПО исходным требованиям заказчика. Иными словами, с помощью проведения данных тестов устанавливается способность информационных систем в конкретных условиях решать пользовательские задачи.
Существует две разновидности функциональных испытаний, определяемые наличием доступа к исходному коду системы:
- «черный ящик» (black box) – тестирование проводится без доступа к исходному коду;
- «белый ящик» (white box) – доступ к коду системы обеспечивается.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Тестирование «черный ящик» берет за основу внешние проявления работы системы. Внутренние механизмы при этом остаются неизвестными. Данные тесты проверяют ответную реакцию программного обеспечения на различные вводные данные при определенном внутреннем состоянии программ. В процессе тестирования типа «белый ящик» создаются тест-кейсы на основе кода системы.
В рамках функционального тестирования программного продукта проверяются следующие компоненты и критерии:
- пользовательский интерфейс;
- API;
- базы данных;
- безопасность систем;
- работа клиентских и серверных приложений;
- общая функциональность.
Перечислим основные преимущества системы функционального тестирования:
- создание точной копии тестируемого продукта;
Иными словами, проверяются конкретно те спецификации, по которым продукт будет эксплуатироваться пользователем.
- работа не основана на предположениях о структуре ПО;
- гарантия получения высокого качества продукта и достижения результата в соответствии с требованиями заказчика;
- гарантия обеспечения требуемого функционала при полном отсутствии ошибок;
- минимизация любых видов рисков благодаря тестам на основе риска.
Разница между функциональным и нефункциональным тестированием
Функциональное исследование принципиально отличается от нефункционального. Приведем эти различия в сравнительной таблице.
Функциональное тестирование | Нефункциональное тестирование |
Для проверки системы на соответствие требованиям используется функциональная спецификация, которую предоставляет заказчик. | Объектами проверки являются такие нефункциональные параметры системы, как производительность, надежность и масштабируемость. |
Выполняется в первую очередь. | Выполняется строго по завершению функциональных тестов. |
Помимо ручного метода может использоваться автоматизированное функциональное тестирование. | Использование любых инструментов покажет свою эффективность. |
Требования заказчика служат входными данными | За входные данные в данном случае принимаются производительность, скорость, масштабируемость и т. п. |
В процессе исследования описывается функциональность программного продукта. | В процессе исследования описывается качество работы программного продукта. |
Достаточно просто выполняются ручные методы. | Ручными методами проводить данные тесты сложно. |
Примеры функционального тестирования:
|
Примеры нефункционального тестирования:
|
Виды функционального тестирования
Существует множество категорий исследования, выбор которых зависит от того, для чего проводится функциональное тестирование. Наиболее распространенные разновидности будут рассмотрены далее.
- Модульные тесты
Производятся, как правило, разработчиком блоков кода, связанных либо не связанных друг с другом в зависимости от требуемого функционала ПО. Написанный код должен содержать тестовые примеры для модульного тестирования строк и методов.
на обучение «Инженер-аналитик» до 24 ноября
- Проверка работоспособности
Выполняется с целью обеспечить бесперебойную работу ключевых функций программы или системы. Данный тест обычно проводят после проверки на «дым».
- Smoke–тест
Тестирование на «дымность», также известное как проверка сборки, выполняется после выпуска тестовой сборки для обеспечения стабильности этого выпуска.
- Функциональное регрессионное тестирование
Необходимо после модернизации кода для исключения нестабильной работы и нарушения функционала согласно спецификациям.
- Интеграционное функциональное тестирование
Проверяются сквозные сценарии совместной работы нескольких функциональных модулей системы с целью достижения конечного результата, в том числе, когда по отдельности эти модули работают безупречно.
- Проверка юзабилити
Тестирование осуществляется непосредственно потребителем в производственных условиях. Таким образом учитывается уровень комфорта при взаимодействии с программным продуктом, оценивается обратная связь. Данный вид проверок напоминает приемочное тестирование пользователей.
Этапы функционального тестирования
Этап 1: Подготовка
Выполняемые на этом этапе функционального тестирования задачи включают в себя анализ исходных данных о системе. А именно, исследуются требования заказчика, техническое задание и паспорт проекта.
Кроме того, разрабатываются план предстоящих тестов и тест-кейсов, который затем согласовывается с клиентом. Согласованию подлежат также проектные сроки выполнения, число итераций, оценка вероятных рисков. Подготовка ведется при участии представителей заказчика.
Этап 2: Проведение
Функциональное тестирование мобильного приложения или программного обеспечения выполняется вручную по заранее разработанным сценариям. Обнаруженные в ходе тестов ошибки заносятся в багтрекинговую систему, если она имеется у заказчика.
В противном случае возможны несколько вариантов: предоставление такой системы на ресурсах исполнителя, предоставление заказчику специальной лицензии, использование имеющихся у клиента средств, использование только офисных программ.
Этап 3: Отчет
По определению функциональное тестирование должно завершаться отчетными материалами. Разрабатываются и согласовываются отчеты на последнем этапе, при этом составляются списки выявленных отклонений с рекомендациями по улучшению системы. При необходимости организуется обучение пользователей.
Основные методы функционального тестирования
Существует две крупных категории, определяющие тот или иной подход к исследованиям.
- Положительное тестирование
Тесты в данном случае проводятся с целью обеспечить соответствие программного продукта хотя бы ключевым требованиям заказчика.
- Отрицательное тестирование
Проверка с применением негативных сценариев дает впоследствии гарантию стабильной работы системы даже в случаях воздействия неожиданных начальных условий.
Далее эти фундаментальные методы можно разделить на типы функционального тестирования:
- Проверки на основе конечного пользователя
Исследуемая система состоит из компонентов, соответствующих пользовательским ожиданиям при условии совместной работы этих компонентов.
- Тесты эквивалентности
Входные данные разделяются по так называемым классам данных эквивалентности. Критерий отнесения к тому или иному разделу заключается в одинаковом поведении этих данных, что позволяет исследовать лишь одно условие — если оно работает, другие также будут работать, а если вдруг по нему работа прекращается, перестают работать все.
- Граничное тестирование
В рамках этих тестов ограничиваются данные для исследуемой программы, а затем анализируется поведение этой программы. Выход исходных данных за пределы установленных границ автоматически относит данное тестирование к отрицательному.
- Тесты на основе принятия решений
Здесь основным критерием служат всевозможные получаемые при проведении функционального тестирования результаты, но только когда выполняется определенное условие.
Читайте также!
- Альтернативные проверки потока
Обычно таким образом проверяются все вероятные способы выполнения функции, отличные от основного потока.
- Специальные тесты
Данной методикой выявляются различные несоответствия, которые ранее не обнаруживались. Эти тесты находят широкое применение, когда большая часть ошибок была выявлена вышеописанными методами.
Когда требуется функциональное тестирование сайта
Необходимость в таком исследовании возникает при наличии на сайте интерактивных элементов, таких как:
- формы регистрации,
- формы авторизации
- формы обратной связи,
- инструменты сортировки и фильтрации,
- кнопки заказа товара,
- кнопки вызова менеджера,
- инструменты для прохождения опроса, оставления отзыва и т. д.
Сайт интегрируется с другими информационными системами, среди которых:
- программы складского учета,
- CRM,
- сервисы оплаты и доставки,
- программы лояльности и т. д.
Каждый такой модуль может работать с ошибками и сбоями.
Цель функционального тестирования состоит в удовлетворении требований заказчика. Прежде всего необходимо знать, как должна работать тестируемая система. Любые отклонения от правильного поведения и возникающие в ходе тестов ошибки требуется документировать. После проверки на основе данной документации проводится процедура отладки.
При наличии грубых ошибок верстки и плохих дизайнерских решений они обязательно будут отмечены. Соответствующие рекомендации по исправлению выявленных недочетов тестировщик может отразить в итоговом отчете.
Тем не менее, упор в процессе данных тестов делается именно на проверку функциональности сайта. Остальные критерии проверяются скорее факультативно.
Поэтому, когда необходим конкретно аудит юзабилити, либо требуется полная проверка интернет-ресурса, желательно заказывать услуги у исполнителей, которые специализируются именно на этом. Функциональное тестирование интерфейса и дизайна выполняется специалистами, которые в освещенных темах могут досконально не разбираться.
Эта неопределенность в итоге влияет на решение руководителей компаний урезать затраты на подобные испытания, а то и вовсе отказываться от проведения тестов.
Между тем, специалисты рекомендуют не игнорировать полностью важность функциональных проверок. Последствия таких недальновидных отказов могут быть весьма негативными для бизнеса.
А вот отказываться от отдельных тестов, необходимости в которых в данное время нет, как раз желательно. Провести их можно в любой другой момент — возможности информационных технологий это позволяют.
Забыли написать про Grey box testing