В зависимости от функции и структуры базы данных тестирование БД можно разделить на три категории:
-
Структурное тестирование базы данных — это тестирование таблиц и столбцов, тестирование схемы, тестирование хранимых процедур и представлений, проверка триггеров и т. Д.
-
Функциональное тестирование — включает проверку функциональности базы данных с точки зрения пользователя. Наиболее распространенный тип функционального тестирования — тестирование белого ящика и черного ящика.
-
Нефункциональное тестирование — включает нагрузочное тестирование, тестирование рисков в базе данных, стресс-тестирование, минимальные системные требования и анализирует производительность базы данных.
Структурное тестирование базы данных — это тестирование таблиц и столбцов, тестирование схемы, тестирование хранимых процедур и представлений, проверка триггеров и т. Д.
Функциональное тестирование — включает проверку функциональности базы данных с точки зрения пользователя. Наиболее распространенный тип функционального тестирования — тестирование белого ящика и черного ящика.
Нефункциональное тестирование — включает нагрузочное тестирование, тестирование рисков в базе данных, стресс-тестирование, минимальные системные требования и анализирует производительность базы данных.
Структурное тестирование базы данных
Структурное тестирование базы данных включает проверку тех компонентов базы данных, которые не предоставляются конечным пользователям. Он включает в себя все компоненты репозитория, которые используются для хранения данных и не изменяются конечными пользователями. Обычно это тестирование выполняют администраторы баз данных с хорошим знанием хранимых процедур SQL и других концепций.
Обсуждаются общие компоненты, протестированные в отношении структурных испытаний —
Тестирование схемы / картографии
Он включает проверку объектов интерфейсного приложения с сопоставлением объектов базы данных.
В тестировании схемы —
-
Иногда случается, что объекты приложения конечного пользователя неправильно сопоставлены или не совместимы с объектами базы данных. Следовательно, требуется проверка правильности различных форматов схемы, связанных с базами данных.
-
Требуется найти несопоставленные объекты в базе данных, такие как таблицы, представления, столбцы и т. Д.
Иногда случается, что объекты приложения конечного пользователя неправильно сопоставлены или не совместимы с объектами базы данных. Следовательно, требуется проверка правильности различных форматов схемы, связанных с базами данных.
Требуется найти несопоставленные объекты в базе данных, такие как таблицы, представления, столбцы и т. Д.
На рынке существуют различные инструменты, которые можно использовать для сопоставления объектов в схемах.
Пример. В Microsoft SQL Server тестировщик может писать простые запросы для проверки и проверки схем в базе данных.
Если тестировщик хочет внести изменения в структуру таблицы, он / она должен убедиться, что все хранимые процедуры, имеющие эту таблицу, совместимы с этим изменением.
Тестирование хранимых процедур и представлений
В этом тестировании тестер гарантирует, что ручное выполнение хранимых процедур и представлений приведет к требуемому результату.
Тестер обеспечивает —
-
Если это позволяет требуемые триггеры быть выполнены, как ожидалось.
-
Если команда разработчиков охватила все циклы и условия, передавая входные данные приложениям в процедурах.
-
Если есть какие-либо неиспользуемые хранимые процедуры в базе данных.
-
Операции TRIM применяются правильно, когда данные выбираются из необходимых таблиц в базе данных.
-
Проверка общей интеграции модулей хранимых процедур в соответствии с требованиями тестируемого приложения.
-
Следуют механизмы исключения и обработки ошибок.
Если это позволяет требуемые триггеры быть выполнены, как ожидалось.
Если команда разработчиков охватила все циклы и условия, передавая входные данные приложениям в процедурах.
Если есть какие-либо неиспользуемые хранимые процедуры в базе данных.
Операции TRIM применяются правильно, когда данные выбираются из необходимых таблиц в базе данных.
Проверка общей интеграции модулей хранимых процедур в соответствии с требованиями тестируемого приложения.
Следуют механизмы исключения и обработки ошибок.
Наиболее распространенными инструментами, которые используются для тестирования хранимых процедур, являются LINQ , SP Test tool и т. Д.
Триггерное тестирование
При тестировании триггера тестер должен убедиться в следующем:
-
Соблюдаются ли правила кодирования во время фазы кодирования триггеров.
-
Смотреть выполненные триггеры соответствует требуемым условиям.
-
Правильно ли обновляет триггер данные после их выполнения.
-
Проверка функциональности триггеров обновления / вставки / удаления в тестируемом приложении.
Соблюдаются ли правила кодирования во время фазы кодирования триггеров.
Смотреть выполненные триггеры соответствует требуемым условиям.
Правильно ли обновляет триггер данные после их выполнения.
Проверка функциональности триггеров обновления / вставки / удаления в тестируемом приложении.
Тестирование таблиц и столбцов
Ключевые области, охватываемые этим тестированием:
-
Проверка типов данных в базе данных по значениям полей в клиентском приложении.
-
Проверка длины поля данных в базе данных по длине типов данных в приложении.
-
Проверка наличия в базе данных не отображенных таблиц или столбцов из объектов поля приложения.
-
Соглашения об именах таблиц и столбцов базы данных проверяются, если они соответствуют бизнес-требованиям или нет.
-
Проверка ключей и индексов в базе данных, т. Е. Первичных и внешних ключей в таблицах, определяется в соответствии с требованиями.
-
Проверьте, совпадают ли первичные ключи и соответствующие им внешние ключи в двух таблицах.
-
Проверка уникальных и ненулевых характеристик ключей сохраняется.
-
Длина и тип данных ключей и индексов поддерживаются согласно требованию.
Проверка типов данных в базе данных по значениям полей в клиентском приложении.
Проверка длины поля данных в базе данных по длине типов данных в приложении.
Проверка наличия в базе данных не отображенных таблиц или столбцов из объектов поля приложения.
Соглашения об именах таблиц и столбцов базы данных проверяются, если они соответствуют бизнес-требованиям или нет.
Проверка ключей и индексов в базе данных, т. Е. Первичных и внешних ключей в таблицах, определяется в соответствии с требованиями.
Проверьте, совпадают ли первичные ключи и соответствующие им внешние ключи в двух таблицах.
Проверка уникальных и ненулевых характеристик ключей сохраняется.
Длина и тип данных ключей и индексов поддерживаются согласно требованию.
Проверка сервера базы данных
Проверка сервера базы данных включает проверку —
-
Если сервер базы данных может обрабатывать ожидаемое количество транзакций согласно бизнес-требованиям.
-
Если данные конфигурации серверов баз данных соответствуют бизнес-требованиям.
-
Если авторизация пользователя поддерживается в соответствии с требованием.
Если сервер базы данных может обрабатывать ожидаемое количество транзакций согласно бизнес-требованиям.
Если данные конфигурации серверов баз данных соответствуют бизнес-требованиям.
Если авторизация пользователя поддерживается в соответствии с требованием.
Функциональное тестирование
Функциональное тестирование выполняется с учетом точки зрения конечного пользователя; соответствуют ли требуемые транзакции и операции, выполняемые конечными пользователями, бизнес-спецификациям.
Тестирование черного ящика
Black Box Testing включает проверку интеграции базы данных для проверки функциональности. Контрольные примеры просты и используются для проверки входящих данных и исходящих данных из функции.
Для проверки функциональности базы данных используются различные методы, такие как метод построения причинно-следственных связей, распределение по эквивалентности и анализ граничных значений.
Его преимущества заключаются в следующем —
- Это довольно просто и выполняется на ранних стадиях разработки.
- Стоимость разработки тестовых случаев меньше по сравнению с тестированием белого ящика.
Его недостатки заключаются в следующем —
- Несколько ошибок не могут быть обнаружены
- Неизвестно, сколько программы нужно протестировать.
Тестирование белого ящика
White Box Testing имеет дело с внутренней структурой базы данных, а детали спецификации скрыты от пользователей. Он включает в себя тестирование триггеров базы данных и логических представлений, которые будут поддерживать рефакторинг базы данных.
Он выполняет модульное тестирование функций базы данных, триггеров, представлений, запросов SQL и т. Д. Этот тип тестирования проверяет таблицы базы данных, модели данных, схему базы данных и т. Д. Он проверяет правила ссылочной целостности. Он выбирает значения таблицы по умолчанию для проверки согласованности базы данных.
Наиболее распространенными методами, используемыми для тестирования белого ящика, являются покрытие условий, покрытие решений, покрытие выписок и т. Д.
Ошибки тестирования могут быть обнаружены при тестировании белого ящика, поэтому внутренние ошибки в базе данных могут быть устранены. Ограничением тестирования белого ящика является то, что операторы SQL не рассматриваются.
Нефункциональное тестирование
Нефункциональное тестирование включает в себя выполнение нагрузочного тестирования, стресс-тестирование, проверку минимальных системных требований на соответствие спецификациям бизнеса, поиск рисков и оптимизацию производительности базы данных.
Нагрузочное тестирование
Основная цель нагрузочного тестирования — проверить, влияет ли большинство выполняющихся транзакций на производительность базы данных.
В нагрузочном тестировании тестер проверяет —
- Время ответа для выполнения транзакций для нескольких удаленных пользователей.
- Время, затраченное базой данных на выборку определенных записей.
Примеры нагрузочного тестирования в разных типах тестирования —
- Многократный запуск наиболее часто используемой транзакции, чтобы увидеть производительность системы базы данных.
- Загрузка серии больших файлов из Интернета.
- Запуск нескольких приложений на компьютере или сервере одновременно.
Стресс-тестирование
Стресс-тестирование проводится для определения точки останова системы. В этом тестировании приложение загружается таким образом, что система в какой-то момент перестает работать. Эта точка называется точкой останова системы баз данных.
Определение состояния транзакций базы данных требует значительных усилий. Правильное планирование требуется, чтобы избежать каких-либо затрат и времени.
Наиболее часто используемыми инструментами для стресс-тестирования являются LoadRunner и WinRunner .
Давайте возьмем пример стресс-тестирования. Приложение CRM может принимать максимальную пользовательскую нагрузку в 50000 одновременно работающих пользователей. Предположим, вы увеличиваете нагрузку до 51000 и делаете некоторые транзакции, такие как обновление записей или добавление записи. Как только вы сделаете транзакцию, приложение может синхронизироваться с системой базы данных. Поэтому следующий тест должен выполняться с пользовательской нагрузкой 52000. Иногда стресс-тестирование также называют усталостным тестированием .