😇
На testengineer.ru мы не размещаем рекламу, но над сайтом регулярно работают несколько человек. Поддержите нас, подписавшись на телеграм-канал "Тестировщик от бога"!
ДомойОбучениеАвтоматизированное тестированиеЧто такое функциональное тестирование? Мини-гайд

Что такое функциональное тестирование? Мини-гайд

Автор

Дата

Категория

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

Содержание

Что такое функциональное тестирование простыми словами?

Функциональное тестирование проверяет пригодность приложения (сайта) — делает ли приложение (сайт) то, что должно?

Словами посложнее: тестирование, проверяющее ПО на соответствие функциональным требованиям.

Итак, задача функционального тестирования — проверить, что все функции приложения работают “как положено”, то есть как прописано в функциональных требованиях

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

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

Что делает функциональное тестирование?

Функциональное тестирование сосредоточено на проверке:

  1. Ключевых функций
  2. Usability, то есть легкости и удобства пользователя
  3. А также условий ошибок (то есть, выдает ли система сообщения об ошибках при их возникновении)

Преимущества

  1. Позволяет убедиться, что в продукте нет функциональных ошибок
  2. Продукт отвечает требованиям
  3. Качество продукта выше
  4. Пользователи удовлетворены

Как выполняется

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

  1. Создать наборы тестовых данных.
  2. Выполнить тест-кейсы.
  3. Сравнить полученный и ожидаемый результат.

Еще проще: ввод значений в “черный ящик” -> получение выводов -> их оценка.

В более подробном изложении:

  1. Тщательно ознакомиться с функциональными спецификациями. Что будет тестироваться? Главная функция приложения, его сообщения, условия при которых возникают ошибки, юзабельность приложения.
  2. Создать тестовые данные, на основе готовых требований к продукту.
  3. Оценка ожидаемых (приемлемых) выводов в ответ на значения тестовых данных. Какие должны быть выводы (результаты), в соответствии с требованиями.
  4. Выполнение тест-кейсов.
  5. Сравнение полученного вывода с ожидаемым. Здесь и получим ответ, работает ли приложение, как положено.

В чем разница между функциональным и нефункциональным?

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

Нефункциональное тестирование проводится после функционального, как менее приоритетное. 

Функциональное тестирование — это о том, что софт делает, а нефункциональное — как хорошо он это делает. 

Функциональное тестирование фокусируется на “механике”, а нефункциональное — на “результатах”.

Примеры функционального тестирования: юнит-тестирование, smoke-тестирование и другие (ниже список).

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

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

Типы

Какие бывают типы (категории) функционального тестирования?

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

Лучшие практики

1. Создавать тест-кейсы как можно раньше.

Создавать тест-кейсы можно, не ожидая готовности модулей или всего приложения. Лучше писать их заранее, когда пользовательские требования самые “свежие” на начальных этапах. Всегда можно внести изменения потом.

2. Автоматизация

Функциональное тестирование не самая простая задача в QA. Продуманная автоматизация тест-кейсов позволяет закончить тесты раньше, что дает экономию времени и денег. Все тест-кейсы автоматизировать не получится, это невозможно, поэтому это делается только с важными тест-кейсами. Обычно автоматизируются часто повторяемые тесты, которые “принимают” разные данные; а также те, которые особенно уязвимы к человеческим ошибкам.

3. Понимать, как мыслит конечный пользователь

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

4. Приоритеты

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

5. Частое тестирование

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

6. DDT-методика (Data Driven Testing)

Подробнее здесь.

Инструменты

Selenium

Инструмент №1 в QA “в целом”. Функциональное тестирование веб-приложений и десктопа. Подробнее о Selenium: раз, два, три, четыре.

SoapUI

Вероятно, самый часто используемый (по крайней мере, на Западе)) инструмент для SOAP- и REST-тестирования. Открытый инструмент с приятным интерфейсом и enterprise-функциональностью. Быстро создает и выполняет автоматизированные функциональные, регрессионные и нагрузочные тесты.

Watir

Странное “арабское” название означает на самом деле “Web Application Testing in Ruby”. Открытый инструмент для тестирование веб-приложений — не только написанных на Ruby. Поддерживает почти все браузеры.

Практический пример

Ситуация:

Портал, в который пользователь залогинивается со своим именем-паролем. На странице логина — два соответствующих поля, и две кнопки Login и Cancel.

При успешном входе страница перенаправляет пользователя на главную страницу портала. Кнопка Cancel отменяет логин.

Спецификации:

  1. В поле User ID (имя) должно быть не менее 6 и не более 10 символов, среди них могут быть буквы включая прописные, цифры, и специальные символы (только подчеркивание, дефис и точка). Поле не может быть оставлено пустым. Первый символ должен быть буквой или цифрой, но не спецсимволом.
  2. В поле пароля должно быть не менее 6 и не более 8 символов, допускаются буквы включая прописные, цифры, и специальные символы (подчеркивание, дефис и точка). Поле не может быть пустым.

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

  1. Классы эквивалентности

Поскольку здесь поле User ID может принимать максимум 10 символов, оно должно вести себя одинаково всякий раз когда вводится больше 10 символов.

  1. Анализ граничных значений

Поскольку здесь поле User ID требует как минимум 6 символа, проверяют, как система отвечает, когда введено меньше чем 6.

  1. Ad-hoc (здесь подробнее)

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

***

Новое на сайте:

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

$1100*
медианная зарплата в QA в ноябре 2021

*по результатам опроса QA-инженеров в нашем телеграм-канале

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

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

Последние комментарии