Жизненный цикл выпуска программного обеспечения — это процесс разработки, тестирования и распространения программного продукта (например, операционной системы ). Обычно он состоит из нескольких этапов, таких как пре-альфа, альфа, бета и релиз-кандидат, прежде чем финальная версия, или «золотая», будет выпущена для публики.
Pre-alpha относится к ранним стадиям разработки, когда программное обеспечение все еще проектируется и создается. Альфа-тестирование — это первая фаза формального тестирования, в ходе которой программное обеспечение тестируется внутри компании с использованием методов «белого ящика» . Бета-тестирование — это следующая фаза, в ходе которой программное обеспечение тестируется большей группой пользователей, как правило, за пределами организации, которая его разработала. Бета-фаза направлена на снижение воздействия на пользователей и может включать тестирование удобства использования.
После бета-тестирования программное обеспечение может пройти одну или несколько стадий релиз-кандидата, в ходе которых оно дорабатывается и тестируется дополнительно, прежде чем будет выпущена финальная версия.
Некоторое программное обеспечение, особенно в интернет- и технологических отраслях, выпускается в состоянии постоянной бета-версии, что означает, что оно постоянно обновляется и улучшается, и никогда не считается полностью завершенным продуктом. Такой подход позволяет сделать процесс разработки более гибким и позволяет выпускать программное обеспечение и использовать его пользователями на более ранних этапах цикла разработки.
Pre-alpha относится ко всем действиям, выполняемым в ходе программного проекта до формального тестирования. Эти действия могут включать анализ требований , проектирование программного обеспечения , разработку программного обеспечения и модульное тестирование . В типичной разработке с открытым исходным кодом существует несколько типов pre-alpha версий. Milestone -версии включают определенные наборы функций и выпускаются, как только функция будет завершена. [ необходима цитата ]
Альфа-фаза жизненного цикла релиза является первой фазой тестирования программного обеспечения (альфа — первая буква греческого алфавита , используемая как число 1). На этой фазе разработчики обычно тестируют программное обеспечение с использованием методов «белого ящика» . Затем выполняется дополнительная проверка с использованием методов «черного ящика» или «серого ящика» другой командой тестирования. Переход к тестированию «черного ящика» внутри организации называется альфа-релизом . [1] [2]
Программное обеспечение Alpha не тестируется разработчиком до конца, прежде чем оно будет выпущено для клиентов. Программное обеспечение Alpha может содержать серьезные ошибки, и любая возникающая нестабильность может привести к сбоям или потере данных. [3] Программное обеспечение Alpha может не содержать всех функций, которые запланированы для финальной версии. [4] В целом, внешняя доступность программного обеспечения Alpha нетипична для проприетарного программного обеспечения , в то время как программное обеспечение с открытым исходным кодом часто имеет общедоступные альфа-версии. Фаза Alpha обычно заканчивается заморозкой функций , что указывает на то, что больше никаких функций не будет добавлено в программное обеспечение. В это время программное обеспечение считается полностью функциональным. Бета-тестирование проводится после приемочного тестирования на сайте поставщика (альфа-тестирование) и непосредственно перед общим выпуском программного обеспечения в качестве продукта. [5]
В версии с полным набором функций (FC) программного обеспечения реализованы все запланированные или основные функции , но она еще не является окончательной из-за ошибок , проблем с производительностью или стабильностью . [6] Это происходит в конце альфа-тестирования в процессе разработки .
Обычно полнофункциональное программное обеспечение еще должно пройти бета-тестирование и исправление ошибок , а также улучшить производительность или стабильность, прежде чем оно сможет перейти на стадию релиз-кандидата и, наконец, получить статус «золотой версии».
Бета, названная в честь второй буквы греческого алфавита , является фазой разработки программного обеспечения, следующей за альфа. Бета-фаза обычно начинается, когда программное обеспечение полностью функционально, но, вероятно, содержит несколько известных или неизвестных ошибок. [7] Программное обеспечение в бета-фазе, как правило, имеет гораздо больше ошибок, чем готовое программное обеспечение, а также проблем со скоростью или производительностью, и все еще может вызывать сбои или потерю данных. Целью бета-тестирования является снижение воздействия на пользователей, часто включающее тестирование удобства использования . Процесс предоставления бета-версии пользователям называется бета-релизом и, как правило, является первым случаем, когда программное обеспечение становится доступным за пределами организации, которая его разработала. Бета-релизы программного обеспечения могут быть как открытыми, так и закрытыми, в зависимости от того, доступны ли они открыто или только ограниченной аудитории. Бета-версия программного обеспечения часто полезна для демонстраций и предварительных просмотров внутри организации и для потенциальных клиентов. Некоторые разработчики называют этот этап предварительным просмотром , предварительным выпуском , прототипом , техническим предварительным просмотром или предварительным просмотром технологии ( TP ) [8] или ранним доступом .
Бета-тестеры — это люди, которые активно сообщают о проблемах с бета-версией программного обеспечения. Обычно это клиенты или представители потенциальных клиентов организации, которая разрабатывает программное обеспечение. Бета-тестеры, как правило, предлагают свои услуги бесплатно, но часто получают версии продукта, которые они тестируют, скидки на релизную версию или другие поощрения. [9] [10]
Некоторое программное обеспечение хранится в так называемой постоянной бета-версии , где новые функции постоянно добавляются в программное обеспечение без установления окончательного «стабильного» релиза. Поскольку Интернет способствовал быстрому и недорогому распространению программного обеспечения, компании начали использовать более свободный подход к использованию слова бета . [11]
Разработчики могут выпускать либо закрытую бета-версию , либо открытую бета-версию ; закрытые бета-версии выпускаются для ограниченной группы лиц для пользовательского тестирования по приглашению, в то время как открытые бета-тестеры представляют более крупную группу или любого желающего. Закрытая бета-версия может подойти для программного обеспечения, которое способно предоставить ценность, но не готово к использованию всеми из-за проблем масштабирования, отсутствия документации или по-прежнему недостающих важных функций. Тестировщики сообщают о любых ошибках, которые они находят, и иногда предлагают дополнительные функции, которые, по их мнению, должны быть доступны в финальной версии.
Открытые бета-тесты выполняют двойную задачу: демонстрируют продукт потенциальным потребителям, а тестирование среди широкой пользовательской базы, скорее всего, выявит скрытые ошибки, которые гораздо меньшая группа тестирования может не обнаружить.
Кандидат на релиз ( RC ), также известный как гамма-тестирование или «переход на серебряный», — это бета-версия с потенциалом стать стабильным продуктом, который готов к выпуску, если только не возникнут существенные ошибки . На этом этапе стабилизации продукта все функции продукта были спроектированы, закодированы и протестированы в ходе одного или нескольких бета-циклов без известных ошибок класса showstopper. Релиз называется завершенным кодом , когда команда разработчиков соглашается, что в этот релиз не будет добавлен совершенно новый исходный код. Все еще могут быть изменения исходного кода для исправления дефектов, изменения в документации и файлах данных, а также периферийный код для тестовых случаев или утилит. Бета-тестеры, если они выбраны в частном порядке, часто будут получать заработную плату за использование релиз-кандидата, как если бы это был готовый продукт. Бета-тестирование проводится в месте нахождения клиента или заказчика и для тестирования программного обеспечения с точки зрения пользователя. [ необходима цитата ]
Также называемый производственным релизом , стабильный релиз — это последний релиз-кандидат ( RC ), который прошел все этапы проверки и тестирования. Любые известные оставшиеся ошибки считаются приемлемыми. Этот релиз отправляется в производство .
Некоторые программные продукты (например, дистрибутивы Linux , такие как Debian ) также имеют релизы с долгосрочной поддержкой ( LTS ), которые основаны на полных релизах, которые уже были опробованы и протестированы, и получают только обновления безопасности. Это позволяет разработчикам уделять больше времени разработке продукта вместо обновления кода или поиска и исправления новых ошибок из-за устаревших предположений об используемой системе, языке или базовых библиотеках. [ необходима цитата ]
После выпуска программное обеспечение обычно называют «стабильным релизом». Формальный термин часто зависит от метода выпуска: физический носитель, онлайн-релиз или веб-приложение. [12]
Термин «выпуск в производство» (RTM), также известный как «переход на золото», — это термин, используемый, когда программный продукт готов к поставке. Эта сборка может иметь цифровую подпись, что позволяет конечному пользователю проверить целостность и подлинность покупки программного обеспечения. Копия сборки RTM, известная как « золотой мастер » или GM [13], отправляется для массового копирования или репликации дисков, если это применимо. Терминология взята из индустрии создания аудиозаписей, в частности из процесса мастеринга . RTM предшествует общедоступности (GA), когда продукт выпускается для публики. Золотая мастер-сборка (GM) обычно является окончательной сборкой части программного обеспечения на стадиях бета-тестирования для разработчиков. Как правило, для iOS это окончательная сборка перед основным выпуском, однако было несколько исключений.
RTM обычно используется в определенных контекстах массового производства программного обеспечения в розницу — в отличие от специализированного производства программного обеспечения или проекта в коммерческом или государственном производстве и распространении — где программное обеспечение продается как часть пакета в связанной продаже компьютерного оборудования и, как правило, где программное обеспечение и связанное с ним оборудование в конечном итоге должны быть доступны и продаваться на массовой/публичной основе в розничных магазинах, чтобы указать, что программное обеспечение соответствует определенному уровню качества и готово к массовому розничному распространению. RTM также может означать в других контекстах, что программное обеспечение было доставлено или выпущено клиенту или заказчику для установки или распространения на соответствующие компьютеры или машины конечного пользователя оборудования. Термин не определяет механизм или объем поставки; он только утверждает, что качество достаточно для массового распространения. Поставляемый продукт от инжиниринговой организации часто имеет форму золотого мастер-носителя, используемого для копирования или создания изображения для веб-сайта.
Общая доступность ( GA ) — это этап маркетинга, на котором все необходимые действия по коммерциализации завершены, и программный продукт доступен для покупки, в зависимости от языка, региона и доступности электронных или носителей. [14] Мероприятия по коммерциализации могут включать в себя тесты безопасности и соответствия, а также локализацию и доступность по всему миру. Время между RTM и GA может занять от нескольких дней до нескольких месяцев, прежде чем можно будет объявить о выпуске общедоступной версии, из-за времени, необходимого для завершения всех действий по коммерциализации, требуемых GA. На этом этапе программное обеспечение «вышло в свет».
Выпуск в Интернет ( RTW ) или веб-релиз — это способ доставки программного обеспечения, который использует Интернет для распространения. В этом типе механизма выпуска производитель не выпускает никаких физических носителей. Веб-релизы стали более распространенными по мере роста использования Интернета. [ необходима цитата ]
В течение поддерживаемого срока службы программное обеспечение иногда подвергается выпускам сервисных релизов, исправлений или пакетов обновлений , иногда также называемых «промежуточными релизами» или «обслуживающими релизами» (MR). Например, Microsoft выпустила три основных пакета обновлений для 32-разрядных версий Windows XP и два пакета обновлений для 64-разрядных версий. [15] Такие сервисные релизы содержат набор обновлений, исправлений и улучшений, поставляемых в виде одного устанавливаемого пакета. Они также могут реализовывать новые функции. Некоторое программное обеспечение выпускается с расчетом на регулярную поддержку. Классы программного обеспечения, которые обычно подразумевают длительную поддержку как норму, включают антивирусные пакеты и многопользовательские онлайн-игры . Продолжая этот пример с Windows XP, Microsoft действительно предлагала платные обновления еще в течение пяти лет после окончания расширенной поддержки. Это означает, что поддержка закончилась 8 апреля 2019 года. [16]
Когда программное обеспечение больше не продается и не поддерживается, говорят, что продукт достиг конца своего жизненного цикла, что он снят с производства, снят с производства, устарел, признан устаревшим, заброшенным или ненужным, но лояльность пользователей может сохраняться в течение некоторого времени, даже после того, как его платформа устареет, например, Common Desktop Environment [17] и Sinclair ZX Spectrum [18] .
После даты окончания жизненного цикла разработчик обычно не будет внедрять никаких новых функций, исправлять существующие дефекты, ошибки или уязвимости (независимо от того, были ли они известны до этой даты или нет) или предоставлять какую-либо поддержку для продукта. Если разработчик пожелает, он может опубликовать исходный код, чтобы платформа снова заработала и поддерживалась волонтерами, а если нет, то она может быть подвергнута обратному проектированию позже, когда станет заброшенным ПО .
Использование терминологии тестирования «альфа/бета» возникло в IBM . [ требуется цитата ] Подобная терминология для разработки программного обеспечения IBM использовалась людьми, связанными с IBM, по крайней мере с 1950-х годов (и, вероятно, раньше). Тест «A» был проверкой нового продукта перед публичным объявлением. Тест «B» был проверкой перед выпуском продукта в производство. Тест «C» был финальным тестом перед общедоступностью продукта. Поскольку программное обеспечение стало значительной частью предложений IBM, терминология альфа-тестирования использовалась для обозначения предварительного анонсирования теста, а бета-тестирование использовалось для демонстрации готовности продукта к общедоступности. Мартин Бельски, менеджер некоторых ранних программных проектов IBM, утверждал, что изобрел эту терминологию. IBM отказалась от терминологии альфа/бета в 1960-х годах, но к тому времени она получила довольно широкую известность. Использование термина «бета-тестирование» для обозначения тестирования, проводимого клиентами, не было принято в IBM. Вместо этого IBM использовала термин «полевые испытания».
Основные публичные бета-версии были разработаны позже, и первые клиенты приобрели «пионерское издание» текстового процессора WordVision для IBM PC за 49,95 долларов. В 1984 году Стивен Мейнс написал, что «в блестящем маркетинговом ходе издательству Bruce and James Program Publishers удалось заставить людей платить за привилегию тестирования продукта». [19] В сентябре 2000 года была выпущена коробочная версия операционной системы Mac OS X Public Beta от Apple . [20] В период с сентября 2005 года по май 2006 года Microsoft выпускала предварительные версии технологий для сообщества ( CTP ) для Windows Vista . [21] С 2009 по 2011 год Minecraft находился в стадии публичной бета-версии.
В феврале 2005 года ZDNet опубликовал статью о феномене бета-версии, которая часто остается на годы и используется так, как если бы она была на уровне производства. [22] В ней отмечалось, что Gmail и Google News , например, долгое время находились в стадии бета-тестирования, хотя широко использовались; Google News вышли из стадии бета-тестирования в январе 2006 года, а затем Google Apps (теперь называемые Google Workspace ), включая Gmail, в июле 2009 года. [12] С момента появления Windows 8 Microsoft называла предварительные версии программного обеспечения предварительными, а не бета-версиями . Все предварительные версии, выпущенные через программу Windows Insider, запущенную в 2014 году, называются «сборками Insider Preview». «Бета» может также означать что-то больше похожее на кандидата на релиз или на форму ограниченной по времени демонстрации или маркетингового приема. [23]
Программное обеспечение Alpha, как правило, едва работает и в нем отсутствуют такие важные функции, как игровой процесс и полные уровни.