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

  • 20 августа, 12:17
  • 14288
  • 0

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

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

Важность тестирования БД

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

Инструменты тестирования БД

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

При выборе инструмента для тестирования вашей базы данных учитывайте следующие особенности:

  • Тип БД; 
  • Размер БД;
  • Навыки/опыт тестеров;
  • Методология тестирования;
  • Цель тестирования.

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

Navicat 

Navicat предоставляет обширный набор функций, позволяющих упростить и ускорить администрирование базы данных. Некоторые из его функций включают моделирование данных, синхронизацию данных/структур, завершение кода, генератор отчетов, мастер импорта/экспорта, планировщик пакетных заданий, туннельное соединение HTTP / SSH, резервное копирование и многое другое.

SQL Server Management Studio

SQL Server Management Studio предназначена для настройки, управления и администрирования всех компонентов в Microsoft SQL Server. Помимо прочего, инструмент можно использовать для наблюдения / анализа планов запросов и оптимизации производительности БД. С его помощью вы можете создать новую базу данных, применить изменения к существующей схеме базы данных, добавив или изменив таблицы и индексы, и проанализировать производительность. 

Smartbear TestComplete

Smartbear TestComplete предлагает набор программных объектов, которые вы можете использовать для подключения к базе данных, получения ее таблиц, выполнения запросов и выполнения других действий по тестированию. Инструмент также предоставляет контрольные точки таблицы БД для сравнения сохраненных значений в базе данных с базовой копией, сохраненной в проекте TestComplete. 

RedGate

RedGate SQL Test - это надстройка модульного теста для SQL Server Management Studio. Это позволяет мгновенно писать и выполнять модульные тесты в SQL Server Management Studio, минуя трудоемкий и сложный процесс установки. Инструмент создан для того, чтобы вы могли обнаруживать дефекты на ранних этапах процесса разработки и осуществлять постоянную интеграцию.

tSQLt

tSQLt является структурой модуля тестирования БД для SQL Server. Это позволяет проводить юнит-тесты. Вам не придется переключаться между различными инструментами для создания кода и модульных тестов. Инструмент предлагает следующие преимущества:

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

CRUD

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

Когда приложение выполняется, конечный пользователь в основном использует операции CRUD, которые облегчает DB Tool.

Create -  «Сохранить» новую транзакцию.

Retrieve - «Поиск» или «Просмотр» сохранил транзакцию.

Update -  «Изменить» существующую запись. 

Delete -  «Удалить» любую запись из системы.

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

Зачем тестировать БД?

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

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

Что проверять при тестировании БД

1) Отображение данных.

На этом этапе необходимо убедиться, что сопоставление между различными формами или экранами AUT и что отношения его БД правильные и соответствуют проектным документам. Убедитесь, что соответствующие таблицы и записи обновляются, когда пользователь нажимает «Сохранить», «Поиск», «Редактировать» или «Удалить» для всех операций CRUD.

2) Проверка свойств ACID.

Свойствами ACID являются «Атомность», «Согласованность», «Изоляция» и «Долговечность». Их точное тестирование происходит в процессе тестирования БД. Это требует глубокого, детального и острого тестирования в процессе распространения базы данных.

3) Целостность данных.

Предположим, что разные модули, включая экраны или формы приложения, по-разному используют одни и те же данные и выполняют операции CRUD. Убедитесь, что последнее состояние данных отражается повсюду. Целостность данных подразумевает, что система должна отображать самые последние и обновленные значения или статус общих данных на всех экранах и в формах. 

4) Обеспечить точность выполненных бизнес-правил.

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

Методы тестирования баз данных

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

Он включает в себя тестирование каждого объекта на схеме:

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

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

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

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

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

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

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

Хранимые процедуры

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

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

Триггеры

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

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

 Полевые ограничения

Проверьте значение по умолчанию, уникальное значение и внешний ключ с помощью:

  • Выполнение интерфейсной операции, которая проверяет состояние объекта базы данных;
  • Использование SQL-запроса для проверки результатов.
  • Проверка значения по умолчанию для определенного поля проста и является частью проверки бизнес-правил. Это можно сделать вручную или с помощью таких инструментов, как QTP. При выборе сделать это вручную, вы можете выполнить действие, которое добавит значение поля из внешнего интерфейса и посмотреть, не приведет ли это к ошибке.

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

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

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

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

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

  • Общую производительность системы;
  • Функции;
  • Сроки;
  • Доступ к нагрузке.

Советы по тестированию БД

1. Написание SQL запросов
Для того чтобы проверить БД правильно и точно, в первую очередь тестировщик должен обладать очень хорошими знаниями SQL и DML (Data Manipulation Language). Во-вторых, тестировщик должен иметь хорошее представление о внутренней структуре БД. Если эти две предпосылки выполнены, то сотрудник готов к тестированию БД. Он(а) будет выполнять любые операции CRUD из пользовательского интерфейса приложения, а затем будет проверять результаты выполнения с помощью SQL-запросов.

Это самый лучший и надежный способ тестирования БД особенно для приложений с низким и средним уровнем сложности. Но должны быть выполнены две описанные предпосылки. В противном случае этот способ тестирования БД не подойдет вам.
Если приложение является очень сложным, то для тестировщика будет трудно или даже невозможно написать все необходимые SQL-запросы самостоятельно. Поэтому в случае некоторых сложных запросов, тестировщик может обратиться за помощью к разработчику.
Данный метод не только даёт уверенность, что тестирование выполнено качественно, но также повышает мастерство написания SQL-запросов.

2. Просмотр данных в таблицах
Если тестировщик не знает SQL, то он(а) может проверить результат выполнения операции CRUD с помощью графического интерфейса приложения, путем просмотра таблиц (отношений) базы данных. Этот способ проверки БД требует хороших знаний структуры таблиц и может быть немного утомительным и громоздким, особенно когда БД и таблицы имеют большой объем данных.
Кроме того, это способ проверки БД может быть очень трудным для тестировщиков, если данные, которые будут проверяться, находятся в нескольких таблицах.

3. Помощь разработчика
Это самый простой способ. Тестировщик выполняет любые операции CRUD с графическим интерфейсом и проверяет их результаты путем выполнения соответствующих SQL-запросов, написанных разработчиком. Данный способ не требует ни хороших знаний SQL, ни хорошего знания структуры БД приложения.

Таким образом, этот метод кажется простым и хорошим выбором для тестирования БД. Но его недостатком является хаос. Что делать, если запрос, написанный разработчиком семантически неверный или не выполняет требования пользователя правильно? В этом случае тестирование не дает никаких гарантий о качестве продукта.

Заключение

База данных является основной и наиболее важной частью практически каждого приложения. Ее тестирование требует пристального внимания, отличных навыков написания SQL-запросов, знания структуры БД и соответствующего обучения.


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все