Confirmation Testing và Regression Testing là 2 thuật ngữ khá quen thuộc trong nghề nhưng khi nhắc tới nó chắc hẳn nhiều người sẽ nghĩ confirmation test là hoạt động test bug còn regression test là việc kiểm tra xem quá trình test có sản sinh ra bug mới hay không. Điều này cũng đúng 1 phần nhưng chưa đủ, theo dõi tiếp theo trong bài để cập nhật đầy đủ thông tin về sự khác nhau của Confirmation Testing và Regression Testing nhé!
Trước khi đi vào tìm hiểu sự khác nhau giữa Confirmation Testing và Regression Testing thì hãy cùng Testerpro tìm hiểu về các thông tin có liên quan tới 2 kỹ thuật test Confirmation Testing và Regression Testing trước nhé!
Confirmation Testing
Khái niệm
Confirmation Testing hay còn gọi là Retesting (kiểm thử lại) là một trong những kỹ thuật kiểm thử giúp xác nhận phần mềm đã hoàn thiện không có lỗi từ đó làm tăng chất lượng và hiệu quả của ứng dụng.
Hiểu đơn giản thì Confirmation Testing chỉ được thực hiện ngay khi quá trình kiểm thử chức năng kết thúc hay API đã được sửa lỗi với mục đích xác nhận lỗi đó đã được fix thành công và hiệu suất hoạt động đúng theo mong đợi ban đầu.
Thông thường Confirmation Testing sẽ hoạt động cố định trong phạm vi bất kỳ và nó chỉ tập trung vào đối tượng cần test. Tuy nhiên để có thể nhanh chóng tìm ra lỗi khi thực hiện kiểm thử Confirmation Testing thì tester cần thao tác theo đúng quy trình thực hiện trước đó.
Lợi ích của Confirmation Testing
- Là kỹ thuật kiểm thử theo kế hoạch vì vậy cần lên kế hoạch kiểm thử và đòi hỏi sự cố gắng từ nhóm tham gia phát triển dự án.
- Sử dụng các trường hợp test tương tự để kiểm tra lỗi được báo cáo, tester không cần mất quá nhiều thời gian trong việc viết các trường hợp kiểm thử từ đó khối lượng công việc cũng giảm đi đáng kể.
- Thực hiện Confirmation Testing sẽ giúp tăng chất lượng và tăng tỷ lệ thành công cho ứng dụng thông qua việc xác nhận và kiểm tra lại chức năng của ứng dụng như 1 ứng dụng hoàn thiện. Thậm chí nó có thể đi vào hoạt động để phục vụ các yêu cầu từ phía người dùng.
- Confirmation Testing luôn được thực hiện trước khi kiểm thử hồi quy diễn ra bởi thực hiện Confirmation Testing nhằm mục đích xác nhận sự ổn định của mô – đun cũ và nó không bị ảnh hưởng ngay cả khi thêm mới hoặc sửa các mô đun tương tự.
- Giúp người thực hiện kiểm tra lỗi đã được sửa hay chưa.
Nên sử dụng Confirmation Testing khi nào?
Confirmation Testing rất quan trọng nhưng tùy vào từng dự án bạn chỉ nên thực hiện kiểm thử xác nhận khi:
Lỗi đã được sửa
Trong khi kiểm thử, tester sẽ tiến hành kiểm thử và tìm lỗi, khi lỗi phát hiện thì tester sẽ có trách nhiệm báo cáo bên phụ trách có liên quan để sửa và fix lỗi. Và cuối cùng khi fix bug thành công, Confirmation Testing sẽ được thực hiện để kiểm tra lại trạng thái của ứng dụng.
Thực hiện trước khi kiểm thử Regression
Nó luôn được thực hiện trước khi test hồi quy bởi Confirmation Testing nhằm mục đích kiểm tra lỗi và xác nhận sửa lỗi, sau đó mới thực hiện regression để xác nhận lại hiệu suất của phần mềm sau khi đã sửa lỗi.
Phần mềm cần tỷ lệ thành công cao
Nếu khách hàng yêu cầu dự án hoàn thiện với chất lượng và thành công cao thì họ chắc chắn sẽ bỏ chi phí để thực hiện những kiểm tra tốt nhất dành cho phần mềm đó. Vì thế thực hiện Confirmation Testing cũng chính là 1 trong những cách giúp nâng cao sự hoàn chỉnh của phần mềm.
Lỗi đã bị từ chối
Lỗi được phát hiện sau khi bài kết thúc quá trình test và trong trường hợp nó bị từ chối bởi nhóm dev thì quá trình thực hiện Confirmation Testing sẽ bắt đầu để fix và tái tạo lại phần chức năng không bị ảnh hưởng.
Các bước thực hiện Confirmation Testing hiệu quả nhất
Nếu bạn chỉ thực hiện Confirmation Testing trên bản code mới thì điều này đồng nghĩa với việc hệ thống chỉ hiển thị “không thể tái hiện” được trong môi trường này. Do đó để tăng độ thành công và hiệu quả khi thực hiện phương pháp test này bạn cần thực hiện theo bước cơ bản sau:
- Tái hiện toàn bộ lỗi trong môi trường test hiện tại.
- Sử dụng Deloy bản build mới trong môi trường bất kỳ.
- Tiến hành lại các bước tái hiện lỗi trong con bug
- Xác nhận lại việc fix lỗi đã hoàn thành.
- Cập nhật trạng lỗi theo kết quả test.
- Cập nhật tất cả các testcase có liên quan.
Ưu và nhược điểm của Confirmation Testing
Ưu điểm
Tăng hiệu suất ứng dụng
Thực hiện Confirmation Testing sẽ làm tăng hiệu suất của ứng dụng bởi khi này khả năng xảy ra lỗi trong ứng dụng cực thấp. Bên cạnh đó, mục đích chính của Confirmation Testing là kiểm thử phần mềm và xem lại lỗi đã được xác nhận hay chưa từ đó làm chất lượng và hiệu quả phần mềm tăng.
Phần mềm không lỗi
Những phần mềm được thực hiện Confirmation Testing thường không lỗi hoặc có rất ít lỗi xảy ra bởi quá trình thực hiện được kiểm tra lặp lại nhiều lần cho tới khi toàn bộ lỗi đã được fix.
Phạm vi
Phạm vi kiểm thử cố định và không ảnh hưởng bởi bất cứ yếu tố nào.
Sử dụng với lần test tương tự
Không cần viết quá nhiều trường hợp kiểm thử, với Confirmation Testing bạn chỉ cần viết 1 lần và sử dụng cho lần test tương tự.
Nhược điểm
Tốn thời gian và chi phí
Thực hiện Confirmation Testing không phải ai cũng có thể làm bởi nó cần rất nhiều thời gian, nguồn lực cũng như chi phí cho mỗi lần test.
Thời gian fix lỗi
Để có thể sửa lỗi, nhóm dev của dự án phải xây dựng nhiều kịch bản test cho tới khi lỗi được fix thành công, điều này đòi hỏi sự cố gắng và kiên trì đôi khi sẽ khiến nhóm phát triển cảm thấy nhàm chán.
Lỗi hành vi
Khi xây dựng nhiều kịch bản test khác nhau sẽ làm ảnh hưởng tới chức năng liên quan, thậm chí chúng có thể hoạt động 1 cách bất thường, vì vậy cần thêm nhiều thời gian để sửa chữa và thay đổi chúng.
Quá trình thực hiện theo cách test thủ công
Với Confirmation Testing bạn không thể thực hiện test tự động mà toàn bộ quá trình test phải được thực hiện theo cách thủ công. Vì khi thực hiện theo automation test bạn sẽ không thể chắc chắn việc fix lỗi đã được sửa hoàn toàn hay chưa?
Chính vì thế, quá trình thực hiện Confirmation Testing chỉ được làm theo cách truyền thống điều này sẽ làm mất nhiều thời gian và công sức test.
Regression Testing
Khái niệm
Regression Testing (kiểm thử hồi quy) là phương pháp kiểm thử nhằm mục đích kiểm tra quá trình sửa lỗi, cập nhật chức năng mới không làm ảnh hưởng tới phần lỗi được fix và không sản sinh thêm lỗi mới.
Ví dụ: Kiểm tra sự thay đổi về yêu cầu, kiểm tra hệ thống máy chủ, hệ điều hành trong điện thoại nhằm đảm bảo các chức năng này vẫn hoạt động ổn định.
Thời điểm nên sử dụng Regression Testing
Ngay sau khi kiểm thử xác nhận hoàn tất thì Regression Testing sẽ bắt đầu. Khi này phạm vi kiểm thử “rộng hay hẹp” sẽ tùy thuộc vào thời gian kiểm thử.
Bên cạnh đó, Regression Testing còn được sử dụng khi:
- Khi yêu cầu có sự thay đổi.
- Hệ điều hành của server hoặc nâng cấp thiết bị.
- Nâng cấp lỗi có trong hệ thống.
Các bước thực hiện test Regression Testing hiệu quả
Hiện nay có 3 bước cơ bản để thực hiện Regression Testing hiệu quả nhất:
Xác định rõ phạm vi cần test
Để tăng độ hiệu quả của quá trình thì test thì đồng nghĩ với việc bạn cần xác định đúng khu vực cần test. Hiểu đơn giản thì đây là việc xác định rõ phạm vi cần test để rút ngắn thời gian cũng như chi phí về nguồn lực.
Cập nhật toàn bộ testcase có liên quan tới phần mềm
Sau khi xác định được phạm vi, tester cần thảo luận với dev để đưa ra vùng code có khả năng thay đổi . Ví dụ:
- Phạm vi thay đổi khi cùng màn hình hoặc khi API thay đổi.
- Test trong phạm vi có cùng module.
- Kiểm thử cả hệ thống để xem sự thay đổi.
- Test phần chức năng có liên quan.
Bên cạnh đó, tester cũng cần xem lại phần testcase có thể thay đổi, bổ sung testcase mới. Do đó bạn nên cập nhật lại testcase trước khi bắt đầu thực hiện Regression Testing.
Ngoài ra, nếu muốn kiểm thử tự động thì bạn cần cập nhật lại testcase sao cho chúng tương ứng với UI.
Thực hiện kiểm thử và đánh giá lại phạm vi kiểm thử
Sau khi quá trình kiểm thử Regression Testing kết thúc bạn cần đánh giá lại toàn bộ quá trình trên, xem lại phần phạm vi bị ảnh hưởng để nâng cao hiệu quả của phần mềm.
Các phương pháp tiếp cận Regression Testing chính
Kiểm thử Regression Testing cho toàn bộ hệ thống sẽ rất tốt nhưng không phải lúc nào chúng ta cũng cần thực hiện kiểm thử này. Do vậy tùy vào từng dự án và từng trường hợp thực tế khác nhau bạn có thể sử dụng 1 vài phương pháp tiếp cận Regression Testing sau đây:
- Complete regression testing: là phương pháp kiểm thử cho toàn bộ các trường hợp. Với phương pháp này sẽ làm mất nhiều thời gian đặc biệt là đối với phương pháp test manual. Tuy nhiên, nó lại giúp tăng chất lượng và độ tin cậy của phần mềm. Làm cho chức năng hoạt động lại như cũ.
- Progressive regression testing: Thông thường phương pháp này chỉ được sử dụng khi các yêu cầu có sự thay đổi lớn (khi testcase đã không còn phù hợp với ứng dụng). Khi này testcase mới cần được thực hiện trước khi quá trình test hồi quy bắt đầu.
- Selective regression testing: Chỉ kiểm thử phạm vi chính trong ứng dụng thông qua phần testcase đã được lựa chọn từ trước đó. Nếu có sự thay đổi nào xảy ra, nhóm testcase cần được thực hiện lại để kiểm tra sự ổn định trong ứng dụng.
Ưu và nhược điểm của Regression Testing
Ưu điểm
- Đảm bảo ứng dụng hoàn thiện không lỗi ngay cả khi thêm mới các tính năng vào hệ thống.
- Thực hiện dễ dàng bằng các công cụ test tự động.
- Giúp đảm bảo và duy trì chất lượng của mã nguồn.
Nhược điểm
- Tiện lợi nhưng rất tốn thời gian và tài nguyên test nếu các tools tự động không được sử dụng.
- Được yêu cầu test ngay cả khi có sự thay đổi nhỏ về đoạn code trong mã nguồn.
Sự khác nhau giữa Confirmation Testing và Regression Testing
Confirmation Testing | Regression Testing | |
Mục đích thực hiện | Confirmation Testing được thực hiện để kiểm tra lại quá trình test đã khắc phục được lỗi trong phần mềm hay chưa? | Regression Testing – Kiểm thử hồi quy được thực hiện để xác nhận lại và đảm bảo quá trình hoạt động ổn định của phần mềm. |
Thời gian test | Confirmation Testing được thực hiện trước khi kiểm thử regression testing. | Kiểm thử hồi quy diễn ra sau khi kết thúc confirmation testing. |
Tác động đến phần mềm | Thực hiện nhằm đảm bảo chất lượng trong phần mềm. | Kiểm thử được thực hiện nhằm đảm bảo hiệu suất hoạt động của phần mềm. |
Phân loại | Confirmation Testing thuộc 1 trong bài test thủ công manual testing | Regression Testing là quá trình kiểm thử tự động automation test. |
Loại test | Kiểm thử xác nhận là loại kỹ thuật kiểm thử kỹ thuật. | Regression test thuộc loại kiểm thử chung có thể được thực hiện song song với retesting. |
Trường hợp test | Người thực hiện không cần viết lại các trường hợp kiểm thử mà khi test thất bại chỉ cần xác nhận lại quá trình thực hiện. | Viết ra toàn bộ các trường hợp kiểm thử dựa trên chức năng của phần mềm, ứng dụng. Khi kiểm thử pass, tester sẽ thực hiện bài test Regression Testing. |
Như vậy thông qua bảng tổng hợp trên chúng tôi bạn có thể thấy rõ sự khác nhau giữa Confirmation Testing và Regression Testing. Trên thực tế người ta sẽ sử dụng Confirmation Testing để xem lại lỗi bug đã được fix chưa, sau đó thực hiện Regression Testing để tìm ra phần mềm có đang gặp lỗi phát sinh nào không. Mong rằng thông tin trên sẽ giúp ích tới bạn. Đừng quên chia sẻ bài viết nếu thấy chúng hữu ích nhé!
Xem thêm: Regression Testing là gì? Cách thực hiện Regression Testing trong quá trình phát triển phần mềm