Тестирование базы данных

72a0c4e7e25e1efbb2be594f32fcb061.png

Вступление

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

Установка

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

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

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

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

5c1a7605c12827bced739204d4f8c870.png

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

cd server
mkdir bld
cd bld

de3513fe7903a00701d3684d1cf115a1.png

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

cmake ..

6d069d6cd657dde48e03afcb651e47a9.png

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

9fc68bb514688499165f19060fb94af6.png

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

cmake --build . --config Debug

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

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

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

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

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

e8ac29f3f10d6647a4cb2e57b5314dd1.png

А теперь открываем любой текстовый редактор, например 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

7efb77cd19a1c6eaac5018610fdbdb62.png

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

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

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

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

Заключение

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

  • Схема

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

  • Столбцы

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

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

  • Триггеры

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

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

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

Какие нужны базовые знания, чтобы стать инженером по тестированию ПО? Что необходимо выучить, чтобы получить первую работу? У кого больше шансов сменить работу и попасть в IT? Приглашаю вас на бесплатный урок, где обсудим, кто и как приходит в технологии через профессию тестировщик программного обеспечения. Урок подойдет тем, кто желает стать тестировщиком, получить новую профессию, работать удаленно.

© Habrahabr.ru