Рейтинг: 2.4/5. на основе 5 оценок.
Пожалуйста, подождите...

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

На замену такому способу хранения данных пришли специальные дата-центры с вместительными жесткими дисками и были придуманы базы данных (БД), где большие массивы информации могут длительное время храниться, обрабатываться и логически структурироваться.

База данных — специальная структура для хранения информации, организации и обмена большого объема данных. Они используются в разных сферах деятельности ИТ-сообществ: начиная от простых веб-магазинов и заканчивая центрами управления космическими полетами.

Для создания, применения и управления БД был создан специальный комплекс приложений и системных средств, который именуется системой управления базами данных (СУБД).

СУБД — особая совокупность программ, которые применяются для разработки, отображения, заполнения и модифицирования информации.

Самыми популярными СУБД являются: Oracle, PostgreSQL, MongoBD, MySQL и Microsoft SQL Server.

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

В различных ПО информация передается от пользователя к внутренней БД и наоборот.

Проверка работоспособности БД, в первую очередь, заключается в тесте производительности, которая связана с БД, а также в тестировании надежности и структурной целостности информации.

Популярные составляющие при тестировании БД

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

  1. Отображение информации: тестировщик должен проверять сопоставление полей в форме пользовательского интерфейса с аналогичными полями внутри БД. Традиционно, подобная информация задается в содержании спецификации;
  2.  Обновление записи в таблице: каждый раз, когда определенное действие будет выполняться во внешнем интерфейсе ПО, соответствующее действие должно вызываться во внутреннем интерфейсе. Для теста обновления записи в таблице, проверяющему необходимо руководствоваться специальной мнемоникой CRUD C (Create) — когда пользователь сохраняет любую операцию, применяется операция INSERT, R (Read) — когда человек может просматривать или выполнять поиск сохраненной операции, выполняется операция SELECT, U (Update) — когда пользователь редактирует существующую запись, в базе данных автоматически выполняется операция Update, D (Delete) — когда человек удаляет запись из БД, выполняется операция Delete;
  3. Тестирование свойств ACID операций: любая операция, которая выполняется в БД, должна в полной мере соответствовать таким 4 свойствам: атомарность, последовательность, прочность и изоляция;
  4. Сохранность и целостность данных: вся информация, а также ее модификация, должны отображаться одинаково и в понятной для пользователя форме. Необходимо проверить, чтобы система демонстрировала крайние изменения в таблицах идентично во всех местах, где они отображаются. Это нужно для того, чтобы убедиться, что они одинаковы во всех частях системы;
  5. Соответствие установленным бизнес-правилам: БД применяются не только ради хранения информации, но и в качестве инструмента ведения процесса разработки ПО. Большая техническая сложность в БД означает применение очень сложных компонентов, наподобие реляционных ограничений, триггеров, сохраняемых процедуры. То есть, тестировщикам нужно выдумывать соответствующие SQL-запросы для тестирования этих сложных системных объектов.

Базовые атрибуты тестирования БД

  • Транзакции — определенная последовательность некоторых действий с БД, в которой все манипуляции выполняются успешно, или не выполняtтся ни одно из них. Транзакция представляется атомарной и выполняется как единое целое;
  • Схема БД — это структуры организации информации, описание таблицы и колонок (их виды, граничные значения, связи между таблицами);
  • Триггер — процедура определенного типа, которая может выполнятся автоматически после некоторых действий по модификации информации. Например, добавление или редактирование информации в определенном столбце. Триггеры используются для валидации целостности информации и реализации сложнейшей бизнес-логики;
  • Процедура — набор параметров или операторов, которыми управляются транзакции в структуре баз данных.

Основные виды тестирования БД

Проверку работоспособности БД можно поделить на 3 вида, в зависимости от параметров и структуры БД:

  1. Структурная проверка БД основывается на тестировании таблиц, столбцов, схем БД, а также на тестировании хранимых процедур и (или) триггеров;
  2. Функциональные проверки БД — это проверка работоспособности БД с точки зрения рядового пользовтеля. Можно выделить сразу 2 вида функциональных проверок — тестирование белого и черного ящиков;
  3. Нефункциональные проверки БД — это проверка производительности БД, от нагрузочных тестов, тестирования рисков до стресс-тестирования, а также аналитики минимальных требований системы.

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

Создать самые простые запросы для тестирования схем БД можно с помощью инструмента Microsoft SQL Server.

Проверка таблиц и столбцов охватывает такие области тестирования:

  • проверка видов данных в БД по значимости полей в ПО;
  • тестирование длины поля информации в БД по длине видов данных в ПО;
  • тестирование неотображенных таблиц и столбцов в БД, которые есть в ПО;
  • проверка на точное соответствие имен таблиц и столбцов БД заявленным бизнес-требованиям;
  • тестирование на точное соответствие ключей и индексов в БД заявленным бизнес-требованиям.

Проверка хранимых процедур охватывает тесты хранимых процедур и анализ результатов вывода выполненных команд.

Проверка хранимых процедур выполняется следующим ПО: SP test tool и LINQ.

При тестировании следует выполнять такие последовательные шаги:

  • сверить наименование процедуры, имен и видов параметров;
  • протестировать сигнал на входе (проводится ли отображение нулевых строк или демонстрируется только пару записей, работает ли функция хранимой процедуры);
  • протестировать процесс передачи выходного запроса для сверки хранения необходимой информации;
  • завалидировать вывод ошибок при любом некорректном использовании запроса.

Для анализа проверки триггеров тестировщику нужно выполнять таки последовательные действия:

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

Его основная цель: точное определение корректной работоспособности ПО во время нагрузки. Никто не будет в восторге от системы, которая не может обработать не самый большой запрос за время, больше 5-ти минут.

Для проведения подобного вида тестирования нужно:

  • выполнить точные замеры сроков выполнения операций при некоторых минимальных, средних и максимальных системных нагрузках;
  • проанализировать суммупользователей, которые могут одновременно взаимодействовать с ПО;
  • проанализировать процесс производительности при различных системных нагрузках.

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

  • Сумма операций за выбранный период времени;
  • Сумма транзакций за выбранный период;
  • Сумма прочитанных строк внутри таблицы на 1 транзакцию;
  • Средняя сумма операций внутри сортировки.

Стресс-тестирование позволяет зафиксировать, насколько тестируемая система работоспособна в условиях возникающего стресса, а также позволяет проанализировать способность системы к быстрому восстановлению, то есть к возвращению к традиционному состоянию после завершения оказания стресса (нагрузки).

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

Обычно, такой процесс проверки сводится к оценке его «дружеского настроя» по отношению к пользователю. Тестируется точное соответствие наименований кнопок и запрограммированных им операций, ссылок, редиректов, технически заложенных в графический интерфейс и валидация вводимых значений.

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

  1. Создать запросы через графический интерфейс и выполнить их;
  2.  Найти записи в ячейке, редактировать ее и попробовать сохранить;
  3. Удалить текущую ячейку с данными;
  4. Повторить все эти тестовые шаги с невалидными и корректными данными и проанализировать как на это «реагирует» база данных.
БД является достаточно значащей составляющей любого программного обеспечения, а значит, крайне важно проверять ее работоспособность заранее, протестировав корректность и безопасность ввода информации.

Тесты БД требуют пристальной концентрации, определенной подготовки, профессиональных навыков создания SQL-запросов, познаний о структуре БД и практических навыков.

Проверка БД позволяет снизить риски, которые, так или иначе, связаны с целостностью информации, способностью архитектуры реагировать на нагрузку до периода введения ПО в полноценную эксплуатацию.

Оставить комментарий