Научная статья на тему 'Тестирование кода при переносе базы данных'

Тестирование кода при переносе базы данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
380
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СУБД / БАЗА ДАННЫХ / МАССИВ / УТИЛИТА / ПРИКЛАДНАЯ ПРОГРАММА / ИДЕНТИФИКАТОР / ТАБЛИЦЫ / DBMS / DATABASE / ARRAY / UTILITY / APPLICATION PROGRAM ID OF THE TABLE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Нефедова И.В.

В статье рассматривается работа с большими и сложными массивами данных при переносе баз данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article deals with working with large and complex data sets to migrate databases.

Текст научной работы на тему «Тестирование кода при переносе базы данных»

004.655 И.В. Нефедова, ФГБОУ ВПО «Московский политехнический

университет», г.Москва

ТЕСТИРОВАНИЕ КОДА ПРИ ПЕРЕНОСЕ БАЗЫ ДАННЫХ

В статье рассматривается работа с большими и сложными массивами данных при переносе баз данных.

Ключевые слова: СУБД, база данных, массив, утилита, прикладная программа, идентификатор, таблицы.

The article deals with working with large and complex data sets to migrate databases. Keywords: DBMS, database, array, utility, application program ID of the table

Разработка новых методик при работе в сфере компьютерных технологий значительно облегчает информатизацию трудового процесса [1-4] и преподавании дисциплины «Базы данных» в инженерных специальностях [5-8]. Кроме того, это облегчает работу при обработке статистических данных научно-технических направлений [9-11].

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

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

корректные конструкции. Тестовые наборы непрерывно пополняются по мере развития способов миграции и при изменении конструкций.

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

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

То, что получается на каждом шагу, будет сравниваться как разности множеств А-В и В-А. Если возникнет такая ситуация, что обе разности будут представлять собой пустое множество, результат будет считаться положительным т.е. транслированный код тождественен исходному. В обратном случае, когда множества не являются пустыми, должна производиться попытка сравнений А-В и В-А, чтобы локализовать ошибку, а результаты сравнений будут записаны в отчет, где будут зафиксированы различные ошибки, возникшие при выполнении переведенного и исходного кодов. Возможным этапом контроля эквивалентности исходной и мигрированной базы данных является контроль изменений, произошедших внутри базы данных, во время работы запросов. Для этого в исходной и в мигрированной базе данных добавлены триггеры для событий: ШБЕКТ/иРБАТЕ/БЕЪЕТЕ. Вся информация, об изменениях, произошедших во время процесса переноса, записывается в таблицу аудита.

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

весь функционал системы. Могут устанавливаться различные границы: например, в требовании к проекту может быть утверждено, что данные тесты должны покрыть не менее 30% базы данных.

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

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

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

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

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

Чтобы повысить достоверность результатов валидации, может использоваться подход, основанный на сравнении хэш-ключей [4]. Тогда для каждой колонки каждой таблицы обеих баз данных будут считывать-ся хэш-ключи, а отдельная таблица будет фиксировать полученные результаты подсчета. Хэш-функция должна выбираться, учитывая тот факт, что от порядка обхода табличных строк хэш-ключи зависеть не должны, ведь в общем случае в выборке не определен порядок записей, а упорядочивание может сильно снизить скорость подсчета. В случае расхождения, после сравнения таблиц, определяются колонки и та-

блицы, которые не удачно прошли процесс миграции.

Принимая во внимание вышеизложенную методологию, выделяются основные этапы процесса тестирования:

• тестирование инструмента миграции;

• компиляция процедур;

• валидация;

• сравнение внешних эффектов при воспроизведении запросов.

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

Последняя часть тестирования делится на два главных этапа: 1) подготовка запросов для воспроизведения, 2) сам процесс воспроизведения, во время которого как раз происходит сравнивание поведения двух баз данных.

Список литературы:

1. Грушицын А.С. Методика конфигурации из старой в новую версию ядра ос Linux / / Современные образовательные технологии в мировом учебно-воспитательном пространстве. Издательство: Общество с ограниченной ответственностью «Центр развития научного сотрудничества» (Новосибирск).- № 4.- 2016 г.-Стр. 15-19

2. Балдина А.Д., Нефедова И.В. Применение сетей Петри в моделировании динамических систем / / Сборник научных статей 2-й Международной молодежной научной конференции «Будущее Науки-2014». -Курск: ЗАО «Университетская книга». -2014. - С. 79-81.

3. Нефедова И.В. Методика конфигурации ядра Ътих//Современные образовательные технологии в мировом учебно-воспитательном пространстве. Издательство: Общество с ограниченной ответственностью «Центр развития научного сотрудничества» (Новосибирск) -2015. -№ 2. -С. 49-53.

4. К.Д. Курбанмагомедов Разработка модели и процедур тестирования кеш-памяти компьютерных систем с разрядно-модульной организацией. // Научно-практический журнал «Системные технологии» ДНИТИИ. -2016 -№20 - С.53-62

5. Лунгу К. Н., Борисова Н. Л. Проблема формирования нелинейного мышления при обучении студентов математике // Психология и педагогика: методика и проблемы практического применения: сборник материалов XXXVII Международной научно-практической конференции / под общ. ред. С. С. Чернова - Новосибирск: издательство ЦРНС, 2014. - С. 69-75.

6. Лунгу К. Н., Измайлова Н. В., Борисова Н. Л., Адам Е. И. Некоторые вопросы модернизации математического образования

студентов // Наука и современность-2016: сборник материалов XLII Международной научно-практической конференции под общ. ред. С.С. Чернова. - Новосибирск: Издательство ЦРНС.- 2016. - С. 28-32.

7. Муханов С.А. Структурный подход к проектированию целостного учебного процесса (на примере профилирующих курсов физико-математического факультета) / / Диссертация на соискание ученой степени кандидата педагогических наук. -Москва. - 2003.

8. Муханов С.А. Проектирование общедоступных интерактивных образовательных ресурсов с использованием технологий Wolfram CDFZ/Приволжский научный вестник. -2015. - № 11 (51).- С. 112-115.

9. Кулиев В.Д., Курбанмагомедов А.К. B-метод решения одной задачи термоупругости из К-класса//Вестник Дагестанского научного центра. -2014. -№ 54. -С. 18-25.

10. Курбанмагомедов А.К., Макаров Е.В., Раджабов З.Р. Моделирование упруго-прочностных свойств многослойных мате-риалов//Известия Дагестанского государственного педагогического университета. Естественные и точные науки. -2015. - № 1 (30) - С. 9-12.

11. Dreval', V.E., Bubman, S.Z., Radzhabov, Z.R., Matukhina, E.V., Razumovskaya, I.V. and Kulichikhin V.G., Vysokomol. Soedin., -Ser. B, - 1991, - vol. 33, - no. 6, - p. 475.

i Надоели баннеры? Вы всегда можете отключить рекламу.