Процесс проверки целостности данных и согласованности базы данных называется тестированием базы данных. В конечном итоге он направлен на создание сложных запросов для проверки способности базы данных реагировать на нагрузку/стресс, подвергая тестированию схемы, таблицы, триггеры, хранимые процедуры и т.д.
Важность тестирования БД
Важность тестирования БД обусловлена тем, что база данных является неотъемлемой частью программного приложения. Она работает на бэкэнде независимо от того, является ли он настольным или веб-сервером, клиент-серверным или одноранговым, корпоративным или индивидуальным бизнесом. База данных всегда в действии.
Инструменты тестирования БД
Чтобы инструменты тестирования баз данных были полезными, они должны охватывать все уровни тестирования баз данных, включая бизнес, доступ к данным, пользовательский интерфейс и саму базу данных. Эти инструменты должны быть надежными, удобными для пользователя и обеспечивать отличную производительность.
При выборе инструмента для тестирования вашей базы данных учитывайте следующие особенности:
- Тип БД;
- Размер БД;
- Навыки/опыт тестеров;
- Методология тестирования;
- Цель тестирования.
Тестирование БД может быть сложным и дорогостоящим процессом. Выберите инструмент, который лучше всего соответствует вашим конкретным интересам. Вот некоторые из них.
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 комментариев
Добавить комментарий