Cykl życia wersji oprogramowania — Software release life cycle

Przykład podstawowego cyklu życia wersji oprogramowania

Cyklu życia oprogramowania uwolnienie jest sumą etapach rozwoju i dojrzałości do kawałka komputerowego oprogramowania . Cykle obejmują zakres od początkowego opracowania do ostatecznego wydania i obejmują zaktualizowane wersje wydanej wersji, aby pomóc ulepszyć oprogramowanie lub naprawić błędy oprogramowania nadal obecne w oprogramowaniu.

Użytkownicy komputerów są najprawdopodobniej zaznajomieni z fazą beta , ponieważ oprogramowanie jest czasami publicznie reklamowane jako wersja beta w celu zmniejszenia oczekiwań użytkowników co do ich niezawodności.

Historia

Używanie terminologii testów „alfa/beta” pochodzi z IBM . Podobne terminologie dla rozwoju oprogramowania IBM były używane przez ludzi związanych z IBM co najmniej od lat pięćdziesiątych (i prawdopodobnie wcześniej). Test „A” polegał na weryfikacji nowego produktu przed publicznym ogłoszeniem. Test „B” był weryfikacją przed dopuszczeniem produktu do produkcji. Test „C” był ostatnim testem przed powszechną dostępnością produktu. Ponieważ oprogramowanie stało się istotną częścią oferty IBM, terminologia dotycząca testów alfa została użyta do oznaczenia testu poprzedzającego ogłoszenie, a test beta został użyty do wykazania gotowości produktu do powszechnej dostępności. Martin Belsky, kierownik niektórych wcześniejszych projektów oprogramowania IBM, twierdził, że wynalazł terminologię. IBM zrezygnował z terminologii alfa/beta w latach sześćdziesiątych, ale do tego czasu otrzymał dość szerokie zainteresowanie. Użycie „testu beta” w odniesieniu do testów wykonywanych przez klientów nie zostało wykonane w IBM. Zamiast tego IBM użył terminu „test terenowy”.

Etapy rozwoju

Pre-alfa

Pre-alfa odnosi się do wszystkich czynności wykonywanych podczas projektu oprogramowania przed formalnym testowaniem. Działania te mogą obejmować analizę wymagań , projektowanie oprogramowania , rozwoju oprogramowania i testów jednostkowych . W typowym rozwoju oprogramowania open source istnieje kilka typów wersji pre-alpha. Wersje Milestone zawierają określone zestawy funkcji i są wydawane, gdy tylko funkcja jest gotowa.

Alfa

Faza alfa cyklu życia wydania jest pierwszą fazą testowania oprogramowania (alfa to pierwsza litera alfabetu greckiego , używana jako cyfra 1). W tej fazie programiści zazwyczaj testują oprogramowanie przy użyciu technik białoskrzynkowych . Dodatkowa walidacja jest następnie przeprowadzana przy użyciu technik czarnoskrzynkowych lub szarej skrzynki przez inny zespół testowy. Przejście na testy czarnoskrzynkowe wewnątrz organizacji jest znane jako wydanie alfa .

Oprogramowanie Alpha nie jest dokładnie testowane przez dewelopera przed udostępnieniem klientom. Oprogramowanie Alpha może zawierać poważne błędy, a każda wynikająca z tego niestabilność może spowodować awarie lub utratę danych. Oprogramowanie Alpha może nie zawierać wszystkich funkcji, które są planowane w ostatecznej wersji. Ogólnie rzecz biorąc, zewnętrzna dostępność oprogramowania alfa jest rzadkością w przypadku oprogramowania zastrzeżonego , podczas gdy oprogramowanie open source często ma publicznie dostępne wersje alfa. Faza alfa zwykle kończy się zamrożeniem funkcji , co oznacza, że ​​do oprogramowania nie zostaną dodane żadne nowe funkcje. W tej chwili mówi się, że oprogramowanie jest kompletne . Test beta jest przeprowadzany po testach akceptacyjnych w siedzibie dostawcy (test alfa) i bezpośrednio przed ogólnym wydaniem oprogramowania jako produktu.

Beta

Beta, nazwana na cześć drugiej litery alfabetu greckiego , to faza rozwoju oprogramowania następująca po alfa. Oprogramowanie w fazie beta jest również znane jako betaware . Faza beta zwykle rozpoczyna się, gdy oprogramowanie jest kompletne, ale prawdopodobnie zawiera wiele znanych lub nieznanych błędów. Oprogramowanie w fazie beta zazwyczaj zawiera o wiele więcej błędów niż ukończone oprogramowanie oraz problemy z szybkością lub wydajnością i nadal może powodować awarie lub utratę danych. Testy beta skupiają się na ograniczeniu wpływu na użytkowników, często obejmując testy użyteczności . Proces dostarczania wersji beta użytkownikom nazywa się wydaniem beta i zazwyczaj jest to pierwszy raz, kiedy oprogramowanie jest dostępne poza organizacją, która je opracowała. Wersje beta oprogramowania mogą być publiczne lub prywatne , w zależności od tego, czy są dostępne publicznie, czy tylko dla ograniczonej grupy odbiorców. Oprogramowanie w wersji beta jest często przydatne do demonstracji i podglądów w organizacji oraz dla potencjalnych klientów. Niektórzy programiści określają ten etap jako podgląd , wydanie podglądu , prototyp , podgląd techniczny lub podgląd technologii ( TP ) lub wczesny dostęp . Od czasu wprowadzenia Windows 8 , Microsoft nazwał oprogramowania wstępnie wydać podgląd zamiast beta . Wszystkie kompilacje przedpremierowe wydane w ramach niejawnego programu testów systemu Windows uruchomionego w 2014 roku są określane jako „kompilacje Insider Preview”. „Beta” może również oznaczać coś w rodzaju kandydata do wydania lub formę ograniczonej czasowo demonstracji lub techniki marketingowej.

Beta testerzy to osoby, które aktywnie zgłaszają problemy z oprogramowaniem w wersji beta. Są to zazwyczaj klienci lub przedstawiciele potencjalnych klientów organizacji tworzącej oprogramowanie. Testerzy wersji beta zazwyczaj bezpłatnie udostępniają swoje usługi, ale często otrzymują wersje testowanego produktu, rabaty na wersję lub inne zachęty.

Bezterminowa wersja beta

Niektóre programy są utrzymywane w tak zwanej wieczystej wersji beta , w której nowe funkcje są stale dodawane do oprogramowania bez ustanawiania ostatecznej „stabilnej” wersji. Ponieważ Internet umożliwił szybką i niedrogą dystrybucję oprogramowania, firmy zaczęły luźniej podchodzić do używania słowa beta . W lutym 2005 roku ZDNet opublikował artykuł o fenomenie wersji beta często zalegającej latami i używanej tak, jakby była na etapie produkcyjnym. Zauważono, że na przykład Gmail i Google News były od dawna w wersji beta, chociaż były powszechnie używane; Google News opuścił wersję beta w styczniu 2006 roku, a następnie Google Apps (obecnie pod nazwą Google Workspace ), w tym Gmail, w lipcu 2009 roku.

Otwarta i zamknięta beta

Deweloperzy mogą wydać zamkniętą wersję beta , zwaną także prywatną lub otwartą , zwaną także publiczną ; Zamknięte wersje beta są udostępniane ograniczonej grupie osób do testów użytkowników na zaproszenie, podczas gdy otwarci beta testerzy pochodzą z większej grupy lub wszystkich zainteresowanych. Prywatna wersja beta może być odpowiednia dla oprogramowania, które jest w stanie zapewnić wartość, ale nie jest gotowe do użycia przez wszystkich ze względu na problemy ze skalowaniem, brak dokumentacji lub wciąż brak istotnych funkcji. Testerzy zgłaszają wszelkie znalezione błędy i czasami sugerują dodatkowe funkcje, które ich zdaniem powinny być dostępne w ostatecznej wersji.

Przykłady dużej publicznej wersji beta:

  • Pierwsi klienci zakupili „pionierską edycję” edytora tekstu WordVision dla IBM PC za 49,95 USD. W 1984 roku Stephen Manes napisał, że „w genialnym zamachu marketingowym Bruce i James Program Publishers zdołali nakłonić ludzi do zapłacenia za przywilej testowania produktu”.
  • We wrześniu 2000 r pudełkowa wersja od firmy Apple „s Mac OS X Public Beta systemu operacyjnego został zwolniony.
  • Wydanie przez firmę Microsoft Community Technology Preview s ( CTP s) dla systemu Windows Vista w okresie od września 2005 do maja 2006.
  • Od 2009 do 2011 Minecraft był w publicznej wersji beta.

Otwarte wersje beta służą podwójnemu celowi: zademonstrowania produktu potencjalnym konsumentom oraz testowania wśród szerokiej bazy użytkowników, które mogą ujawnić ukryte błędy, których znacznie mniejszy zespół testerów może nie znaleźć.

Zwolnienie kandydata

Release Candidate ( RC ), znany również jako „zamiar srebro”, jest to wersja beta z potencjał, aby być stabilny produkt, który jest gotowy do wydania, chyba że istotne błędy pojawiać. Na tym etapie stabilizacji produktu wszystkie funkcje produktu zostały zaprojektowane, zakodowane i przetestowane w jednym lub kilku cyklach beta bez znanych błędów klasy showstopper. Wydanie jest nazywane kodem ukończonym, gdy zespół programistów zgadza się, że do tego wydania nie zostanie dodany żaden całkowicie nowy kod źródłowy. Nadal mogą występować zmiany w kodzie źródłowym w celu naprawienia defektów, zmiany w dokumentacji i plikach danych oraz w kodzie peryferyjnym dla przypadków testowych lub narzędzi. Testerzy beta, jeśli zostaną wybrani prywatnie, będą często uznawani za wykorzystanie kandydata do wydania tak, jakby był to gotowy produkt. Testy beta przeprowadzane są w lokalizacji klienta lub klienta i mają na celu przetestowanie oprogramowania z perspektywy użytkownika.

Wersja stabilna

Zwany także uwolnienie produkcja The uwolnienie stabilny jest ostatnim Release Candidate ( RC ), który przeszedł wszelkie weryfikacje / testów. Pozostałe błędy są uznawane za dopuszczalne. Ta wersja trafia do produkcji. Niektóre domeny (na przykład dystrybucje Linuksa ) mają dwa rodzaje wydań stabilnych: wydania normalne lub wydania stabilne i wydania wsparcia długoterminowego (LTS), które są utrzymywane przez dłuższy czas.

Uwolnienie

Po wydaniu oprogramowanie jest ogólnie znane jako „wersja stabilna”. Formalny termin często zależy od sposobu wydania: nośnik fizyczny, wydanie online lub aplikacja internetowa.

Dopuszczenie do produkcji (RTM)

Termin zwolnienie do produkcji (RTM), znany również jako „going gold”, jest terminem używanym, gdy oprogramowanie jest gotowe do dostarczenia. Ta kompilacja może być podpisana cyfrowo , umożliwiając użytkownikowi końcowemu weryfikację integralności i autentyczności zakupionego oprogramowania. Kopia kompilacji RTM znanej jako „ złoty master ” lub GM jest wysyłana w celu masowego powielania lub replikacji dysku, jeśli ma to zastosowanie. Ta terminologia została zaczerpnięta z branży nagrań audio, a konkretnie z procesu masteringu . RTM poprzedza ogólną dostępność (GA), gdy produkt zostanie wprowadzony do publicznej wiadomości. Golden Master build (GM) to zazwyczaj ostateczna wersja oprogramowania w fazie beta dla programistów. Zazwyczaj w przypadku iOS jest to ostateczna wersja przed głównym wydaniem, jednak było kilka wyjątków.

Jest zwykle używany w niektórych kontekstach oprogramowania do masowej produkcji detalicznej — w przeciwieństwie do specjalistycznej produkcji oprogramowania lub projektu w produkcji i dystrybucji komercyjnej lub rządowej — gdzie oprogramowanie jest sprzedawane jako część pakietu w powiązanej sprzedaży sprzętu komputerowego i zazwyczaj tam, gdzie oprogramowanie i powiązany sprzęt mają być ostatecznie dostępne i sprzedawane masowo/publicznie w sklepach detalicznych, aby wskazać, że oprogramowanie osiągnęło określony poziom jakości i jest gotowe do masowej dystrybucji detalicznej. RTM może również oznaczać w innych kontekstach, że oprogramowanie zostało dostarczone lub wydane klientowi lub klientowi w celu instalacji lub dystrybucji na powiązane komputery lub maszyny użytkowników końcowych. Termin ten nie definiuje mechanizmu dostarczania ani wielkości; stwierdza tylko, że jakość jest wystarczająca do masowej dystrybucji. Materiał dostarczany przez organizację inżynierską ma często postać złotego nośnika głównego używanego do powielania lub tworzenia obrazu dla sieci.

Ogólna dostępność (GA)

Kamienie milowe w cyklu życia produktu: ogólna dostępność (GA), ogłoszenie końca cyklu życia (EOLA), data ostatniego zamówienia (LOD) i koniec cyklu życia (EOL)

Ogólna dostępność ( GA ) to etap marketingowy, na którym wszystkie niezbędne działania komercjalizacji zostały zakończone i produkt oprogramowania jest dostępny do zakupu, jednak w zależności od języka, regionu, dostępności elektronicznej lub medialnej. Działania związane z komercjalizacją mogą obejmować testy bezpieczeństwa i zgodności, a także lokalizację i dostępność na całym świecie. Czas między RTM a GA może w niektórych przypadkach wynosić od tygodnia do miesięcy, zanim będzie można zadeklarować ogólnie dostępne wydanie, ze względu na czas potrzebny do zakończenia wszystkich działań komercjalizacyjnych wymaganych przez GA. Na tym etapie oprogramowanie „uruchomiło”.

Publikacja w sieci (RTW)

Release to the Web ( RTW ) lub Web release to sposób dostarczania oprogramowania, który wykorzystuje Internet do dystrybucji. W tego typu mechanizmie zwalniającym producent nie produkuje żadnych nośników fizycznych. Publikacje internetowe stają się coraz bardziej powszechne wraz ze wzrostem korzystania z Internetu.

Wsparcie

W okresie objętym wsparciem oprogramowanie jest czasami poddawane wydaniom serwisowym, poprawkom lub dodatkom serwisowym , czasami nazywanym także „wydaniem tymczasowym” lub „wydaniem konserwacyjnym” (MR). Na przykład firma Microsoft wydała trzy główne dodatki Service Pack dla 32-bitowych wersji systemu Windows XP i dwa dodatki Service Pack dla wersji 64-bitowych . Takie wydania usług zawierają zbiór aktualizacji, poprawek i ulepszeń, dostarczanych w postaci pojedynczego pakietu do zainstalowania. Mogą również wdrażać nowe funkcje. Niektóre programy są wydawane z oczekiwaniem regularnego wsparcia. Klasy oprogramowania, które zazwyczaj wymagają wydłużonego wsparcia jako norma, obejmują pakiety antywirusowe i gry online dla wielu graczy . Kontynuując ten przykład Windows XP, Microsoft oferował płatne aktualizacje przez kolejne pięć lat po zakończeniu rozszerzonego wsparcia. Oznacza to, że wsparcie zakończyło się 8 kwietnia 2019 r.

Koniec życia

Gdy oprogramowanie nie jest już sprzedawane ani wspierane, mówi się, że produkt osiągnął koniec okresu eksploatacji, został wycofany z produkcji, wycofany, przestarzały, porzucony lub przestarzały, ale lojalność użytkowników może trwać przez pewien czas, nawet długo po jego zakończeniu. platforma jest przestarzała — np. Atari ST i Sinclair ZX Spectrum .

Po upływie daty wycofania z eksploatacji programista zwykle nie wdraża żadnych nowych funkcji, nie naprawia istniejących defektów, błędów lub luk w zabezpieczeniach (znanych przed tą datą lub nie) ani nie zapewnia wsparcia dla produktu. Jeśli programista sobie tego życzy, może udostępnić kod źródłowy, dzięki czemu platforma będzie ponownie działać i będzie utrzymywana przez wolontariuszy.

Zobacz też

Bibliografia

Bibliografia

  • Ciągłe dostarczanie: Niezawodne wydania oprogramowania dzięki automatyzacji budowania, testowania i wdrażania autorstwa Jeza Humble'a, Davida Farleya; ISBN  0-321-60191-2