Версии программного продукта, системы контроля версий. Количественные критерии качества тестирования.
Жизненный цикл успешной компьютерной программы может быть очень долгим; изменения в программе бывают разными — от исправления ошибки до полного переписывания. В большинстве случаев название программы остаётся тем же, изменяется подназвание — так называемая версия.
Версия программы может быть целым числом (Corel Draw 11), дробным числом (Windows
3.11), последовательностью чисел (JDK1.0.3), годом (Windows 2000) или текстом (Embarcadero Delphi XE). В любом случае, система версионирования выбирается по нескольким критериям:
Поддержка той или иной системы со стороны ПО для разработки (компилятора, системы контроля версий и т. д.)
Частота выхода новых версий и их «сырость». Сложная программа, выпускаемая раз в несколько лет и перед выпуском проходящая
всеобъемлющее тестирование, может именоваться как «Microsoft Word 97 SP2», в то время как в программе с частыми малостабильными выпусками приходится вводить более сложную нумерацию.
Степень совместимости сетевых протоколов, документов или надстроек сторонних разработчиков — например, «старшая» версия увеличивается с каждым изменением ABI или API. • Маркетинговые соображения.
Система контроля версий (СКВ) — это система, регистрирующая изменения в одном или нескольких файлах с тем, чтобы в дальнейшем была возможность вернуться к определённым старым версиям этих файлов.
Локальные системы контроля версий
Многие предпочитают контролировать версии, просто копируя файлы в другой каталог (как правило добавляя текущую дату к названию каталога). Такой подход очень распространён, потому что прост, но он и чаще даёт сбои. Очень легко забыть, что ты не в том каталоге, и случайно изменить не тот файл, либо скопировать файлы не туда, куда хотел, и затереть нужные файлы.
Чтобы решить эту проблему, программисты уже давно разработали локальные СКВ
|
остой базой данных, в которой хранятся все изменения нужных файлов (см. рисуно
|
Одной из наиболее популярных СКВ такого типа является rcs, которая до сих по
|
устанавливается на многие компьютеры. Даже в современной операционной системе Mac
|
OS X утилита rcs устанавливается вместе с Developer Tools. Эта утилита основана на
|
работе с наборами патчей между парами версий (патч
|
между файлами), которые хранятся в специальном формате на диске. Это позволяе
|
пересоздать любой файл на любой момент времени, последовательно накладывая патчи
|
Централизованные системы контроля версий
|
Следующей основной проблемой оказалась необходимость сотрудничать с разработчиками за другими компьютерами. Чтобы решить её, были созданы
b NgrOHy+PaxAxIWtsPZOCP4qw3YxHFZbaX/md+lMyIodwLFGBTakrpYy1JYdx5jvizH374DBlGIzU Aa853LVyURQr6bDh3GCxo72l+nL6dQp+jsEcP4M57BbTt3V9tk/zi/lS6mEy7J5BJBrSv/juftUK lqtimffmO/kKyM0NAAD//wMAUEsBAi0AFAAGAAgAAAAhANvh9svuAAAAhQEAABMAAAAAAAAAAAAA AAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAWvQsW78AAAAVAQAACwAA AAAAAAAAAAAAAAAfAQAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEA2uzhCMMAAADeAAAADwAA AAAAAAAAAAAAAAAHAgAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAADAAMAtwAAAPcCAAAAAA== " adj="0,,0" path="m,l4898898,r,177546l,177546,,e" fillcolor="#fbfbf9" stroked="f" strokeweight="0"> централизованные системы контроля версий (ЦСКВ). В таких системах, например CVS, Subversion и Perforce, есть центральный сервер, на котором хранятся все файлы под версионным контролем, и ряд клиентов, которые получают копии файлов из него. Много лет это было стандартом для систем контроля версий (см. рис. 1-2).
. Схема централизованного контроля версий.
|
Такой подход имеет множество преимуществ, особенно над локальными СКВ. К примеру,
|
все знают, кто и чем занимается в проекте. У администраторов есть чёткий контроль
|
тем, кто и что может делать, и, коне
|
чно, администрировать ЦСКВ намного легче, чем
|
локальные базы на каждом клиенте.
|
Однако при таком подходе есть и несколько серьёзных недостатков. Наиболее оче
|
централизованный сервер является уязвимым местом всей системы. Если сервер
|
выключается на час, то в течение часа разработчики не могут взаимодействов
|
не может сохранить новой версии своей работы. Если же повреждается диск с
|
центральной базой данных и нет резервной копии, вы теряете абсолютно всё
|
историю проекта, разве что за исключением нескольких рабочих версий, сохранившихс
|
на рабочих машинах пользователей. Локальные системы контроля версий подвержены той
|
же проблеме: если вся история проекта хранится в одном месте, вы рискуете потерять всё
|
Распределённые системы контроля версий
|
m 40bD6bi7X4KICdlg75g0/FKE7eZmssbCuAsfaChTI3IIxwI1tCn5QspYtWQxTp0nzlztgsWUYWik CXjJ4baXD0otpMWOc0OLnl5aqr7KH6vh4z0Mpd9/qqOdn/389bvevc1qre9ux+cViERjuor/3Xuj 4XGhnvLefCdfAbn5AwAA//8DAFBLAQItABQABgAIAAAAIQDb4fbL7gAAAIUBAAATAAAAAAAAAAAA AAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgAAAAhAFr0LFu/AAAAFQEAAAsA AAAAAAAAAAAAAAAAHwEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgAAAAhAFqr/mHEAAAA3gAAAA8A AAAAAAAAAAAAAAAABwIAAGRycy9kb3ducmV2LnhtbFBLBQYAAAAAAwADALcAAAD4AgAAAAA= " adj="0,,0" path="m,l5795772,r,177546l,177546,,e" fillcolor="#fbfbf9" stroked="f" strokeweight="0"> И в этой ситуации в игру вступают распределённые системы контроля версий (РСКВ). В таких системах как Git, Mercurial, Bazaar или Darcs клиенты не просто выгружают последние версии файлов, а полностью копируют весь репозиторий. Поэтому в случае, когда "умирает" сервер, через который шла работа, любой клиентский репозиторий может быть скопирован обратно на сервер, чтобы восстановить базу данных. Каждый раз, когда клиент забирает свежую версию файлов, он создаёт себе полную копию всех данных (см. рисунок 1-3).
. Схема распределённой системы контроля версий
|
Кроме того, в большей части этих систем можно работать с несколькими удалённым
|
репозиториями, таким образом, можно одновременно работать по
|
группами людей в рамках одного проекта. Так, в
|
одном проекте можно одновременн
|
вести несколько типов рабочих процессов, что невозможно в централизованных системах
|
Дата добавления: 2017-06-02; просмотров: 1142;