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

Gray-box testing

A cat inside a gray box

При тестировании методом серого ящика мы имеем некоторое представление о внутренней структуре приложения, но, как и при тестировании методом чёрного ящика, опираемся в основном на спецификацию.

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

Анализ ограничений на уровне базы данных

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

Ниже приведены примеры багов, которые можно выявить простым сравнением требований и схемы.

Тип данных
Требования База данных
Поле может быть заполнено любыми символами Поле имеет числовой тип INTEGER
Поле должно хранить текст длиной до 200 символов Поле ограничено длиной в 100 символов VARCHAR(100)
Баг: ограничение меньшего размера в базе данных приводит к ошибке при записи или обновлении данных.
Ограничение целостности
Требования База данных
Поле может быть пустым Поле с ограничением NOT NULL
Баг: NOT NULL ограничение в базе данных приводит к ошибке при записи данных с пустым значением в поле.
Уникальность значения
Требования База данных
Значения поля не уникальны Поле с ограничением UNIQUE
Баг: UNIQUE ограничение приводит к ошибке при добавлении записи с одинаковым значением в поле.
Задача

Изучите «Требования к API» и схему базы данных. Проведите тестирование методом серого ящика. Известно, что сервер при получении запроса обновляет в базе данных значение столбца name таблицы cat.

Форма для отправки HTTP-запроса

Требования к API:

  • Эндпоинт /hello-gray-box-server
  • HTTP метод для обновления данных на сервере
  • Заголовок с типом контента application/json
    (указывает на то, что данные будут переданы в JSON формате)
  • Тело запроса должно содержать ключ name с любым строковым значением в JSON формате
Ключ Тип Обязательность Ограничения
name строка + от 1 до 30 символов

Схема таблицы cat в базе данных:

Поле Тип Описание
id integer Идентификатор записи
name varchar(16) Имя
age integer Возраст

На поля наложены ограничения:

  • varchar(16) - строка длиной до 16 символов
  • integer - число

Что-то подобное мы уже делали в задаче из раздела про API. На этот раз наша цель — найти баг, опираясь на требования и дополнительные знания о схеме базы данных.

Задача доступна премиум пользователям!

Открой доступ, чтобы заниматься без ограничений.

Полный доступ ко всем практическим задачам
Проверка ответов
Неограниченное количество попыток
Sidebar arrow

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

ТЕХНИКИ ТЕСТ ДИЗАЙНА

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Тест Собеседование