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.
Người dùng máy tính rất có thể đã quen với giai đoạn beta, vì các sản phẩm phần mềm đôi khi được quảng cáo công khai là đang ở dạng beta để giảm kỳ vọng của người dùng về độ tin cậy của chúng.[1]
Các giai đoạn trong phát triể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.[2]
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.
Open và closed beta
Các nhà phát triển có thể phát hành ''bản beta đóng'', còn được gọi là ''bản beta riêng tư'' hoặc ''bản beta mở'', còn được gọi là ''bản beta công khai''; phiên bản beta kín được phát hành cho một nhóm cá nhân bị hạn chế để người dùng thử nghiệm theo lời mời, trong khi những người thử nghiệm beta mở thuộc một nhóm lớn hơn hoặc bất kỳ ai quan tâm. Bản beta riêng tư có thể phù hợp với phần mềm có khả năng mang lại giá trị, nhưng chưa sẵn sàng để mọi người sử dụng do các vấn đề về quy mô, thiếu tài liệu hoặc vẫn còn thiếu các tính năng quan trọng. Người kiểm tra báo cáo bất kỳ lỗi nào mà họ tìm thấy và đôi khi đề xuất các tính năng bổ sung mà họ cho rằng nên có trong phiên bản cuối cùng.
Các bản beta mở phục vụ với mục đích kép là giới thiệu sản phẩm cho người dùng tiềm năng và thử nghiệm giữa một lượng lớn người dùng có khả năng dẫn đến các lỗi nhẹ mà nhóm thử nghiệm nhỏ hơn nhiều có thể không tìm thấy
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).
Bản phát hành ổn định
Còn được gọi là bản phát hành sản xuất, bản phát hành ổn định là Release Candidate cuối cùng (RC) sau khi đã vượt qua tất cả các xác minh/thử nghiệm. Các lỗi còn lại được coi là có thể chấp nhận. Bản phát hành này sẽ được đưa vào sản xuất. Một số miền (ví dụ: Bản phân phối Linux), có hai loại bản phát hành ổn định: bản phát hành bình thường hoặc ổn định và bản phát hành hỗ trợ dài hạn (LTS) được duy trì trong một khoảng thời gian dài hơn.
Xem thêm
Tham khảo
- ^ Lapidos, Juliet (7 tháng 7 năm 2009). “Why Google kept Gmail in "beta" for so many years”. Slate Magazine (bằng tiếng Anh). Truy cập ngày 21 tháng 3 năm 2022.
- ^ "Encyclopedia definition of alpha version". PC Magazine. Archived from the original on 2011-04-27. Truy cập 2011-01-12.
Liên kết ngoài
- Free Software Project Management HOWTO
- Software Release Decisions Lưu trữ 2011-04-30 tại Wayback Machine
- A Methodology to Support Software Release Decisions
- Software Testing Life Cycle
- Semantic versioning
Tham khảo thư loại
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble, David Farley; ISBN 0-321-60191-2