Тестирование базы данных - Википедия - Database testing

Тестирование базы данных обычно состоит из многоуровневого процесса, включающего пользовательский интерфейс (UI) слой, бизнес-уровень, уровень доступа к данным и сама база данных. Слой пользовательского интерфейса занимается дизайном интерфейса базы данных, а бизнес-уровень включает базы данных, поддерживающие бизнес-стратегии.

Цели

Базы данных, сбор взаимосвязанных файлов на сервере, хранящий информацию, может не иметь дело с одним и тем же тип данных, т.е. базы данных могут быть неоднородный. В результате многие виды внедрения и интеграции ошибки может возникать в больших системах баз данных, что отрицательно сказывается на производительности, надежности, согласованности и безопасности системы. Таким образом, важно тест чтобы получить систему базы данных, которая удовлетворяет КИСЛОТА свойства (атомарность, согласованность, изоляция и долговечность) система управления базами данных.[1]

Одним из наиболее важных уровней является уровень доступа к данным, который имеет дело с базами данных непосредственно во время процесса связи. Тестирование базы данных в основном происходит на этом уровне и включает стратегии тестирования, такие как контроль качества и обеспечение качества баз данных продуктов.[2] Тестирование на этих разных уровнях часто используется для поддержания согласованности систем баз данных, что чаще всего можно увидеть в следующих примерах:

  • Данные имеют решающее значение с точки зрения бизнеса. Такие компании как Google или же Symantec, которые связаны с хранилище данных, необходимо иметь надежную и согласованную систему баз данных. Если операции с базой данных, такие как вставить, удалить и обновить выполняются без предварительной проверки базы данных на непротиворечивость, компания рискует вывести из строя всю систему.
  • У некоторых компаний разные типы баз данных, а также разные цели и задачи. Чтобы достичь уровня функциональности, соответствующего указанным целям, им необходимо протестировать свою систему баз данных.
  • Текущий подход к тестированию может быть недостаточным, если разработчики формально тестируют базы данных. Однако этот подход недостаточно эффективен, поскольку разработчики баз данных могут замедлить процесс тестирования из-за недостатков связи. Представляется целесообразным создать отдельную группу тестирования базы данных.
  • Тестирование баз данных в основном связано с поиском ошибок в базах данных с целью их устранения. Это улучшит качество базы данных или веб-системы.
  • Тестирование базы данных следует отличать от стратегий решения других проблем, таких как сбои базы данных, неработающие вставки, удаления или обновления. Здесь, рефакторинг базы данных может применяться эволюционный метод.

Типы испытаний и процессы

Тестирование черного ящика и белого ящика в тесте базы данных

На рисунке показаны области тестирования, задействованные при различных методах тестирования базы данных, например: черный ящик и тестирование методом белого ящика.

Черный ящик

Тестирование черного ящика включает в себя тестирование интерфейсов и интеграцию базы данных, которая включает:

  1. Отображение данных (в том числе метаданные )
  2. Проверка входящих данных
  3. Проверка исходящих данных из функций запроса
  4. Различные методы, такие как метод построения графиков причинно-следственных связей, разделение по эквивалентности и граничный анализ.

С помощью этих методов можно тщательно протестировать функциональность базы данных.

Плюсы и минусы тестирования черного ящика включают в себя: Создание тестовых случаев при тестировании черного ящика довольно просто. Их создание полностью не зависит от разработки программного обеспечения и может быть выполнено на ранней стадии разработки. Как следствие, программист лучше знает, как проектировать приложение базы данных, и тратит меньше времени на отладку. Стоимость разработки тестовых примеров черного ящика ниже, чем разработка тестовых примеров белого ящика. Главный недостаток тестирования черного ящика заключается в том, что неизвестно, какая часть программы тестируется. Также не могут быть обнаружены некоторые ошибки.[3]

Белая коробка

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

  1. Он включает в себя тестирование триггеров базы данных и логических представлений, которые будут поддерживать рефакторинг базы данных.
  2. Он выполняет модульное тестирование функций базы данных, триггеров, представлений, SQL запросы и т. д.
  3. Он проверяет таблицы базы данных, модели данных, схему базы данных и т. Д.
  4. Проверяет правила Ссылочная целостность.
  5. Он выбирает значения таблицы по умолчанию для проверки согласованности базы данных.
  6. При тестировании методом белого ящика используются следующие методы: покрытие условий, покрытие решений, покрытие операторов, цикломатическая сложность.

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

Подход WHODATE

Подход WHODATE для преобразования операторов SQL

При создании тестовых примеров для тестирования базы данных семантика оператора SQL должна быть отражена в тестовых примерах. Для этой цели используется метод, называемый техникой приложения базы данных WHite bOx "(WHODATE)". Как показано на рисунке, операторы SQL независимо преобразуются в операторы GPL, после чего проводится традиционное тестирование методом белого ящика для создания тестовых примеров, включающих семантику SQL.[4]

Четыре этапа

Набор фикстур описывает начальное состояние базы данных перед входом в тестирование. После настройки фикстур поведение базы данных проверяется для определенных тестовых случаев. В зависимости от результата тестовые примеры либо изменяются, либо остаются как есть. Этап «разрушения» приводит либо к прекращению тестирования, либо к продолжению других тестовых примеров.[5]

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

  1. Очистите базу данных: если проверяемые данные уже присутствуют в базе данных, базу данных необходимо очистить.
  2. Настроить приспособление: инструмент вроде PHPUnit Затем будет перебирать фикстуры и делать вставки в базу данных.
  3. Запустите тест, проверьте результат, а затем завершите работу: после сброса базы данных до пустой и перечисления приспособлений запускается тест и проверяется вывод. Если результат соответствует ожиданиям, следует процесс удаления, в противном случае тестирование повторяется.[нужна цитата ]

Базовые техники

  • SQL Query Analyzer - полезный инструмент при использовании Microsoft SQL Server.[нужна цитата ]
  • Одна из часто используемых функций,[нечеткий ] create_input_dialog ["ярлык"], используется для проверки вывода с помощью пользовательского ввода.
  • Дизайн форм для автоматического тестирования базы данных, внешнего и внутреннего интерфейса, полезен для специалистов по обслуживанию баз данных.
  • Данные нагрузочное тестирование:
    • Для тестирования нагрузки данных необходимы знания об исходной базе данных и целевой базе данных.
    • Рабочие проверяют совместимость между исходной базой данных и целевой базой данных, используя DTS упаковка.
    • При обновлении исходной базы данных работники обязательно сравнивают ее с целевой базой данных.
    • При нагрузочном тестировании базы данных измеряется способность сервера базы данных обрабатывать запросы, а также время ответа сервера базы данных и клиента.[6]
  • При тестировании базы данных часто учитываются такие вопросы, как атомарность, согласованность, изоляция, надежность, целостность, выполнение триггеров и восстановление.
  1. Настройка для тестирования базы данных является дорогостоящей и сложной в обслуживании, поскольку системы баз данных постоянно меняются с ожидаемыми операциями вставки, удаления и обновления.
  2. Дополнительные накладные расходы необходимы для определения состояния транзакций базы данных.
  3. После очистки базы данных необходимо разработать новые тестовые сценарии.[нужна цитата ]
  4. Генератор SQL необходим для преобразования операторов SQL, чтобы включить семантику SQL в тестовые примеры базы данных.


Смотрите также

Рекомендации

  1. ^ Корт, Генри (2010). Концепции системы баз данных. Макгроу-Хилл. ISBN  978-0-07-352332-3.
  2. ^ Эмблер, Скотт (2003). Методы Agile баз данных: эффективные стратегии для гибких разработчиков программного обеспечения. хитрый. ISBN  978-0-471-20283-7.
  3. ^ Прессман, Роджер (1994). Тестировщик программного обеспечения: подход практикующего специалиста. McGraw-Hill Education. ISBN  978-0-07-707732-7.
  4. ^ Чжан, Янчунь (1999). Совместные базы данных и приложения '99: материалы Второго международного симпозиума по совместным системам баз данных для передовых приложений (CODAS '99), Вуллонгонг, Австралия, 27–28 марта 1999 г.. Springer. ISBN  978-981-4021-64-7.
  5. ^ Кан, Стивен. Метрики и модели в инженерии качества программного обеспечения. Pearson Education. ISBN  978-81-297-0175-6.
  6. ^ «ИнфоМир». InfoWorld Media Group, Inc. 15 января 1996 г.

внешняя ссылка