При стремительном техническом прогрессе уже не представляется возможным хранить данные на бумажных носителях, рабочих столах или книжных полках. Под эти цели потребуется слишком много бумаги и большие площади для ее хранения.
На замену такому способу хранения данных пришли специальные дата-центры с вместительными жесткими дисками и были придуманы базы данных (БД), где большие массивы информации могут длительное время храниться, обрабатываться и логически структурироваться.
База данных — специальная структура для хранения информации, организации и обмена большого объема данных. Они используются в разных сферах деятельности ИТ-сообществ: начиная от простых веб-магазинов и заканчивая центрами управления космическими полетами.
Для создания, применения и управления БД был создан специальный комплекс приложений и системных средств, который именуется системой управления базами данных (СУБД).
СУБД — особая совокупность программ, которые применяются для разработки, отображения, заполнения и модифицирования информации.
Самыми популярными СУБД являются: Oracle, PostgreSQL, MongoBD, MySQL и Microsoft SQL Server.
Для любой системы, которая внедряется в программное обеспечение, необходимо провести ряд проверок, чтобы максимально минимизировать последующие ошибки при ее использовании.В различных ПО информация передается от пользователя к внутренней БД и наоборот.
Проверка работоспособности БД, в первую очередь, заключается в тесте производительности, которая связана с БД, а также в тестировании надежности и структурной целостности информации.
Популярные составляющие при тестировании БД
Далее детально рассмотрим некоторые характерные особенности, на которые необходимо обращать внимание при тестировании баз данных.
- Отображение информации: тестировщик должен проверять сопоставление полей в форме пользовательского интерфейса с аналогичными полями внутри БД. Традиционно, подобная информация задается в содержании спецификации;
- Обновление записи в таблице: каждый раз, когда определенное действие будет выполняться во внешнем интерфейсе ПО, соответствующее действие должно вызываться во внутреннем интерфейсе. Для теста обновления записи в таблице, проверяющему необходимо руководствоваться специальной мнемоникой CRUD C (Create) — когда пользователь сохраняет любую операцию, применяется операция INSERT, R (Read) — когда человек может просматривать или выполнять поиск сохраненной операции, выполняется операция SELECT, U (Update) — когда пользователь редактирует существующую запись, в базе данных автоматически выполняется операция Update, D (Delete) — когда человек удаляет запись из БД, выполняется операция Delete;
- Тестирование свойств ACID операций: любая операция, которая выполняется в БД, должна в полной мере соответствовать таким 4 свойствам: атомарность, последовательность, прочность и изоляция;
- Сохранность и целостность данных: вся информация, а также ее модификация, должны отображаться одинаково и в понятной для пользователя форме. Необходимо проверить, чтобы система демонстрировала крайние изменения в таблицах идентично во всех местах, где они отображаются. Это нужно для того, чтобы убедиться, что они одинаковы во всех частях системы;
- Соответствие установленным бизнес-правилам: БД применяются не только ради хранения информации, но и в качестве инструмента ведения процесса разработки ПО. Большая техническая сложность в БД означает применение очень сложных компонентов, наподобие реляционных ограничений, триггеров, сохраняемых процедуры. То есть, тестировщикам нужно выдумывать соответствующие SQL-запросы для тестирования этих сложных системных объектов.
Базовые атрибуты тестирования БД
- Транзакции — определенная последовательность некоторых действий с БД, в которой все манипуляции выполняются успешно, или не выполняtтся ни одно из них. Транзакция представляется атомарной и выполняется как единое целое;
- Схема БД — это структуры организации информации, описание таблицы и колонок (их виды, граничные значения, связи между таблицами);
- Триггер — процедура определенного типа, которая может выполнятся автоматически после некоторых действий по модификации информации. Например, добавление или редактирование информации в определенном столбце. Триггеры используются для валидации целостности информации и реализации сложнейшей бизнес-логики;
- Процедура — набор параметров или операторов, которыми управляются транзакции в структуре баз данных.
Основные виды тестирования БД
Проверку работоспособности БД можно поделить на 3 вида, в зависимости от параметров и структуры БД:
- Структурная проверка БД основывается на тестировании таблиц, столбцов, схем БД, а также на тестировании хранимых процедур и (или) триггеров;
- Функциональные проверки БД — это проверка работоспособности БД с точки зрения рядового пользовтеля. Можно выделить сразу 2 вида функциональных проверок — тестирование белого и черного ящиков;
- Нефункциональные проверки БД — это проверка производительности БД, от нагрузочных тестов, тестирования рисков до стресс-тестирования, а также аналитики минимальных требований системы.
Тестирование БД охватывает проверку работы приложения и таких БД, как таблицы, столбцы, с помощью некоторых системные инструментов.
Создать самые простые запросы для тестирования схем БД можно с помощью инструмента Microsoft SQL Server.
Проверка таблиц и столбцов охватывает такие области тестирования:
- проверка видов данных в БД по значимости полей в ПО;
- тестирование длины поля информации в БД по длине видов данных в ПО;
- тестирование неотображенных таблиц и столбцов в БД, которые есть в ПО;
- проверка на точное соответствие имен таблиц и столбцов БД заявленным бизнес-требованиям;
- тестирование на точное соответствие ключей и индексов в БД заявленным бизнес-требованиям.
Проверка хранимых процедур охватывает тесты хранимых процедур и анализ результатов вывода выполненных команд.
Проверка хранимых процедур выполняется следующим ПО: SP test tool и LINQ.
При тестировании следует выполнять такие последовательные шаги:
- сверить наименование процедуры, имен и видов параметров;
- протестировать сигнал на входе (проводится ли отображение нулевых строк или демонстрируется только пару записей, работает ли функция хранимой процедуры);
- протестировать процесс передачи выходного запроса для сверки хранения необходимой информации;
- завалидировать вывод ошибок при любом некорректном использовании запроса.
Для анализа проверки триггеров тестировщику нужно выполнять таки последовательные действия:
- протестировать верность буквенного обозначения триггера и всех его обновлений;
- запустить триггер с уже обновленной информацией;
- протестировать функции обновления, удаления и вставки триггеров;
- запустить триггер с неверными данными и протестировать каждый найденный баг;
- сделать отказ запущенных транзакций, в случае возникновения сбоя.
Его основная цель: точное определение корректной работоспособности ПО во время нагрузки. Никто не будет в восторге от системы, которая не может обработать не самый большой запрос за время, больше 5-ти минут.
Для проведения подобного вида тестирования нужно:
- выполнить точные замеры сроков выполнения операций при некоторых минимальных, средних и максимальных системных нагрузках;
- проанализировать суммупользователей, которые могут одновременно взаимодействовать с ПО;
- проанализировать процесс производительности при различных системных нагрузках.
Наиболее важными атрибутами измерения уровня производительности считаются:
- Сумма операций за выбранный период времени;
- Сумма транзакций за выбранный период;
- Сумма прочитанных строк внутри таблицы на 1 транзакцию;
- Средняя сумма операций внутри сортировки.
Стресс-тестирование позволяет зафиксировать, насколько тестируемая система работоспособна в условиях возникающего стресса, а также позволяет проанализировать способность системы к быстрому восстановлению, то есть к возвращению к традиционному состоянию после завершения оказания стресса (нагрузки).
Тестирование баз данных через интерфейс
Обычно, такой процесс проверки сводится к оценке его «дружеского настроя» по отношению к пользователю. Тестируется точное соответствие наименований кнопок и запрограммированных им операций, ссылок, редиректов, технически заложенных в графический интерфейс и валидация вводимых значений.
Выполнив следующие действия в правильной последовательности, можно найти баги, применяя тестирование базы данных посредством графического интерфейса:
- Создать запросы через графический интерфейс и выполнить их;
- Найти записи в ячейке, редактировать ее и попробовать сохранить;
- Удалить текущую ячейку с данными;
- Повторить все эти тестовые шаги с невалидными и корректными данными и проанализировать как на это «реагирует» база данных.
Тесты БД требуют пристальной концентрации, определенной подготовки, профессиональных навыков создания SQL-запросов, познаний о структуре БД и практических навыков.
Проверка БД позволяет снизить риски, которые, так или иначе, связаны с целостностью информации, способностью архитектуры реагировать на нагрузку до периода введения ПО в полноценную эксплуатацию.
Оставить комментарий