Тестирование методом чёрного ящика

cat-in-black-box

При тестировании методом чёрного ящика (black-box testing), мы имеем доступ только к внешнему интерфейсу приложения. При тестировании будем опираться на требования к сервису или спецификацию и познакомимся с новыми техниками тестирования, которые помогут нам обнаружить дефекты.

Внешний интерфейс приложения

Под интерфейсом понимается оболочка, с помощью которой пользователь может взаимодействовать с приложением.

Сравним два таких интерфейса: GUI (Graphical User Interface) и CLI (Command Line Interface).


GUI
graphical-user-interface-request

Мы заполняем форму для ввода данных через графический интерфейс приложения.

При нажатии на кнопку «Send» отправляется HTTP-запрос с методом POST и телом в JSON формате.

Детали HTTP-запроса сокрыты от нас как от пользователя.

Но при желании мы можем посмотреть их через DevTools —> Network.

CLI
command-line-interface-request

Тот же запрос при помощи утилиты curl через CLI.

Для вызова консоли:

  • в Windows необходимо ввести cmd в строке поиска рядом с "Пуск".
  • в IOS необходимо выбрать Launchpad в панели Dock и в поле поиска ввести Terminal.

curl — кроссплатформенная программа, предустановленная в большинстве дистрибутивов. Скачать её можно с официального сайта.


Техники тестирования методом черного ящика

Рассмотрим две техники, которые помогут нам протестировать программу с графическим интерфейсом «Оцени своё настроение сегодня», принимающую на вход значения от 1 до 100 включительно.

Оцени своё настроение сегодня

Анализ граничных значений
(Boundary Value Analysis)
boundary-values

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

Выделим граничные значения для программы «Оцени своё настроение сегодня»:

  • Допустимые граничные значения 1 и 100
  • Недопустимые граничные значения 0 и 101

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

Разбиение на классы эквивалентности
(Equivalence Partitioning Testing)
equivalence-classes

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

Программа принимает значения от 1 до 100 включительно, можно разбить данные на три класса эквивалентности:

  • Входные данные, которые находятся в диапазоне от 1 до 100, например, 50
  • Входные данные, которые находятся за пределами допустимого диапазона и меньше 1, например, -100
  • Входные данные, которые находятся за пределами диапазона и больше 100, например 150

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