Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Тестирование скрипта обновления




Описание версии ТЗ

1 – Начало описания.

Наименованиепрограммного средства и назначение

Разрабатываемое программное обеспечение предназначено для тестирования корректности обновления на новые версии БД.

Требования к программным средствам

Требования к инструментам разработки

Язык разработки – C#, платформа – Windows (64-х битная и 32-х битная реализации), NETFramework 4.5.1.

Платформа:Any(CPU).

Рекомендуется не создавать прямых ссылок на стандартные библиотеки (Npgsql, NLogи т.д), а устанавливать зависимость с помощью NuGetпакетов.

Взаимодействие с PostgreSQL через библиотеку nvDbили библиотеку JDBManager.

Для записи информации в лог рекомендуется использовать библиотеку NLog(4.3.11).

NUnitиспользуемый фреймворк для тестирования принятый для использования в организации для проектов написанных на C#.

Требования к коду программы

Код программы должен соответствовать принятому в организации стилю, который описан в документе «Стандарт оформления программного кода».

Основные функции программы должны быть покрыты тестами. Приветствуется покрытие тестами большого процента кода.

Результатом работы должно быть вызываемая программа Windows (exe), которая будет в дальнейшем вызываться для проведения тестов.

Требования к стадиям разработки

Разработка должна быть проведена в три стадии:

1. разработка технического задания;

2. рабочее проектирование;

3. внедрение.

На стадии разработки технического задания должен быть выполнен этап разработки, согласования и утверждения технического задания.

На стадии рабочего проектирования должны быть выполнены перечисленные ниже этапы работ:

1. Разработка программной документации;

2. Проектирование архитектуры системы.

3. Программирование (кодирование) и отладка ПС.

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

Описание задачи

Тестирование новой версии БД состоит из нескольких шагов:

1. Создание пустой БД с новым описанием;

2. Тестирование обновление БД с предыдущей версии на новую версию;

3. Сравнение объектов БД созданной БД в новой версии и БД обновленной до новой версии;

4. Тестирование конвертации БД из старого формата (firebird) в новый формат (postgres) с новым описанием БД.

В папки, где будет проводиться сборка программ, нужно скопировать файл настройки параметров логированияNLog.config из папки с программой Жулдыз. Настройки параметров для своих логов нужно будет прописывать в нем.

Для примеров вызова и работы аналогичных программ можно воспользоваться проектами JDbUpdate, JDBCreate. Посмотреть как там делаются аналогичные вызовы.

Данные для работы

На сервере GitLabоткрыт доступ к проектам:

· DbScheme – описание схемы БД;

· JDbCreate – создание пустой БД;

· JDbUpdate – механизм обновления БД.

Нужно склонировать эти проекты на своих компьютерах.

Создание пустой БД с новым описанием

Результатом разработки должна стать консольная программа (exe), которая будет создавать, пустую БД на основе заданного описания.

Программа будет запускаться с параметрами:

· Название создаваемой БД;

· Путь до папки с описанием XML-описанием БД;

· Адрес сервера postgres;

· Имя пользователя;

· Пароль пользователя.

Данные для тестирования, а именно папку с XML-описание БД можно взять в проекте DbScheme в каталоге TablesDesc.

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

test_create_{название БД}_{dd}.{mm}.{year}.log

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

Логически программа должна быть разделена на 2 части:

· Основная программа (класс), которая выполняет процесс создания пустой БД;

· Интерпретатор командной строки, который принимает параметры. Проверяет их корректность и передает их основной программе.

Уже написан модуль создания пустой базы, JDBCreate.dll. Эту библиотеку нужно будет подключить к проекту. Ивызватьегометодыс заданными параметрами.

///<summary>

/// Initializes a new instance of the <see cref="JEmptyDb" /> class.

///</summary>

///<param name="dataProvider">ТипБД</param>

///<param name="connectionString">СтрокасоединениябеззаданияБД</param>

///<param name="xmlDbDesc">Путьдофайловсописаниетаблицвформате XML</param>

///<param name="databaseName">НазваниесоздаваемойБД</param>

///<param name="currentDate">Текущаядата</param>

///<param name="languageCode">Языкбазыданных.</param>

///<param name="currencyCode">Кодвалюты.</param>

///<paramname="tablespaceName">Название табличного пространства</param>

///<param name="encoding">Кодировка</param>

///<param name="scriptPath">Скрипт</param>

publicJEmptyDb(

DataProviderdataProvider,

stringconnectionString,

stringxmlDbDesc,

stringdatabaseName,

DateTimecurrentDate,

stringlanguageCode,

stringcurrencyCode,

stringtablespaceName = null,

string encoding = null,

stringscriptPath = null)

КлассJEmptyDB – создаетпустуюБД.
Вызовкласса

varemptyDB = new JEmptyDB(DataProvider.Postgres,connectionString, xmlDbDesc, databaseName, DateTime.Now, "ru", "rub")

connectionString = string.Format(

"Server={0};User ID={1};Password={2};Port={3};CommandTimeout=10000;pooling=false;",

               txtAddress.Text,

               txtUserName.Text,

               txtPassword.Text,

txtPort.Text

);

// Создание новой БД

Try

{

emptyDB.Create()

}

catch(Exception ex)

{

// Запись в лог

}

Если конвертация прошла без ошибок, то сделать запись об это в лог.


Тестирование скрипта обновления

Результатом разработки должна стать консольная программа (exe), которая будет создавать БД заданной версии, и запускать обновление до необходимой версии.

Программа будет запускаться с параметрами:

· Номер версии, на которой тестируется обновление (VersionFrom)

· Номер версии, до которой нужно обновить БД (VersionTo);

· Название создаваемой БД;

· Путь до папки с git-каталогом описания БД(DatabasePath – сокращенное наименование);

· Путь до папки с git-каталогом описания БД, содержащую тестируемый скрипт обновления(DatabasePathTest– сокращенное наименование);

· Адрес сервера postgres;

· Имя пользователя;

· Пароль пользователя.

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

test_update_{название БД}_{dd}.{mm}.{year}.log

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

2. В папке DatabasePath нужно запустить команду получения всех обновлений с сервераи автоматического обновления локальных веток:
gitpull–all--tags

3. В папке DatabasePath нужно запустить команду поиска тега для версии БД, которую нужно создать:
gittag–lVersionFrom
Если заданная версия не найдено нужно вывести сообщение об этом, записать лог и прекратить выполнение программы.

4. Перейти в ветку, на которую ссылается тег
gitcheckouttags/<VersionFrom> -b <VersionFrom>

5. В папке, где находится программа удалить папку DB.

6. В папке, где находится программа создать папку DB.

7. В папку DBскопировать все файлы из папки DatabasePath\TablesDesc.

8. В папке DBсоздать каталог: sql.
В папку sql создать каталог initsql и скопировать в него все файлы из папки DatabasePath\SQL.

9. В папке DBсоздать каталог updateи скопировать в него все файлы из папки DatabasePath\UpdateSql.

10. В папке, где находится программа удалить папку DBTest.

11. В папке, где находится программа создать папку DBTest.

12. В папку DBTestскопировать все файлы из папки DatabasePathTest\TablesDesc.

13. В папке DBTestсоздать каталог: sql.
В папку sql создать каталог initsql и скопировать в него все файлы из папки DatabasePathTest \SQL.

14. В папке DBTestсоздать каталог updateи скопировать в него все файлы из папки DatabasePathTest \UpdateSql.

15. Запустить процесс создания новой БД для этого нужен будет модуль JDBCreate.dll. Подробно это описывается в пункте Создание пустой БД с новым описанием. В качестве папки с описанием БД нужно указать папку DatabasePath\TablesDesc\

Если при создании пустой БД возникли ошибки, необходимо их записать в лог и завершить программу.

16. Тестирование обновление созданной БД до требуемой версии VersionTo. ДляобновленияБДиспользуетсябиблиотекаJDbUpdateLibrary.
_controller = newJDbUpdateController(connectionString, xmlBaseDir);
///<summary>

/// Initializes a new instance of the <see cref="JDbUpdateController"/> class.

///</summary>

///<param name="connectionString">СтрокаподключениякБД.</param>

///<paramname="xmlBaseDir">Путьдопапкисописанием к БД.</param>

publicJDbUpdateController(stringconnectionString, stringxmlBaseDir)

 

connectionString = string.Format(

"Server={0};User ID={1};Password={2};Port={3};Database = {4};CommandTimeout=10000; pooling=false;",

txtAddress.Text,

txtUserName.Text,

txtPassword.Text,

txtPort.Text,

               DatabaseName

);

xmlBaseDir – это путь до папки DatabasePathTest.

17. Запуск обновления БД до требуемой версии:

_controller = StartUpdate(versionTo, logger)

 

///<summary>

/// Обновляет базу до заданной версии.

///</summary>

///<paramname="versionTo">Выбранная версия для обновления.</param>

///<paramname="logger">Ссылка на лог.</param>

publicvoidStartUpdate(stringversionTo, Logger logger)

versionTo = VersionTo,
logger – ссылканаLog (Nlog).










Тестовые данные

Нужно сделать 2 клона проекта DbScheme: DatabasePathи DatabasePathTest.

Выбрать 2 версии для тестирования. Например, 1.0.38 и 1.0.39.

DatabasePathTestперейти в ветку, ссылающуюся на версию 1.0.39.

Сверка схем БД

Результатом разработки должна стать консольная программа (exe), которая будет сверять объекты БД двух баз.

Программа будет запускаться с параметрами:

· Название первой БД;

· Название второй БД;

· Адрес сервера postgres;

· Имя пользователя;

· Пароль пользователя.

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

test_equal_db_{название БД1}_{названиеБД2}_{dd}.{mm}.{year}.log – детальный лог

testReport_equal_db_{название БД1}_{названиеБД2}_{dd}.{mm}.{year}.log – итоговый отчет совпадают ли описания БД да или нет.

 

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

2. Необходимо сделать подключения к первой и второй БД и последовательно сравнить описания БД, информацию о сравнении записывать в лог:

a. Схемы БД;

b. Таблицы в каждой схеме;

c. Столбцы каждой в таблице;

d. Индексы;

e. Последовательности;

f. Ограничения на уровне таблиц;

g. Триггеры таблиц

3. Итоговую информацию о сравнении двух баз записать в итоговый лог.

 










Последнее изменение этой страницы: 2018-04-11; просмотров: 436.

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