Alpha và Beta testing

939

Alpha testing là gì?

Alpha testing là một dạng của acceptance testing; Thực hiện để xác định tất cả các vấn đề/ lỗi có thể xảy ra trước khi phát hành sản phẩm đến tay người dùng. Trọng tâm của việc kiểm thử này là để mô phỏng người dùng thực – Real users bằng cách sử dụng các kỹ thuật Black box và white box. Mục đích là để thực hiện các nhiệm vụ mà một người sử dụng điển hình có thể thực hiện. Alpha testing được thực hiện trong môi trường lab và thường các tester là nhân viên nội bộ của tổ chức, công ty. Kiểu kiểm thử này được gọi là alpha vì nó được thực hiện sớm, gần cuối của sự phát triển của phần mềm, và trước khi thử nghiệm beta.


AlphaBetaTestingPhase.png

Beta testing là gì?

Beta test một phần mềm được thực hiện bởi “người sử dụng thật – Real users” trong một “môi trường thực tế – Real environment” và có thể được coi là một hình thức acceptance testing bởi người dùng ngoài.
Phiên bản beta của phần mềm chỉ được phát hành/công bố cho một số lượng hạn chế người dùng cuối để lấy thông tin phản hồi về chất lượng sản phẩm.
Beta test làm giảm nguy cơ thất bại của sản phẩm và tăng độ tin tưởng vào chất lượng của nó thông qua các ý kiến nhận xét, đánh giá từ khách hàng.
Đây là bước kiểm tra cuối cùng trước khi chuyển một phần mềm đến tay khách hàng. Lợi thế lớn nhất của beta test là phản hồi trực tiếp từ phía người dùng cuối, nó giúp kiểm tra phần mềm trong môi trường real time.

So sánh Alpha testing và Beta test.

Alpha Testing

Beta Testing

Alpha testing được thực hiện bởi các tester là nhân viên nội bộ của tổ chức, công ty. Beta testing được thực hiện bởi khách hàng hoặc là người dùng cuối không phải là nhân viên của tổ chức, công ty.
Alpha Testing được thực hiện tại nơi phát triển phần mềm. Beta testing được thực hiện tại địa điểm của khách hàng hoặc người dùng cuối đang test phần mềm.
Độ tin cậy và bảo mật không quá chú trọng trong Alpha testing. Độ tin cậy, bảo mật và độ bền bỉ được test kỹ.
Alpha testing bao gồm kỹ thuật test hộp trắng và hộp đen. Beta Testing thường chỉ là test hộp đen.
Alpha testing đòi hỏi môi trường test phải là môi trường lab hoặc môi trường kiểm thử. Beta testing không yêu cầu bất kỳ môi trường thử nghiệm nào. Phần mềm được cung cấp public và là môi trường thời gian thực.
Alpha testing đòi hỏi phải có chu kỳ test dài. Beta testing thường chỉ diễn ra trong vòng vài tuần.
Vấn đề quan trọng hoặc các bản sửa lỗi có thể giải quyết bởi lập trình viên ngay trong Alpha testing. Hầu hết các vấn đề hoặc các thông tin phản hồi được thu thập từ các ý kiến đánh giá, nhận xét trong quá trình Beta test sẽ đượng thực hiện trong các phiên bản tương lai của sản phẩm.
Alpha testing là để đảm bảo chất lượng sản phẩm trước khi chuyển sang Beta test. Beta testing cũng tập trung vào chất lượng của sản phẩm, nhưng tập hợp người dùng sử dụng sâu vào sản phẩm và đảm bảo rằng sản phẩm đã sẵn sàng cho người dùng thời gian thực.

Compare.jpg

Screenshot from 2016-06-21 11:20:10.png

Các kiểu Beta testing

Có nhiều kiểu Beta test như sau:

  • Traditional Beta testing : Sản phẩm được phân phối đến những nơi đã định sẵn, tập hợp tất cả dữ liệu của các khía cạnh liên quan. Dữ liệu này có thể dùng để cải tiến sản phẩm phần mềm.
  • Public Beta Testing : Sản phẩm được giới thiệu đến với mọi người thông qua các kênh online và từ đó thu thập các ý kiến nhận xét, đánh giá của người sử dụng. Dựa trên các ý kiến đó để cải tiến sản phẩm. Ví dụ, Microsoft đã tiến hành Beta test lớn nhất đối với sự ra đời của Windown 8 trước khi chính thức cho ra mắt nó.
  • Technical Beta Testing: Thu thập các nhận xét, đánh giá từ nhân viên bằng cách để nhân viên nội bộ công ty, tổ chức dùng thử sản phẩm.
  • Focused Beta: Sản phẩm được đưa ra thị trường để thu thập thông tin phản hồi về tính năng quan trọng của nó. Ví dụ, chức năng quan trọng của phần mềm.
  • Post release Beta: Sản phẩm được đưa ra thị trường và các dữ liệu được thu thập để cải thiện cho các phiên bản tương lai của sản phẩm.

Tiêu chuẩn đầu vào và đầu ra.

Pre-Alpha: Phần mềm là prototype. UI đã hoàn tất. Nhưng không phải tất cả các tính năng được hoàn thành. Ở giai đoạn này, phần mềm không được published.

Alpha: Phần mềm đang phát triển và được kiểm tra nội bộ về các lỗi / sự cố

Beta: Phần mềm ổn định và được phát hành cho một tập người dùng hạn chế. Mục tiêu là để có được phản hồi của khách hàng về sản phẩm và thay đổi phần mềm tương ứng

Release Candidate (RC): Dựa trên phản hồi của Beta Test, bạn thực hiện các thay đổi đối với phần mềm và muốn kiểm tra các bản sửa lỗi. Ở giai đoạn này, bạn không muốn thực hiện các thay đổi căn bản về chức năng mà chỉ kiểm tra các lỗi. RC cũng được đưa ra public

Release: Tất cả các công việc, phần mềm được phát hành.

Lưu ý: Trên đây là định nghĩa chuẩn về các giai đoạn Thử nghiệm nhưng để thu hút về marketing, các công ty thường kết hợp các giai đoạn như “pre-alpha beta”, “pre-beta”, v.v.

Tiêu chuẩn đầu vào của Alpha testing

  • Tài liệu đặc tả yêu cầu phần mềm hoặc đặc tả yêu cầu Business.
  • Testcase cho tất cả các yêu cầu.
  • Testing team có kiến th ức tốt về các ứng dụng phần mềm.
  • Thiết lập môi trường test Lab
  • QA đã sẵn sàng build để thực hiện test.
  • Test Management tool để tải testcase và test (Test tự động).
  • Sử dụng Traceability Matrix để chắc chắn với mỗi yêu cầu về design sẽ có ít nhất 1 testcase kiểm định nó.

Tiêu chuẩn đầu ra của Alpha testing

  • Tất cả testcase đã được thực hiện và pass.
  • Tất cả các bug nghiêm trọng phải được sửa và đóng.
  • Bàn giao báo cáo về quá trình test.
  • Chắc chắn không có một chức năng mới nào được thêm vào.
  • Kết thúc Alpha testing.

Tiêu chuẩn đầu vào của Beta testing

  • Kết thúc phần tài liệu của quá trình Alpha testing.
  • Sẵn sàng cho quá trình Beta testing.
  • Tạo dựng môi trường, chuẩn bị cho sự ra mắt của sản phẩm.
  • Sử dụng tool để nắm bắt được bug xảy ra trong quá trình real time.

Tiêu chuẩn đầu ra của Beta testing

  • Tất cả các vấn đề/ Bug lớn hay nhỏ cũng phải được chắc chắn là đã được giải quyết.
  • Chuẩn bị báo cáo từ những ý kiến phản hồi của người dùng.
  • Bàn giao báo cáo của quá trình Beta test.

Ưu và nhược điểm:

maxresdefault.jpg

Ưu điểm của Beta testing:

  • Giảm rủi ro cho sản phẩm thông qua việc xác nhận của người dùng.
  • Beta test cho phép kiểm tra trên hệ thống cơ sở hạ tầng trước khi được giao cho khách hàng.
  • Cải thiện chất lượng sản phẩm thông qua phản hồi của người dùng.
  • Chi phí tương đương với phương pháp thu thập dữ liệu.
  • Tạo ra thiện cảm với người dùng và tăng sự thỏa mãn của người dùng.

Nhược điểm của kiểm thử Beta testing:

  • Quản lý việc kiểm thử là một vấn đề. So với các phương pháp kiểm thử thường dùng trong môi trường có thể kiểm soát được khác, kiểm thử beta được thực hiện trong thế giới thực nơi mà ta rất khó có thể kiểm soát được.
  • Tìm ra đúng người dùng và duy trì sự tham gia của họ là một thách thức.

Ưu điểm của Alpha testing:

  • Cung cấp cách nhìn nhận tốt hơn về độ tin cậy của phần mềm trong giai đoạn đầu .
  • Giúp mô phỏng các hành vi thực của người dùng và mô phỏng môi trường.
  • Phát hiện nhiều lỗi nghiêm trọng
  • Có thể phát hiện sớm các lỗi về thiết kế và chức năng.

Nhược điểm của Alpha testing:

  • Các chức năng không thể được kiểm tra vì phần mềm vẫn đang trong giai đoạn phát triển. Đôi khi developer và tester không hài lòng với kết quả của kiểm thử alpha.

Những sai lầm khi Alpha và Beta testing.

– Sai lầm: Alpha và Beta test được thực hiện quá muộn nên lợi ích nó mang lại sẽ không được như mong muốn.

Thực tế: Alpha và Beta test giúp làm nổi bật vấn đề rất quan trọng của các ứng dụng phần mềm và cung cấp thông tin cần thiết từ phản hồi người dùng.

– Sai lầm: Alpha và Beta test có cách thức test giống nhau nhưng kịch bản test khác nhau.

Thực tế: Alpha test trong môi trường Lab, Beta test được người dùng thực tế test trong môi trường thực nhưng thực chất có cách thức và kịch bản test giống nhau.

– Sai lầm: Beta test thực hiện khó và tốn thời gian.
Thực tế: Tuy Beta test thực hiện mất nhiều thời gian và kỹ năng nhưng những thông tin và phàn hồi mà nó đưa lại thì vô giá.

– Sai lầm: Beta test đem lại ít thông tin hoặc thông tin không hữu ích.

Thực tế: Một quá trình Beta test có thể mang lại cả tá thông tin hữu ích từ phía phản hồi của khách hàng, trong khi để đạt được những thông tin đó trong môi trường Lab thì quá khó và mất nhiều thời gian.

Kết luận.

Vấn đề không còn là bao nhiêu quy trình test được thực hiện, bao nhiêu Bugs đã được giải quyết, phần mềm của bạn không thực tế nếu người dùng không thích nó. Beta testing nhằm cung cấp thông tin từ những phản hồi của người dùng thực.

Alpha testing giúp bạn giả lập môi trường thực để kiểm thử phần mềm trước khi đến với quá trình Beta testting. Alpha và Beta testing không thể thiếu vòng đời phát triển phần mềm.

Nguồn: http://www.guru99.com/alpha-beta-testing-demystified.html.

Người dịch: Trần Thị Trang

SHARE