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

Gray-box testing

A cat inside a gray box

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

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

Базы данных будут рассмотрены позже тут.

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

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

Рассмотрим примеры, при которых анализ поможет выявить баги.

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

  2. Ограничения целостности
    Требования База данных
    Поле может быть пустым Поле с ограничением NOT NULL
    Баг: ограничение NOT NULL в базе данных приводит к ошибке при записи данных с пустым значением в поле.

  3. Уникальность значения.
    Требования База данных
    Значения поля не уникальны Поле с ограничением UNIQUE
    Баг: ограничение UNIQUE приводит к ошибке при добавлении записи с одинаковым значением в поле.
Задача

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


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

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

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

Схема данных в базе данных:

database-schema

Таблица cat в базе данных содержит столбцы:

  • name - столбец, содержащий имя
  • age - столбец, содержащий возраст
  • id - идентификатор записи

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

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

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

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

ВВЕДЕНИЕ

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

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

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

МЕТОДЫ ТЕСТИРОВАНИЯ

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

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

POSTMAN

БАЗЫ ДАННЫХ

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

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

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

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