Тестирование базы данных
Вступление
Современные приложения в основном состоят из фронтенда и бэкенда. Что касается тестирования бэкенда, то оно в основном ассоциируется с тестированием базы данных. В частности происходит проверка корректности записи введенных данных на фронтенде в базу данных бэкенда. Но не только. Также проверяется корректность схем, таблиц, ключей и многого другого. И вот об этом то мы с вами сегодня и поговорим на примере 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
Теперь вы скачали исходный код из репозитория. А затем нужно перейти в папку 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 и уже основываясь на этих примерах, создавать свои уникальные тесты.
Какие нужны базовые знания, чтобы стать инженером по тестированию ПО? Что необходимо выучить, чтобы получить первую работу? У кого больше шансов сменить работу и попасть в IT? Приглашаю вас на бесплатный урок, где обсудим, кто и как приходит в технологии через профессию тестировщик программного обеспечения. Урок подойдет тем, кто желает стать тестировщиком, получить новую профессию, работать удаленно.