Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Утилита модульного тестирования NUnit. Средства описания тестов. Утверждения, параметры утверждений.
Ответ утилиты, позволяющие сразу запустить все тесты и увидеть результат Одной из наиболее популярных из них является свободно распространяемая утилита nUnit Основными элементами описания тестов являются утверждения(assertions) и директивы (directives) Утверждения Утверждения представляют собой гипотезы, высказываемые тестировщиком относительно результатов выполнения того или иного теста Если гипотеза подтвердилась, то начинает выполняться следующий тест (либо тестирование завершается), иначе возникает ошибка Все утверждения являются статическими методами класса Assert и, обычно, содержит два параметра – ожидаемый результат и действительный: Assert.AssMethod(expected, actual); Примеры утверждений: Assert.AreEqual(expected, fMB1.Subtract(fMB2)); Assert.IsTrue(fMB1.Multiply(0).IsZero); Assert.Greater( x, y ); StringAssert.IsMatch( “Hello! ”, MyStr ); Однако для каждого метода существуют перегружаемые варианты, которые содержат дополнительные параметры, позволяющие сформировать строку сообщения Билет 1.Понятие версии программного продукта и системы контроля версий. Модели версионирования, их сравнение. Ответ Системой контроля версий проектов называется комплекс программного обеспечения, назначением которого является централизованное хранение и обработка всех или большей части файлов, из которых состоит проект некоего программного продукта Под проектом понимается совокупность файлов, включающая: · исходные тексты на различных языках программирования; · исполняемые, ресурсные и библиотечные файлы, необходимые для сборки программного продукта; · исходные тексты файлов справки; · сценарии программ инсталляции; · сопроводительная документация проекта Версией проекта называется уникальный идентификатор, обозначающий конечную или промежуточную стадию разработки, на которой была произведена сборка программного средства Схема контроля версий проекта
Основной задачей системы управления версиями является обеспечение совместного редактирования и использования информации с возможностью разрешения конфликтных ситуаций. Для этого могут использоваться те или иные модели версионирования Модель Блокирование-Изменение-Разблокирование Эта модель запрещает одновременное редактирование файла несколькими клиентами. Перед началом редактирования клиент должен заблокировать файл. Тогда доступ к этому файлу других клиентов станет возможен только после снятия блокировки Пример работы модели
Недостатки модели · Требует повышенного внимания службы администрирования ввиду возможности сохранения блокировки при некорректном завершении клиентом редактирования файла · Приводит к замедлению процесса разработки из-за частых блокировок, выполняемых и в случаях, когда в этом нет необходимости · Блокирование может вызвать ложное чувство безопасности в ситуации, когда два клиента редактируют разные, но зависящиедруг от друга файлы Модель Копирование-Изменение-Слияние Каждый клиент связывается с хранилищем проекта и создает персональную рабочую копию - локальное отражение файлов и каталогов хранилища. После этого клиенты работают одновременно и независимо друг от друга, изменяя свои личные копии. По завершении редактирования личные копии сливаются в новую, итоговую версию. Обычно система управления версиями помогает в слиянии, но за его корректное выполнение отвечает человек Пример работы модели
Пользователь Гарри попытался записать в хранилище исправленный им файл А после того, как пользователь Салли уже зафиксировала там свои итоги редактирования этого файла Система сообщила Гарри, что его файл устарел Пример работы модели Гарри попросил систему обновить его копию файла А. SVN копирует измененный Салли файл А в рабочее пространство Гарри. Создается обновленный файл А с включением изменений, сделанных каждым из пользователей Билет Система Subversion, ее архитектура. Хранилище, его структура, правки. Команды SVN для работы с хранилищем. Понятия рабочей копии и служебного каталога. Сценарий объединения правок. Конфликты и способы их разрешения. Ответ Subversion (SVN) · обеспечивает лучшее управление изменениями структуры каталогов; · более эффективно хранит двоичные файлы; · имеет стандартную возможность возврата к состоянию проекта на определенный момент времени Subversion — централизованная система (в отличие от распределённых систем, таких, как Git или Mercurial), то есть данные хранятся в едином хранилище. Хранилище может располагаться на локальном диске или на сетевом сервере. Архитектура Subversion Модель работы Клиенты копируют файлы из хранилища, создавая локальные рабочие копии, затем вносят изменения в рабочие копии и публикуют эти изменения в хранилище. Несколько клиентов могут одновременно обращаться к хранилищу. При сохранении новых версий используется дельта-компрессия: система находит отличия новой версии от предыдущей и записывает только их, избегая дублирования данных . Хранилище Представляет собой последовательность фиксированных состояний размещенной в ней файловой системы Хранилище создается с помощью входящей в состав поставки Subversion утилиты SvnAdmin путем выполнения команды: svnadmincreate< путь к репозиторию> Импорт в хранилище Сразу после создания хранилище не содержит ничего, кроме пустого корневого каталога Первоначальное заполнение хранилища осуществляется командой svnimport< дерево> < URLхранилища> -m “Initialimport” В качестве первого аргумента этой команды задается путь к поддереву, которое будет загружено в репозиторий. В частности, это может быть папка, содержащая некоторый проект. Вторым аргументом команды импорта является URL-адрес, который используется для доступа к хранилищу Доступ к хранилищу Получить доступ к хранилищу Subversion можно различными способами – на локальном диске или через ряд сетевых протоколов. соответствие разных URL-схем возможным методам доступа Файловая система хранилища Как правило, хранилище Subversion содержит файлы нескольких проектов. Каждый проект представляется в виде подкаталога файловой системы хранилища. При таком подходе, пользовательская рабочая копия обычно соответствует отдельному подкаталогу хранилища. На рисунке показано хранилище, содержащее два программных проекта: calc и paint Правки Каждое новое состояние файловой системы хранилища называется правкой. Каждая правка получает уникальный номер, на единицу больший номера предыдущей правки. Начальная правка вновь созданного хранилища получает номер 0 и не содержит ничего, кроме пустого корневого каталога Последовательность правок Глобальность правок Номера правок в Subversion являются глобальными, т.е. относятся ко всем, а не только к отдельно взятым файлам. Каждый номер правки соответствует целому дереву, отдельному состоянию хранилища после зафиксированного изменения Просмотр списка файлов Список файлов того или иного проекта из репозитория можно просмотреть с помощью команды svnlist< URL каталога хранилища> -v Флаг –v указывает на необходимость вывода полной информации о правке, включая ее номер, дату создания и т.д. Смешивание правок Следует иметь в виду, что рабочие копии не всегда соответствуют какой-то одной правке в хранилище; они могут содержать файлы из разных правок. Пусть, например, первый разработчик получил рабочую копию из хранилища, у которого самая последняя правка имеет номер 4 4 calc/Makefile 4 calc/integer.c 4 calc/button.c На данный момент рабочий каталог полностью соответствует правке 4 в хранилище Допустим, что разработчик внес изменения в файл button.c и зафиксировал эти изменения.При отсутствии других фиксаций будет создана правка под номером 5, и теперь его рабочая копия выглядит следующим образом 4 calc/Makefile 4 calc/integer.c 5 calc/button.c Предположим, что после этого второй разработчик фиксирует изменения integer.c, создавая правку 6 Если первый разработчик актуализирует свою рабочую копию, то она станет выглядеть так 6 calc/Makefile 6 calc/integer.c 6 calc/button.c Изменения, внесенные в integer.c вторым разработчиком будут отражены в рабочей копии первого разработчика, как и его собственные, сделанные в файле button.c Текст Makefile в правках 4, 5 и 6 идентичен, однако Subversion проставляет номер правки 6 для рабочей копии Makefile, чтобы показать что файл не устарел. Таким образом, после выполнения обновления первым разработчиком его рабочей копии, она будет полностью соответствовать текущему состоянию хранилища Фиксация локальных изменений После внесения изменений в файл рабочей копии разработчик может зафиксировать внесенные изменения, выполнив команду svncommit< параметры> < путь к файлу> Например svn commit -F msgfoo.c В результате в хранилище создается новая правка Рабочие копии Рабочая копия – это моментальный «снимок» состояния хранилища или некоторой его части, сохраненный на компьютере клиента. Рабочая копия представляет собой обычное дерево каталогов, содержащее набор различных файлов. Файлы рабочей копии могут произвольным образом редактироваться разработчиком, оставаясь недоступными другим участникам группы. После внесения изменений в файлы рабочей копии и проверки их корректности разработчик может записать свою версию в хранилище, т.е. опубликовать Если другие участники проекта производили редактирование тех же файлов и уже опубликовали свои изменения, Subversion предоставляет возможность для объединения этих изменений с рабочей копией данного разработчика Служебный каталог Рабочая копия содержит дополнительные файлы, созданные и обслуживаемые Subversion, которые используются при выполнении слияний. В частности, каждый каталог рабочей копии содержит подкаталог с именем.svn который называется служебным каталогом рабочей копии. Файлы в служебном каталоге помогают определить какие файлы рабочей копии содержат неопубликованные изменения, и какие файлы устарели по отношению к файлам других участников Конфликтная ситуация Коллективная работа над проектом требует наличия специальных средств поддержки и обеспечения безопасности данных. Конфликтная ситуация, когда два или более разработчиков параллельно редактируют один и тот же файл, внося в него те или иные изменения |
Последнее изменение этой страницы: 2019-05-18; Просмотров: 788; Нарушение авторского права страницы