Учебники

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

В этой главе описываются наиболее распространенные методы, используемые для тестирования баз данных.

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

Как упоминалось ранее, это включает в себя тестирование каждого объекта в схеме.

Проверка баз данных и устройств

  • Проверка имени базы данных
  • Проверка данных устройства, журнала устройства и устройства дампа
  • Проверка, достаточно ли места выделено для каждой базы данных
  • Проверка параметров базы данных

Проверка таблиц, столбцов, правил типов столбцов

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

  • Наименование всех таблиц в базе данных

  • Имена столбцов для каждой таблицы

  • Типы столбцов для каждой таблицы

  • Значение NULL проверено или нет

  • Привязан ли по умолчанию к правильным столбцам таблицы

  • Определения правил для исправления имен таблиц и прав доступа

Наименование всех таблиц в базе данных

Имена столбцов для каждой таблицы

Типы столбцов для каждой таблицы

Значение NULL проверено или нет

Привязан ли по умолчанию к правильным столбцам таблицы

Определения правил для исправления имен таблиц и прав доступа

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

Проверьте Ключ и индексы в каждой таблице —

  • Первичный ключ для каждой таблицы

  • Внешние ключи для каждой таблицы

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

Первичный ключ для каждой таблицы

Внешние ключи для каждой таблицы

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

Тесты хранимых процедур

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

  • Имя хранимой процедуры

  • Имена параметров, типы параметров и т. Д.

  • Вывод — содержит ли вывод много записей. Выполняются нулевые строки или извлекается только несколько записей.

  • Какова функция хранимой процедуры и что не должна делать хранимая процедура?

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

  • Параметры хранимой процедуры — вызов хранимой процедуры с граничными данными и с действительными данными. Сделайте каждый параметр недействительным один раз и запустите процедуру.

  • Возвращаемые значения — проверьте значения, возвращаемые хранимой процедурой. В случае сбоя ненулевое значение должно быть возвращено.

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

Имя хранимой процедуры

Имена параметров, типы параметров и т. Д.

Вывод — содержит ли вывод много записей. Выполняются нулевые строки или извлекается только несколько записей.

Какова функция хранимой процедуры и что не должна делать хранимая процедура?

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

Параметры хранимой процедуры — вызов хранимой процедуры с граничными данными и с действительными данными. Сделайте каждый параметр недействительным один раз и запустите процедуру.

Возвращаемые значения — проверьте значения, возвращаемые хранимой процедурой. В случае сбоя ненулевое значение должно быть возвращено.

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

Триггерные тесты

В тесте триггера тестер должен выполнить следующие задачи:

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

Сценарии установки сервера

Два типа испытаний должны быть выполнены —

  • Настройка базы данных с нуля, и
  • Чтобы настроить существующую базу данных.

Интеграционные тесты SQL Server

Интеграционные тесты должны выполняться после завершения тестирования компонентов.

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

  • Любые конфликты между схемой и триггерами.

  • Любые конфликты между хранимыми процедурами и схемой.

  • Любые конфликты между хранимыми процедурами и триггерами.

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

Любые конфликты между схемой и триггерами.

Любые конфликты между хранимыми процедурами и схемой.

Любые конфликты между хранимыми процедурами и триггерами.

Метод функционального тестирования

Функциональное тестирование может быть выполнено путем разделения базы данных на модули согласно функциональности. Функциональные возможности бывают следующих двух типов:

  • Тип 1 — В тестировании Типа 1 выясните особенности проекта. Для каждой основной функции найдите схему, триггеры и хранимые процедуры, ответственные за реализацию этой функции, и поместите их в функциональную группу. Затем протестируйте каждую группу вместе.

  • Тип 2 — В тестировании типа 2 граница функциональных групп в бэкэнде не очевидна. Вы можете проверить поток данных и посмотреть, где вы можете проверить данные. Начните с внешнего интерфейса.

Тип 1 — В тестировании Типа 1 выясните особенности проекта. Для каждой основной функции найдите схему, триггеры и хранимые процедуры, ответственные за реализацию этой функции, и поместите их в функциональную группу. Затем протестируйте каждую группу вместе.

Тип 2 — В тестировании типа 2 граница функциональных групп в бэкэнде не очевидна. Вы можете проверить поток данных и посмотреть, где вы можете проверить данные. Начните с внешнего интерфейса.

Происходит следующий процесс —

  • Когда служба запрашивает или сохраняет данные, некоторые хранимые процедуры будут вызваны.

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

  • Эти хранимые процедуры будут местом для начала тестирования, а эти таблицы — местом для проверки результатов теста.

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

Процедуры обновят некоторые таблицы.

Эти хранимые процедуры будут местом для начала тестирования, а эти таблицы — местом для проверки результатов теста.

Стресс-тестирование

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

  • Напишите тестовые сценарии, чтобы попробовать эти функции, и каждая функция должна проверяться хотя бы один раз за полный цикл.

  • Выполните тестовые сценарии снова и снова в течение определенного периода времени.

  • Проверка файлов журнала для проверки любых взаимоблокировок, сбоя в памяти, повреждения данных и т. Д.

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

Выполните тестовые сценарии снова и снова в течение определенного периода времени.

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

Тестирование производительности

Если в вашей базе данных нет проблем с данными или ошибок, можно проверить производительность системы. Низкая производительность системы может быть обнаружена в тестах производительности путем проверки параметров, приведенных ниже —

  • Производительность системного уровня
  • Определите наиболее часто используемые функции / функции
  • Сроки — максимальное время, минимальное время и среднее время выполнения функций
  • Объем доступа

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

Бэк-энд-баг также иногда можно найти, выполнив тестирование на стороне. Вы можете выполнить простые шаги, приведенные ниже, чтобы обнаружить ошибки с помощью внешнего тестирования.

Напишите запросы из внешнего интерфейса и выполните поиск.

Выберите существующую запись, измените значения в некоторых полях и сохраните запись. (Он включает в себя оператор UPDATE или обновление хранимых процедур и триггеры обновления.)

Вставьте новый пункт меню в интерфейсное окно. Заполните информацию и сохраните запись. (Это включает операторы INSERT или хранимые процедуры вставки и триггеры удаления.)

Выберите существующую запись, нажмите кнопку УДАЛИТЬ или УДАЛИТЬ и подтвердите удаление. (Это включает в себя оператор DELETE или хранимые процедуры удаления и триггеры удаления.)

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