Vòng đời phát hành phần mềm

Một vòng đời phát hành phần mềm là một sự tổng hợp các pha phát triển phần mềm từ giai đoạn sơ khai cho đến giai đoạn hoàn chỉnh, và cuối cùng là công bố phần mềm đó hoặc phiên bản nâng cấp mới. Việc chia thành nhiều giai đoạn như vậy giúp cho việc quản lý, sửa lỗi và bảo trì phần mềm dễ dàng hơn.

Tiền alpha

Đây là giai đoạn sơ khai nhất, bao gồm những hoạt động được thực hiện trước khi vào giai đoạn kiểm thử phần mềm. Những hoạt động trong giai đoạn này gồm có phân tích yêu cầu, thiết kế phần mềm, phát triển phần mềm, kiểm thử đơn vị (unit testing).

Alpha

Giai đoạn này là pha đầu tiên bắt đầu kiểm thử phần mềm trong vòng đời phát hành (alpha là ký tự đầu tiên trong bảng chữ cái Hy Lạp, được sử dụng như số 1). Các kĩ thuật kiểm thử chủ yếu là hộp trắng (white box testing). Việc phê duyệt (validation) (nếu có) bằng các kĩ thuật hộp đen hoặc hộp xám sẽ được tiến hành bởi những đội ngũ kiểm thử khác.
Các phần mềm trong giai đoạn này đều chưa hoàn chỉnh và có thể gây ra mất dữ liệu hoặc crash, nên những phiên bản phần mềm như vậy thường không được công bố rộng rãi mà chỉ khuyến khích bộ phận kiểm thử hay những người tình nguyện kiểm thử sử dụng nhằm tìm kiếm lỗi. Tuy nhiên, đối với những phần mềm mã nguồn mở thì có thể có một chút khác biệt. Những phiên bản alpha của chúng thường được phân phối công khai và thường kèm theo mã nguồn của phần mềm đó.
Giai đoạn alpha luôn luôn được kết thúc bằng việc không bổ sung thêm chức năng nào nữa (feature freeze), như vậy có thể nói phần mềm sau giai đoạn này là "đã hoàn chỉnh về chức năng" (feature complete).

Beta

Trong hệ thống bảng chữ cái Hy Lạp thì Beta đứng liền sau Alpha nên được xem là pha tiếp theo sau giai đoạn hoàn chỉnh các chức năng. Từ giai đoạn này trờ đi, các chức năng sẽ không được thêm mới vào nữa, và những chức năng mới được đề xuất bổ sung sẽ được đưa vào vòng đời mới sau khi kết thúc vòng đời hiện tại. Phần mềm trong pha này vẫn còn nhiều lỗi (bugs), cũng như các vấn đề về hiệu năng.
Khác với giai đoạn alpha, phần mềm ở pha này được xem là đủ ổn định (tuy vẫn chưa thể ổn định để sử dụng hằng ngày hoặc trong môi trường công việc) để công bố rộng rãi, người dùng có thể truy cập công khai và sử dụng nếu muốn. Những người sử dụng phần mềm beta với mục đích kiểm tra phát hiện lỗi và báo cáo lỗi cho nhà phát triển được gọi là beta testers.
Một số thuật ngữ khác thường được dùng để chỉ giai đoạn beta như preview, prototype, techical preview (TP), hoặc early access.

Release Candidate

Release Candidate hay thường được viết tắt là RC là giai đoạn hậu beta, trong đó phần mềm sau khi trải qua các hoạt động phát hiện lỗi và sửa lỗi ở beta đã trở nên ổn định hơn, và có thể chuyển sang giai đoạn phát hành (release/final) nếu không phát hiện thêm lỗi nghiêm trọng nào nữa. Về mặt kĩ thuật, phần mềm RC được xem như đã có những thiết kế đầy đủ về các tính năng, đã hoàn thành việc viết mã và đã được áp dụng các kĩ thuật kiểm thử khác nhau, nên sẽ không có sự thay đổi nào về mã nguồn, tài liệu hay dữ liệu trừ việc sửa lỗi.
Nhiều phần mềm có thể được dự đoán trước phiên bản cuối cùng của phần mềm khi phát hành nhờ vào sự chuyển tiếp từ RC sang Final (từ phiên bản phần mềm hiện tại của RC nếu không có sự thay đổi về mã nguồn nào thì đó cũng chính là phiên bản được phát hành vào thời điểm được định trong kế hoạch).