Понятие версии программного продукта и системы контроля версий
Проблема контроля версий является одной из фундаментальных проблем программной инженерии в силу невозможности практической реализации линейной стратегии разработки программных средств и коллективного характера процесса разработки. При индивидуальной работе над проектом разработчик вынужден хранить 2 и более версий системы, чтобы иметь возможность вернуться на предыдущие стадии разработки. При коллективной разработке ситуация усложняется, поскольку возникают проблемы семантической совместимости фрагментов программного кода, созданных отдельными разработчиками, и оповещения об изменениях, вносимых в ранее написанный код каждым из разработчиков. Одним из аспектов нового подхода к организации разработки стало использование систем управления версиями – Version Control Systems (VCS). Система управления версиями - комплекс ПО, назначением которого является централизованное хранение и обработка всех или большей части файлов, из которых состоит проект некоего программного продукта.
Под проектом понимается совокупность файлов, включающая: исходные тексты на различных ЯП; исполняемые, ресурсные и библиотечные файлы, необходимые для сборки программного продукта; исходные тексты файлов справки; сценарии программ инсталляции; сопроводительная документация проекта.
Понятие «версия» в разных системах трактуется 2 способами.
Одни системы (например, CVS) поддерживают версионность файлов; это означает, что любой файл, появляющийся в проекте, получает собственный номер версии (обычно — номер 1, условной «нулевой» версией файла считается пустой файл с тем же именем). При каждой фиксации разработчиком изменений, затрагивающих файл, файл получает новый, обычно следующий по порядку, номер версии. Поскольку фиксации обычно затрагивают только часть файлов в репозитории, номера версий файлов, со временем расходятся, и проект в целом никакого «номера версии» не имеет, т.к. состоит из множества файлов с различными номерами версий.
Для других систем понятие «версия» относится не к отдельному файлу, а к репозиторию целиком. Вновь созданный пустой репозиторий имеет версию 1 или 0, любая фиксация изменений (даже 1 файла) приводит к увеличению этого номера. Номера версии отдельного файла здесь, не существует, но говоря о «версии файла» в таких системах, имеют в виду ту версию репозитория, в которой файл был последний раз изменён.
- Понятие автоматизированного тестирования. Автотесты. Достоинства и недостатки автоматизированного тестирования.
- Недостатки.
- Типы автоматизированного тестирования, их цели. Средства автоматизированного тестирования.
- Директивы, категории директив
- Группы утверждений, классическая и закрытая модель утверждений
- Понятие версии программного продукта и системы контроля версий
- Две модели версионирования, их сравнение.
- Система конкурирующих версий cvs, ее достоинства и недостатки
- Хранилище, его структура, правки. Команды svn для работы с хранилищем
- Утилита модульного тестирования nUnit. Средства описания тестов.
- Сценарий объединения правок. Конфликты и способы их разрешения
- Понятия рабочей копии и служебного каталога. Команды svn для работы с рабочими копиями
- Документирование процесса разработки. Типы документов управления
- Документирование программного продукта. Документация сопровождения, ее назначение и состав
- Документирование программного продукта. Пользовательская документация, ее назначение и состав
- Генератор документации Sandcastle, его назначение и принцип работы
- Критерии оценивания проектов, шкалы ценности проекта
- Способы контроля хода выполнения проекта: меры и метрики. Виды метрик.