Услуга тестирования базы данных, позволит минимизировать риски при внедрении системы в промышленную эксплуатацию. Вы заранее сможете проверить корректность и безопасность функционирования базы данных.
В процессе тестирования БД проверяется работа базы данных приложения на предмет соответствия функциональным и нефункциональным требованиям. Приложения, которые включают в свою архитектуру базу данных, требуют проведение процедуры тестирования БД, например: корпоративные информационные системы, мобильные и веб приложения.
Содержание
Тестирование производительности БД
Производительность БД является решающим фактором эффективности управленческих и коммерческих приложений. Если поиск или запись данных выполняется медленно – способность к нормальной работе приложения падает. Существует единственный путь выяснить причину плохой производительности – выполнить количественные измерения и определить, что является причиной проблемы производительности.
Проблемы выявления узких мест производительности баз данных напрямую связаны с метриками, методами измерений производительности и технологией их выполнения. Для крупных корпораций и БД больших объемов проблема определения производительности баз данных имеет еще один очень важный аспект: определения ИТ инфраструктуры для длительной промышленной эксплуатации приложений. Это в итоге приводит к более точному определению первоначальных инвестиций в оборудование и базовое ПО. Так как высокая производительность БД сильно зависит от платформы и оборудования, а они закупаются и эксплуатируются на долгосрочную перспективу.
Наиболее важными метриками измерения производительности БД являются:
- число транзакций за период времени (различного типа транзакции);
- число операций в/в (прочитанных строк) на транзакцию и время ее выполнения;
- число прочитанных строк для каждой таблицы на транзакцию;
- среднее число операций в/в на транзакцию по диапазонам;
- операторы SQL высокой рабочей стоимостью времени использования CPU (пользователя, системного)
- время начала и конца выполнения оператора
- время выполнения операций сортировки (числа сортировок, числа переполнений сортировок, времени выполнения сортировок), наивысшего использования времени elapsed и наименьшей эффективности использования индексов.
Метрики использования памяти для страниц табличных пространств и буферных пулов (для чтения данных, для чтения индексов), для выполнения сортировок, для работы утилит, для каталогов и пакетов кеш – памяти наряду с метриками измерения производительности, так же являются важными для настойки эффективного доступа к данным.
Что еще проверять при тестировании БД?
Data mapping
Убедитесь, что связи в БД соответствуют проектной документацией. Для всех операций CRUD проверьте, что соответствующие таблицы и записи обновляются, когда пользователь нажимает «Сохранить», «Обновить», «Поиск» или «Удалить» из графического интерфейса приложения.
ACID свойства транзакций
К ACID свойствам транзакций относятся атомарность, последовательность, изоляция и прочность. В процессе тестирования БД следует проверить эти четыри свойства. Эта область требует более тщательного тестирования, если база данных распределена.
Целостность данных
Учтите, что разные модули приложения (например, экраны и формы) по-разному используют те же данные и выполняют CRUD операции. Поэтому нужно убедиться, что последнее состояние данных отражается везде одинаково. Система должна показывать обновленные значения на всех формах и экранах. Это называется целостностью данных.
Точность реализации бизнес логики
Сегодня базы данных предназначены не только для хранения записей. Они превратились в очень мощные инструменты, которые предоставляют разработчикам широкие возможности для реализации бизнес-логики на уровне БД. Примерами мощных функций баз данных являются «ссылочная целостность», реляционные ограничения, триггеры и хранимые процедуры. Таким образом, используя эти и многие другие возможности, предлагаемые БД, разработчики реализуют бизнес-логику на уровне БД. Тестировщик должен убедиться, что реализованная бизнес-логика является правильной и работает точно.
Как тестировать базу данных?
Написание SQL запросов
Для того чтобы правильно организовать процесс тестирования БД, тестировщики должны обладать хорошими знаниями SQL и DML (Data Manipulation Language) и иметь ясное представление о внутренней структуре БД. Это самый лучший и надежный способ тестирования БД особенно для приложений с низким и средним уровнем сложности. Но должны быть выполнены две описанные предпосылки. Если приложение является очень сложным, то для тестировщика будет трудно или даже невозможно написать все необходимые SQL-запросы самостоятельно. Поэтому в случае некоторых сложных запросов, тестировщик может обратиться за помощью к разработчику. Данный метод не только даёт уверенность, что тестирование выполнено качественно, но также повышает мастерство написания SQL-запросов.
Просмотр данных в таблицах
Если тестировщик не знает SQL, то он может проверить результат выполнения операции CRUD с помощью графического интерфейса приложения, путем просмотра таблиц (отношений) базы данных. Этот способ проверки БД требует хороших знаний структуры таблиц и может быть немного утомительным и громоздким, особенно когда БД и таблицы имеют большой объем данных. Этот способ проверки БД может быть трудным для тестировщиков, если проверочные данные, находятся в нескольких таблицах.
Помощь разработчика
Тестировщик выполняет любые операции CRUD с графическим интерфейсом и проверяет их результаты путем выполнения соответствующих SQL-запросов, написанных разработчиком. Данный способ не требует ни хороших знаний SQL, ни хорошего знания структуры БД приложения.Метод кажется простым и хорошим выбором для тестирования БД. Но его недостатком является хаос. Что делать, если запрос, написанный разработчиком семантически неверный или не выполняет требования пользователя правильно? В этом случае тестирование не дает никаких гарантий о качестве продукта.
Пример методики тестирования целостности данных БД
Базы данных и процессы баз данных следует тестировать как независимую подсистему. При этом должны быть протестированы все подсистемы без целевого пользовательского интерфейса как интерфейса к данным. Следует выполнить дополнительное исследование в системе управления базами данных (DBMS) для определения инструментов и методик для поддержки тестирования, определенного в следующей таблице.
Цели методики | Тестирование методов и процессов доступа к базам данных независимо от UI, так чтобы можно было наблюдать и регистрировать неправильно работающий целевой алгоритм или повреждения данных. |
Методика | Вызов каждого метода или процесса доступа к базе данных, заполняя каждый из них верными и неверными данными или запросами данных.
Проверка базы данных, чтобы убедиться в том, что заполнение данными выполнено правильно и все события базы данных происходят соответствующим образом, либо проверка возвращаемых данных, чтобы убедиться в том, что при необходимости извлекаются правильные данные. |
Оракулы (эвристический механизм, который помогает определить проблему) | Наметьте одну или несколько стратегий, которые можно использовать в методике для правильного наблюдения результатов теста. Оракул сочетает элементы и метода, посредством которого можно выполнить наблюдение, и характеристики определенного результата, которые указывают на возможный успех или неудачу. В идеале, оракулы будут выполнять самопроверку, допуская начальную оценку успеха или неудачи автоматизированными тестами. Однако следует учитывать риски, связанные с автоматическим определением результатов. |
Необходимые инструменты | Для данной методики требуются следующие инструменты:
|
Критерии успешности | Эта методика поддерживает тестирование всех основных методов и процессов доступа к базе данных. |
Специальная информация | Для тестирования может потребоваться среда разработки DBMS или драйверы для ввода или изменения данных непосредственно в базе данных.
Процессы следует вызывать вручную. Небольшие базы данных или базы данных минимального размера (с ограниченным числом записей) следует использовать для расширения области видимости всех поврежденных событий. |