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

В зависимости от функции и структуры базы данных тестирование БД можно разделить на три категории:

  • Structural Database Testing - Он занимается тестированием таблиц и столбцов, тестированием схемы, тестированием хранимых процедур и представлений, проверкой триггеров и т. Д.

  • Functional Testing- Это проверка функциональности базы данных с точки зрения пользователя. Наиболее распространенным типом функционального тестирования является тестирование «белого ящика» и «черного ящика».

  • Nonfunctional Testing - Он включает в себя нагрузочное тестирование, тестирование рисков в базе данных, стресс-тестирование, минимальные системные требования и касается производительности базы данных.

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

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

Обсуждаются общие компоненты, проверенные в отношении структурного тестирования -

Тестирование схемы / сопоставления

Он включает проверку объектов интерфейсного приложения с сопоставлением объектов базы данных.

При тестировании схемы -

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

  • Требуется найти несопоставленные объекты в базе данных, такие как таблицы, представления, столбцы и т. Д.

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

Example - В Microsoft SQL Server тестировщик может писать простые запросы для проверки и проверки схем в базе данных.

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

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

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

Тестер гарантирует -

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

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

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

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

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

  • Соблюдаются механизмы обработки исключений и ошибок.

Наиболее распространенные инструменты, которые используются для выполнения тестирования хранимых процедур: LINQ, SP Test tool, и т.д.

Триггерное тестирование

При тестировании триггера тестировщик должен убедиться в следующем:

  • Соблюдаются ли соглашения о кодировании на этапе кодирования триггеров.

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

  • Правильно ли триггер обновляет данные после их выполнения.

  • Проверка функциональности триггеров обновления / вставки / удаления тестируемого приложения.

Таблицы и тестирование столбцов

Ключевые области, охваченные этим тестированием:

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

  • Проверка длины поля данных в базе данных по длине типов данных в приложении.

  • Проверка наличия в базе данных несопоставленных таблиц или столбцов из объектов полей приложения.

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

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

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

  • Проверьте, сохраняются ли уникальные и НЕ NULL характеристики ключей.

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

Проверка сервера базы данных

Проверка сервера базы данных включает проверку -

  • Если сервер базы данных может обработать ожидаемое количество транзакций в соответствии с бизнес-требованиями.

  • Если детали конфигурации серверов баз данных соответствуют бизнес-требованиям.

  • Если авторизация пользователя поддерживается согласно требованиям.

Функциональное тестирование

Функциональное тестирование проводится с учетом точки зрения конечного пользователя; соответствуют ли требуемые транзакции и операции, выполняемые конечными пользователями, бизнес-спецификациям.

Тестирование черного ящика

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

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

это advantages следующие -

  • Это довольно просто и выполняется на ранних этапах разработки.
  • Стоимость разработки тест-кейсов меньше по сравнению с тестированием методом белого ящика.

Его недостатки следующие:

  • Невозможно обнаружить несколько ошибок
  • Неизвестно, сколько программ нужно протестировать.

Тестирование белого ящика

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

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

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

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

Нефункциональное тестирование

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

Нагрузочное тестирование

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

При нагрузочном тестировании тестер проверяет -

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

Examples of load testing in different testing types -

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

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

Стресс-тестирование выполняется для определения точки останова системы. В этом тестировании приложение загружается таким образом, что в какой-то момент система дает сбой. Эта точка называетсяbreakpoint системы баз данных.

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

Наиболее часто используемые инструменты стресс-тестирования: LoadRunner и WinRunner.

Давайте возьмем exampleстресс-тестирования. Приложение CRM может принять максимальную пользовательскую нагрузку в 50000 одновременных пользователей. Предположим, вы увеличиваете нагрузку до 51000 и выполняете некоторые транзакции, такие как обновление записей или добавление записи. Как только вы выполните транзакцию, приложение может синхронизироваться с системой баз данных. Итак, следующий тест будет выполняться с пользовательской нагрузкой 52000. Иногда стресс-тестирование также называютFatigue Testing.