Topic ngày hôm nay nói đến sự khác nhau giữa Retesting và Regression test.
Retest có nghĩa là kiểm tra lại. Khi bạn lặp lại một kiểm thử thì đó chính là retest. Bạn có thể test lại chức năng của phiên bản hiện tại, một bug đã fix, chức năng của phiên bản trước đó hay một test case bạn vừa thực hiện, vv…
Nếu bạn vẫn suy nghĩ tại sao lại phải làm vậy thì hãy theo dõi một vài lý do sau:
Tôi chắc chắn bạn đã nắm được điều này.
Retesting là khi bạn lặp lại một kiểm thử cho bầt kỳ một lý do nào. Đây là một trong những điều kiện gần đúng với định nghĩa của nó.
Phần mềm được nâng cấp, sẽ có những phiên bản mới hơn phiên bản hiện tại, có những tính năng được thêm mới, có những tính năng được mở rộng,vv… Tuy nhiên, theo thời gian điều này có thể dẫn đến sự mất ổn định của ứng dụng.
Hãy tưởng tượng bạn xây dựng một toà tháp khối bằng cách thêm một block lên trên một block khác. Bạn không có thời gian để kiên cố cho phần chân tháp, nó sẽ không tồn tại được lâu dài đến khi toàn tháp bị phá huỷ có phải không?
Cứ như vậy, bạn sẽ phải kiểm tra mức độ tin cậy và tính ổn định của phần mềm. Để làm được như vậy thì bạn cần phải retest lại phần mềm. Đó là cách duy nhất.
Regression là một dạng của Retest. Những đặc trưng của “Why” và “When” là những điểm khác biệt giữa test hồi quy so với retest.
When: khi nào chúng ta thực hiện retest? Khi phần mềm trải qua một sự thay đổi.
Why: tại sao chúng ta phải retest? Để đảm bảo việc thêm mới và thay đổi các tính năng không làm ảnh hưởng đến sự ổn định của các chức năng cũ. Regression là phần thực hiện chung và được yêu cầu khi:
Note: Kiểm thử hồi quy toàn bộ ( Exhaustive regression testing) là không thể thực hiện mặc dù rất mong muốn.
Đó là lý do tại sao phải phân tích Regression trước khi bạn nhảy luôn vào thực hiện kiểm thử. Đây là bước quan trọng liên quan đến việc quyết định cần phải thực hiện bao nhiêu Regression cho một ứng dụng.
Thực hiện kiểm thử hồi quy phụ thuộc vào những mức độ nào?
Tester làm thế nào để xác định được mức độ của Regression?
Tùy thuộc vào các nhân tố khi hoạt động, một tập hợp kiểm thử có thể thực hiện theo một trong những follow sau:
Unit regression nghĩa là bạn chỉ cần thực hiện retest đối với sự thay đổi ở module hoặc vùng nào đó của ứng dụng.
Partial regression nghĩa là bạn sẽ thực hiện retest đối với sự thay đổi ở các module kèm theo những tương tác với nó.
Full regression là bạn sẽ phải kiểm tra lại toàn bộ ứng dụng, không phụ thuộc vào vị trí của sự thay đổi.
Điều này dựa trên tình hình (thời gian và nguồn lực sẵn có), mức độ nghiêm trọng của sự thay đổi (mức độ ảnh hưởng của nó), đầu vào của deverlopver, vv… Sẽ hiệu quả hơn khi bạn lựa chọn đúng một bộ kiểm thử so với việc kiểm thử toàn bộ.
Những quan niệm sai lầm về Regression Testing:
Có rất nhiều quan niệm sai lầm về Regression Testing:
#1) Regression luôn luôn được thực hiện một cách tự động: Không, Regression cũng được thực hiện bằng cách thủ công.
Lưu ý rằng Regression là một ứng viên hoàn hảo cho kiểm thử tự động. Mức độ của sự lặp đi lặp lại gây tốn thời gian và có thể dẫn đến sự nhàm chán. Ngoài ra những validation quan trọng có thể bị bỏ sót. Kiểm thử tự động là một sự lựa chọn đáng tin cậy, nhanh chóng và hiệu quả.
#2) Regression là không bao giờ hoàn thành: Đúng, nhưng không hoàn toàn. Theo những gì tôi nghĩ thì kiểm thử hồi quy toàn bộ có thể là không thể. Nhưng kiểm thử hồi quy toàn bộ có thể không quá cần thiết.
Giả sử rằng bạn đã thay đổi một lỗi chính tả trên trang chủ. Việc sửa chữa này là rất nhỏ. Nó cũng được độc lập với các khu vực khác của ứng dụng. Vậy, một quá trình retest đơn giản của tính năng này sẽ làm gì. Không cần thực hiện hồi quy tính năng cũ xung quanh trang chủ.
#3) Nó là không cần thiết khi bạn có nhiều công việc chồng chéo nhau trong cùng một khoảng thời gian: Không đúng. Nếu không thực hiện hồi quy sẽ dấn đến việc mất độ tin cậy trong sản phẩm. Bạn sẽ không bao giờ biết được những kỳ vọng đến từ những kịch bản khác nhau của end user.
#4) Nó chính là việc chạy hết từng test case riêng lẻ của bản release trước đó: Không nên chạy lại toàn bộ test case của bản trước đó. Cần lựa chọn đúng những test case phù hợp để test lại. Chiến lược chọn các test case là mấu chốt của vấn đề. Hiểu được sự thay đổi và lựa chọn những test case phù hợp.
Đúng vậy, đó chính là chi tiết của Retesting và Regression Test.
Bây giờ, hãy thực hiện so sánh:
Sự giống nhau giữa Retesting và Regression Test:
Sự khác nhau giữa Retesting và Regression Test:
Cuối cùng, để ghi nhớ khái niệm này:
Bạn nói rằng có một Test case XYZ mà kết quả có một khiếm khuyết với là ID 120. Khiếm khuyết này được fix trong bản release tiếp theo. Bạn muốn retest test case XYZ và kiểm thử hồi quy các chức năng xung quanh nó. Hồi quy là để đảm bảo rằng tất cả mọi thứ không bị ảnh hưởng sau khi sửa lỗi 120. Retest là để xác định khiếm khuyết đã được sửa chữa.
Vì vậy, không phải Retest cũng không phải Regression, nhưng sự kết hợp giữa chúng tạo nên một bộ đôi mạnh mẽ.
Tài liệu tham khảo: http://www.softwaretestinghelp.com/retest-vs-regression-testing/
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE