В этой главе описываются наиболее распространенные методы, используемые для тестирования баз данных.
Тестирование схемы базы данных
Как упоминалось ранее, это включает в себя тестирование каждого объекта в схеме.
Проверка баз данных и устройств
- Проверка имени базы данных
- Проверка данных устройства, журнала устройства и устройства дампа
- Проверка, достаточно ли места выделено для каждой базы данных
- Проверка параметров базы данных
Проверка таблиц, столбцов, правил типов столбцов
Проверьте пункты, приведенные ниже, чтобы узнать различия между фактическими и примененными настройками.
-
Наименование всех таблиц в базе данных
-
Имена столбцов для каждой таблицы
-
Типы столбцов для каждой таблицы
-
Значение NULL проверено или нет
-
Привязан ли по умолчанию к правильным столбцам таблицы
-
Определения правил для исправления имен таблиц и прав доступа
Наименование всех таблиц в базе данных
Имена столбцов для каждой таблицы
Типы столбцов для каждой таблицы
Значение NULL проверено или нет
Привязан ли по умолчанию к правильным столбцам таблицы
Определения правил для исправления имен таблиц и прав доступа
Ключ и Индексы
Проверьте Ключ и индексы в каждой таблице —
-
Первичный ключ для каждой таблицы
-
Внешние ключи для каждой таблицы
-
Типы данных между столбцом внешнего ключа и столбцом в другой таблице. Индексы, кластеризованные или некластеризованные, уникальные или неуникальные
Первичный ключ для каждой таблицы
Внешние ключи для каждой таблицы
Типы данных между столбцом внешнего ключа и столбцом в другой таблице. Индексы, кластеризованные или некластеризованные, уникальные или неуникальные
Тесты хранимых процедур
Он включает в себя проверку того, определена ли хранимая процедура и сравниваются ли выходные результаты. В тесте с хранимой процедурой проверяются следующие пункты:
-
Имя хранимой процедуры
-
Имена параметров, типы параметров и т. Д.
-
Вывод — содержит ли вывод много записей. Выполняются нулевые строки или извлекается только несколько записей.
-
Какова функция хранимой процедуры и что не должна делать хранимая процедура?
-
Передача примеров запросов ввода, чтобы проверить, извлекает ли хранимая процедура правильные данные.
-
Параметры хранимой процедуры — вызов хранимой процедуры с граничными данными и с действительными данными. Сделайте каждый параметр недействительным один раз и запустите процедуру.
-
Возвращаемые значения — проверьте значения, возвращаемые хранимой процедурой. В случае сбоя ненулевое значение должно быть возвращено.
-
Проверка сообщений об ошибках — внесите изменения таким образом, чтобы хранимая процедура завершилась неудачно, и сгенерируйте каждое сообщение об ошибке хотя бы один раз. Проверьте любые сценарии исключений, когда нет заранее определенного сообщения об ошибке.
Имя хранимой процедуры
Имена параметров, типы параметров и т. Д.
Вывод — содержит ли вывод много записей. Выполняются нулевые строки или извлекается только несколько записей.
Какова функция хранимой процедуры и что не должна делать хранимая процедура?
Передача примеров запросов ввода, чтобы проверить, извлекает ли хранимая процедура правильные данные.
Параметры хранимой процедуры — вызов хранимой процедуры с граничными данными и с действительными данными. Сделайте каждый параметр недействительным один раз и запустите процедуру.
Возвращаемые значения — проверьте значения, возвращаемые хранимой процедурой. В случае сбоя ненулевое значение должно быть возвращено.
Проверка сообщений об ошибках — внесите изменения таким образом, чтобы хранимая процедура завершилась неудачно, и сгенерируйте каждое сообщение об ошибке хотя бы один раз. Проверьте любые сценарии исключений, когда нет заранее определенного сообщения об ошибке.
Триггерные тесты
В тесте триггера тестер должен выполнить следующие задачи:
- Убедитесь, что имя триггера правильное.
- Проверьте триггер, если он создан для определенного столбца таблицы.
- Проверка обновления триггера.
- Обновите запись с действительными данными.
- Обновите запись с неверными данными и закройте каждую ошибку триггера.
- Обновите запись, если на нее все еще ссылается строка в другой таблице.
- Обеспечьте откат транзакций при возникновении сбоя.
- Узнайте, в каких случаях триггер не должен откатывать транзакции.
Сценарии установки сервера
Два типа испытаний должны быть выполнены —
- Настройка базы данных с нуля, и
- Чтобы настроить существующую базу данных.
Интеграционные тесты SQL Server
Интеграционные тесты должны выполняться после завершения тестирования компонентов.
-
Хранимые процедуры должны вызываться интенсивно для выбора, вставки, обновления и удаления записей в разных таблицах, чтобы найти любые конфликты и несовместимость.
-
Любые конфликты между схемой и триггерами.
-
Любые конфликты между хранимыми процедурами и схемой.
-
Любые конфликты между хранимыми процедурами и триггерами.
Хранимые процедуры должны вызываться интенсивно для выбора, вставки, обновления и удаления записей в разных таблицах, чтобы найти любые конфликты и несовместимость.
Любые конфликты между схемой и триггерами.
Любые конфликты между хранимыми процедурами и схемой.
Любые конфликты между хранимыми процедурами и триггерами.
Метод функционального тестирования
Функциональное тестирование может быть выполнено путем разделения базы данных на модули согласно функциональности. Функциональные возможности бывают следующих двух типов:
-
Тип 1 — В тестировании Типа 1 выясните особенности проекта. Для каждой основной функции найдите схему, триггеры и хранимые процедуры, ответственные за реализацию этой функции, и поместите их в функциональную группу. Затем протестируйте каждую группу вместе.
-
Тип 2 — В тестировании типа 2 граница функциональных групп в бэкэнде не очевидна. Вы можете проверить поток данных и посмотреть, где вы можете проверить данные. Начните с внешнего интерфейса.
Тип 1 — В тестировании Типа 1 выясните особенности проекта. Для каждой основной функции найдите схему, триггеры и хранимые процедуры, ответственные за реализацию этой функции, и поместите их в функциональную группу. Затем протестируйте каждую группу вместе.
Тип 2 — В тестировании типа 2 граница функциональных групп в бэкэнде не очевидна. Вы можете проверить поток данных и посмотреть, где вы можете проверить данные. Начните с внешнего интерфейса.
Происходит следующий процесс —
-
Когда служба запрашивает или сохраняет данные, некоторые хранимые процедуры будут вызваны.
-
Процедуры обновят некоторые таблицы.
-
Эти хранимые процедуры будут местом для начала тестирования, а эти таблицы — местом для проверки результатов теста.
Когда служба запрашивает или сохраняет данные, некоторые хранимые процедуры будут вызваны.
Процедуры обновят некоторые таблицы.
Эти хранимые процедуры будут местом для начала тестирования, а эти таблицы — местом для проверки результатов теста.
Стресс-тестирование
Стресс-тестирование включает получение списка основных функций базы данных и соответствующих хранимых процедур. Выполните шаги, указанные ниже для стресс-тестирования —
-
Напишите тестовые сценарии, чтобы попробовать эти функции, и каждая функция должна проверяться хотя бы один раз за полный цикл.
-
Выполните тестовые сценарии снова и снова в течение определенного периода времени.
-
Проверка файлов журнала для проверки любых взаимоблокировок, сбоя в памяти, повреждения данных и т. Д.
Напишите тестовые сценарии, чтобы попробовать эти функции, и каждая функция должна проверяться хотя бы один раз за полный цикл.
Выполните тестовые сценарии снова и снова в течение определенного периода времени.
Проверка файлов журнала для проверки любых взаимоблокировок, сбоя в памяти, повреждения данных и т. Д.
Тестирование производительности
Если в вашей базе данных нет проблем с данными или ошибок, можно проверить производительность системы. Низкая производительность системы может быть обнаружена в тестах производительности путем проверки параметров, приведенных ниже —
- Производительность системного уровня
- Определите наиболее часто используемые функции / функции
- Сроки — максимальное время, минимальное время и среднее время выполнения функций
- Объем доступа
Тестирование базы данных через интерфейс
Бэк-энд-баг также иногда можно найти, выполнив тестирование на стороне. Вы можете выполнить простые шаги, приведенные ниже, чтобы обнаружить ошибки с помощью внешнего тестирования.
Напишите запросы из внешнего интерфейса и выполните поиск.
Выберите существующую запись, измените значения в некоторых полях и сохраните запись. (Он включает в себя оператор UPDATE или обновление хранимых процедур и триггеры обновления.)
Вставьте новый пункт меню в интерфейсное окно. Заполните информацию и сохраните запись. (Это включает операторы INSERT или хранимые процедуры вставки и триггеры удаления.)
Выберите существующую запись, нажмите кнопку УДАЛИТЬ или УДАЛИТЬ и подтвердите удаление. (Это включает в себя оператор DELETE или хранимые процедуры удаления и триггеры удаления.)
Повторите эти контрольные примеры с неверными данными и посмотрите, как база данных отвечает.