Тестирование базы данных - Database testing - Wikipedia
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Тестирование базы данных обычно состоит из многоуровневого процесса, включающего пользовательский интерфейс (UI) слой, бизнес-уровень, уровень доступа к данным и сама база данных. Слой пользовательского интерфейса занимается дизайном интерфейса базы данных, а бизнес-уровень включает базы данных, поддерживающие бизнес-стратегии.
Цели
Базы данных, сбор взаимосвязанных файлов на сервере, хранящий информацию, может не иметь дело с одним и тем же тип данных, т.е. базы данных могут быть неоднородный. В результате многие виды внедрения и интеграции ошибки может возникать в больших системах баз данных, что отрицательно сказывается на производительности, надежности, согласованности и безопасности системы. Таким образом, важно тест чтобы получить систему базы данных, которая удовлетворяет КИСЛОТА свойства (атомарность, согласованность, изоляция и долговечность) система управления базами данных.[1]
Одним из наиболее важных уровней является уровень доступа к данным, который имеет дело с базами данных непосредственно во время процесса связи. Тестирование базы данных в основном происходит на этом уровне и включает стратегии тестирования, такие как контроль качества и обеспечение качества баз данных продуктов.[2] Тестирование на этих разных уровнях часто используется для поддержания согласованности систем баз данных, что чаще всего можно увидеть в следующих примерах:
- Данные имеют решающее значение с точки зрения бизнеса. Такие компании как Google или же Symantec, которые связаны с хранилище данных, необходимо иметь надежную и согласованную систему баз данных. Если операции с базой данных, такие как вставить, удалить и обновить выполняются без предварительной проверки базы данных на непротиворечивость, компания рискует вывести из строя всю систему.
- У некоторых компаний разные типы баз данных, а также разные цели и задачи. Чтобы достичь уровня функциональности, соответствующего указанным целям, им необходимо протестировать свою систему баз данных.
- Текущий подход к тестированию может быть недостаточным, если разработчики формально тестируют базы данных. Однако этот подход недостаточно эффективен, поскольку разработчики баз данных могут замедлить процесс тестирования из-за недостатков связи. Представляется целесообразным создать отдельную группу тестирования базы данных.
- Тестирование баз данных в основном связано с поиском ошибок в базах данных с целью их устранения. Это улучшит качество базы данных или веб-системы.
- Тестирование базы данных следует отличать от стратегий решения других проблем, таких как сбои базы данных, неработающие вставки, удаления или обновления. Здесь, рефакторинг базы данных может применяться эволюционный метод.
Типы испытаний и процессы
На рисунке показаны области тестирования, задействованные при различных методах тестирования базы данных, например: черный ящик и тестирование методом белого ящика.
Черный ящик
Тестирование черного ящика включает в себя тестирование интерфейсов и интеграцию базы данных, которая включает:
- Отображение данных (в том числе метаданные )
- Проверка входящих данных
- Проверка исходящих данных из функций запроса
- Различные методы, такие как метод построения графиков причинно-следственных связей, разделение по эквивалентности и граничный анализ.
С помощью этих методов можно тщательно протестировать функциональность базы данных.
Плюсы и минусы тестирования черного ящика включают в себя: Создание тестовых случаев при тестировании черного ящика довольно просто. Их создание полностью не зависит от разработки программного обеспечения и может быть выполнено на ранней стадии разработки. Как следствие, программист лучше знает, как проектировать приложение базы данных, и тратит меньше времени на отладку. Стоимость разработки тестовых примеров черного ящика ниже, чем разработка тестовых примеров белого ящика. Главный недостаток тестирования черного ящика заключается в том, что неизвестно, какая часть программы тестируется. Также не могут быть обнаружены некоторые ошибки.[3]
Белая коробка
Тестирование методом белого ящика в основном касается внутренней структуры базы данных. Детали спецификации скрыты от пользователя.
- Он включает в себя тестирование триггеров базы данных и логических представлений, которые будут поддерживать рефакторинг базы данных.
- Он выполняет модульное тестирование функций базы данных, триггеров, представлений, SQL запросы и т. д.
- Он проверяет таблицы базы данных, модели данных, схему базы данных и т. Д.
- Проверяет правила Ссылочная целостность.
- Он выбирает значения таблицы по умолчанию для проверки согласованности базы данных.
- При тестировании методом белого ящика используются следующие методы: покрытие условий, покрытие решений, покрытие операторов, цикломатическая сложность.
Основное преимущество тестирования методом белого ящика при тестировании базы данных заключается в том, что обнаруживаются ошибки кодирования, поэтому внутренние ошибки в базе данных могут быть устранены. Ограничение тестирования белого ящика состоит в том, что операторы SQL не покрываются.
Подход WHODATE
При создании тестовых примеров для тестирования базы данных семантика оператора SQL должна быть отражена в тестовых примерах. Для этой цели используется метод, называемый техникой приложения базы данных WHite bOx "(WHODATE)". Как показано на рисунке, операторы SQL независимо преобразуются в операторы GPL, после чего проводится традиционное тестирование методом белого ящика для создания тестовых примеров, включающих семантику SQL.[4]
Четыре этапа
- Набор Приспособление
- Тестовый забег
- Проверка результата
- Срывать
Набор фикстур описывает начальное состояние базы данных перед входом в тестирование. После настройки фикстур поведение базы данных проверяется для определенных тестовых случаев. В зависимости от результата тестовые примеры либо изменяются, либо остаются как есть. Этап «разрушения» приводит либо к прекращению тестирования, либо к продолжению других тестовых примеров.[5]
Для успешного тестирования базы данных обычно выполняется следующий рабочий процесс, выполняемый каждым отдельным тестом:
- Очистите базу данных: если проверяемые данные уже присутствуют в базе данных, базу данных необходимо очистить.
- Настроить приспособление: инструмент вроде PHPUnit Затем будет перебирать фикстуры и делать вставки в базу данных.
- Запустите тест, проверьте результат, а затем завершите работу: после сброса базы данных до пустой и перечисления приспособлений запускается тест и проверяется вывод. Если результат соответствует ожиданиям, следует процесс удаления, в противном случае тестирование повторяется.[нужна цитата ]
Базовые техники
- SQL Query Analyzer - полезный инструмент при использовании Microsoft SQL Server.[нужна цитата ]
- Одна из часто используемых функций,[нечеткий ]
create_input_dialog ["ярлык"]
, используется для проверки вывода с помощью пользовательского ввода. - Дизайн форм для автоматического тестирования базы данных, внешнего и внутреннего интерфейса, полезен для специалистов по обслуживанию баз данных.
- Данные нагрузочное тестирование:
- Для тестирования нагрузки данных необходимы знания об исходной базе данных и целевой базе данных.
- Рабочие проверяют совместимость между исходной базой данных и целевой базой данных, используя DTS упаковка.
- При обновлении исходной базы данных работники обязательно сравнивают ее с целевой базой данных.
- При нагрузочном тестировании базы данных измеряется способность сервера базы данных обрабатывать запросы, а также время ответа сервера базы данных и клиента.[6]
- При тестировании базы данных часто учитываются такие вопросы, как атомарность, согласованность, изоляция, надежность, целостность, выполнение триггеров и восстановление.
- Настройка для тестирования базы данных является дорогостоящей и сложной в обслуживании, поскольку системы баз данных постоянно меняются с ожидаемыми операциями вставки, удаления и обновления.
- Дополнительные накладные расходы необходимы для определения состояния транзакций базы данных.
- После очистки базы данных необходимо разработать новые тестовые сценарии.[нужна цитата ]
- Генератор SQL необходим для преобразования операторов SQL, чтобы включить семантику SQL в тестовые примеры базы данных.
Смотрите также
Рекомендации
- ^ Корт, Генри (2010). Концепции системы баз данных. Макгроу-Хилл. ISBN 978-0-07-352332-3.
- ^ Эмблер, Скотт (2003). Методы Agile баз данных: эффективные стратегии для гибких разработчиков программного обеспечения. хитрый. ISBN 978-0-471-20283-7.
- ^ Прессман, Роджер (1994). Тестировщик программного обеспечения: подход практикующего специалиста. McGraw-Hill Education. ISBN 978-0-07-707732-7.
- ^ Чжан, Янчунь (1999). Совместные базы данных и приложения '99: материалы Второго международного симпозиума по совместным системам баз данных для передовых приложений (CODAS '99), Вуллонгонг, Австралия, 27–28 марта 1999 г.. Springer. ISBN 978-981-4021-64-7.
- ^ Кан, Стивен. Метрики и модели в инженерии качества программного обеспечения. Pearson Education. ISBN 978-81-297-0175-6.
- ^ «ИнфоМир». InfoWorld Media Group, Inc. 15 января 1996 г.
- Эмблер, Скотт В. (2006). «Тестирование базы данных: как провести регрессионное тестирование реляционной базы данных». Agiledata.org. Получено 4 декабря, 2011. Внешняя ссылка в
| publisher =
(помощь) - Зейчик, Алан; и другие. (14 августа 1989 г.). Как мы тестировали интегрированные программные пакеты. InfoWorld. Получено 4 декабря, 2011.
внешняя ссылка
- Глава 8. Тестирование базы данных, из руководства PHPUnit
- Создание наборов данных для тестирования реляционных баз данных
- Покрытие тестов SQL
- Аколит Фреймворк создать макет JDBC для тестирования устойчивости