Современные приложения в основном состоят из фронтенда и бэкенда. Что касается тестирования бэкенда, то оно в основном ассоциируется с тестированием базы данных. В частности происходит проверка корректности записи введенных данных на фронтенде в базу данных бэкенда. Но не только. Также проверяется корректность схем, таблиц, ключей и многого другого. И вот об этом то мы с вами сегодня и поговорим на примере MariaDB Server, одной из самых популярных реляционных баз данных с открытым исходным кодом.

Установка

Прежде чем начать тестировать базу данных, нужно правильно её установить. Потому что обычная установка из.exe файла с помощью установщика Windows бесполезна для проведения каких‑либо тестов. Нам нужно произвести установку в режиме отладки, так называемый debug mode. Я хотел бы показать это на платформе Windows, которая является одной из самых распространённых в мире.

Для этого нам нужно три составляющие, а именно:

  • Visual C++ (при установке Visual Studio обязательно добавьте компонент «Desktop Development with C++»),

  • CMake

  • Git

Если у вас есть все эти три компонента на вашем ПК, вы сможете начать непосредственную установку. Нужно создать папку для MariaDB и перейти в неё. В командной строке переходим в созданную папку и затем выполняем команды:

mkdir Test
cd Test
git init
git clone -b mariadb-10.5.15 https://github.com/MariaDB/server.git

Теперь вы скачали исходный код из репозитория. А затем нужно перейти в папку server, создать новую папку bld и перейти в нее:

cd server
mkdir bld
cd bld

Таким образом уже почти всё подготовлено и осталось только выполнить CMake как кроссплатформенный генератор системы сборки с помощью следующей команды:

cmake ..

Сборка закончена:

Последним шагом необходимо собрать Debug version. Установка может занять несколько минут. Это зависит от пропускной способности вашего интернет‑соединения. Выполняем команду:

cmake --build . --config Debug

Тестирование

А теперь самая захватывающая часть нашей статьи. Давайте создадим наш первый тест. Это не так просто, но и не так сложно, как кажется. Вот некоторые правила, которые вы должны знать.

Вы должны использовать расширение .test при сохранении своего теста и сохранять его необходимо и сохранять его нужно в папке, которая находится вот по такому пути c:\Test\server\mysql-test\main

Но запускать наши тесты мы будем из папки, которая находится вот по этому пути c:\Test\server\bld\mysql-test

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

А теперь открываем любой текстовый редактор, например Notepad и пишем наш первый тест:

--echo # 
--echo # Test #00001: avarage 
--echo # 
create table t1 ( 
  pk int primary key, 
  height int 
); 
insert into t1 values 
(0,9), 
(1,5), 
(2,4); 
show create table t1; 
select avg(height) from t1;  
drop table t1;

Теперь нам нужно сохранить этот файл с расширением.test, в моем случае я назвал его sergei.test

В этом тесте мы создаем таблицу с тремя строками и вычисляем среднюю высоту.

Запускаем наш тест командой:

mysql-test-run.pl sergei.test

Наш тест пройден успешно, потому что в MariaDB в этом тестовом сценарии нет ошибок и нет ошибок в тестовом скрипте.

Иногда нам нужно записывать наши результаты. Это сделать достаточно просто. Надо запустить тест с опцией записи:

mysql-test-run.pl sergei.test --record

При этом создастся другой файл с расширением .result в том же каталоге, что и тестовый файл с тем же именем. В моем случае это sergei.result

Заключение

На самом деле тестирование базы данных может включать в себя множество проверок таких как:

  • Схема

  • Таблицы базы данных

  • Столбцы

  • Ключи и индексы

  • Хранимые процедуры

  • Триггеры

  • Проверка сервера базы данных

  • Проверка дублирования данных

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


Если хотите глубже разобраться в тестировании — от баз данных до API, автотестов и QA-процессов, посмотрите календарь открытых уроков OTUS.

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