Kiểm thử hồi quy
Khi phần mềm được phát triển, sẽ có những thay đổi để phù hợp với hệ thống cũng như yêu cầu của khách hàng, các tính năng mới được tích hợp, do đó luôn có những phiên bản mới thay thế phiên bản cũ. Việc kiểm thử sẽ phải thực hiện lại và tốn nhiều thời gian. Trong trường hợp này, ta nên áp dụng Kiểm thử hồi quy - Regression Testing. Cùng tìm hiểu Kiểm thử hồi quy ở bài viết này nhé.
1. Kiểm thử hồi quy - Regression Testing là gì?
Kiểm thử hồi quy được định nghĩa là một loại kiểm thử phần mềm để xác nhận rằng một tính năng mới được thêm không ảnh hưởng xấu đến các tính năng hiện có.
Kiểm thử hồi quy là kiểm thử lại các trường hợp đã được thực hiện để đảm bảo các chức năng hiện có hoạt động tốt.
Kiểm thử này được thực hiện để đảm bảo rằng những thay đổi source code mới sẽ không ảnh hưởng tới các chức năng hiện có, đảm bảo rằng code cũ vẫn hoạt động sau khi thực hiện thay đổi source code.
Bài viết này được đăng tại [free tuts .net]
2. Tại sao cần kiểm thử hồi quy?
Kiểm thử hồi quy là cần thiết khi:
- Thay đổi trong yêu cầu và source code được sửa đổi theo yêu cầu
- Tính năng mới được thêm vào phần mềm
- Sửa lỗi
- Khắc phục sự cố hiệu suất
3. Cách thực hiện kiểm thử hồi quy
Bảo trì phần mềm là một hoạt động bao gồm cải tiến, sửa lỗi, tối ưu hóa và xóa các tính năng không phù hợp. Những sửa đổi này có thể khiến hệ thống hoạt động không chính xác. Do đó, Kiểm thử hồi quy trở nên cần thiết. Kiểm thử hồi quy có thể được thực hiện bằng các kỹ thuật sau:
Kiểm thử lại tất cả
Đây là một trong những phương pháp để Kiểm thử hồi quy trong đó tất cả các test cases trong bộ kiểm thử hiện có sẽ được thực hiện lại. Sẽ rất tốn kém vì đòi hỏi thời gian và nguồn lực rất lớn.
Kiểm thử lại một phần
- Thay vì thực hiện lại toàn bộ bộ kiểm thử, tốt hơn là chọn một phần của bộ kiểm thử sẽ được test lại.
- Các test cases được chọn có thể được phân loại thành 1) Các test cases tái sử dụng 2) Các test cases loại bỏ.
- Các test cases được sử dụng lại có thể được sử dụng trong các chu kỳ kiểm thử hồi quy kế tiếp.
- Các test cases lỗi thời không thể được sử dụng trong các chu kỳ tiếp theo.
Dựa trên độ ưu tiên của các test cases
- Độ ưu tiên của các test cases tùy thuộc vào tác động nghiệp vụ, các chức năng quan trọng và được sử dụng thường xuyên.
- Lựa chọn các test cases dựa trên mức độ ưu tiên sẽ giảm đáng kể bộ kiểm thử hồi quy.
4. Lựa chọn test cases để kiểm thử hồi quy
Một số lượng lớn các lỗi được khách hàng báo cáo là do sửa lỗi vào phút cuối tạo ra các ảnh hưởng và do đó chọn Test Cases để kiểm thử hồi quy là không dễ dàng. Để kiểm thử hồi quy hiệu quả, nên chọn các Test Cases sau:
- Các Test Cases có lỗi thường xuyên
- Các chức năng người dùng dễ dàng nhìn thấy
- Các Test Cases xác minh các tính năng cốt lõi của sản phẩm
- Các Test Cases của Chức năng đã có nhiều thay đổi gần thời điểm thực hiện test
- Tất cả Test Cases thử tích hợp
- Tất cả các Test Cases phức tạp
- Test Cases giá trị biên
- Một mẫu Test Cases thành công
- Một mẫu Test Cases Thất bại
5. Công cụ kiểm thử hồi quy
Nếu phần mềm của bạn trải qua những thay đổi thường xuyên, chi phí kiểm thử hồi quy sẽ leo thang.
Trong các trường hợp như vậy, việc thực hiện thủ công các Test Cases làm tăng thời gian thực hiện kiểm thử cũng như chi phí.
Tự động hóa các Test Cases hồi quy là sự lựa chọn thông minh trong các trường hợp như vậy.
Phạm vi tự động hóa phụ thuộc vào số lượng Test Cases có thể sử dụng lại cho các chu kỳ hồi quy kế tiếp.
Sau đây là các công cụ quan trọng nhất được sử dụng cho cả kiểm thử chức năng và hồi quy trong công nghệ phần mềm.
Selenium: Đây là một công cụ mã nguồn mở được sử dụng để tự động hóa các ứng dụng web. Selenium có thể được sử dụng để kiểm thử hồi quy dựa trên trình duyệt.
Quick Test Professional (QTP): HP Quick Test Professional là phần mềm tự động được thiết kế để tự động hóa các trường hợp kiểm thử chức năng và hồi quy. QTP sử dụng ngôn ngữ VBScript để tự động hóa. QTP là một công cụ dựa trên dữ liệu, dựa trên từ khóa.
Rational Functional Tester (RFT): RFT của IBM là một công cụ Java được sử dụng để tự động hóa các trường hợp kiểm thử của các ứng dụng phần mềm. Điều này chủ yếu được sử dụng để tự động hóa các trường hợp kiểm thử hồi quy và nó cũng tích hợp với Rational Test Manager.
6. Kiểm thử hồi quy và quản lý cấu hình
Quản lý cấu hình trong Kiểm thử hồi quy trở nên bắt buộc trong Môi trường Agile, nơi code đang được sửa đổi liên tục. Để đảm bảo kiểm thử hồi quy hiệu quả, hãy tuân thủ các điều sau:
Code được kiểm thử hồi quy phải theo một công cụ quản lý cấu hình
Không được phép thay đổi Code trong giai đoạn kiểm thử hồi quy. Code kiểm thử hồi quy phải được độc lập với những thay đổi của nhà phát triển.
Cơ sở dữ liệu được sử dụng để kiểm thử hồi quy phải được cách ly. Không được phép thay đổi cơ sở dữ liệu
7. Sự khác biệt giữa Kiểm thử lại (Re-Testing) và Kiểm thử hồi quy
Kiểm thử lại có nghĩa là kiểm thử lại chức năng hoặc lỗi để đảm bảo lỗi đã được sửa.
Kiểm thử hồi quy có nghĩa là kiểm thử ứng dụng phần mềm khi có trải qua thay đổi code để đảm bảo rằng code mới thay đổi không ảnh hưởng đến các phần khác của phần mềm.
8. Những khó khăn trong kiểm thử hồi quy
Sau đây là một số khó khăn khi thực hiện kiểm thử hồi quy:
- Khi kiểm thử hồi quy liên tục được thực hiên, các bộ test cases trở nên khá lớn. Do hạn chế về thời gian và ngân sách, toàn bộ test cases kiểm thử hồi quy không thể được thực thi.
- Tối thiểu hóa bộ test cases trong khi vẫn đạt được phạm vi kiểm thử tối đa vẫn là một thách thức
- Xác định tần suất của Kiểm thử hồi quy, tức là sau mỗi lần sửa đổi hoặc mỗi lần cập nhật bản build hoặc sau một loạt các lỗi được sửa là một thách thức.
9. Kết luận
Một chiến lược kiểm thử hồi quy hiệu quả sẽ tiết kiệm cả thời gian và tiền bạc.
Theo những trường hợp nghiên cứu trong lĩnh vực ngân hàng, kiểm thử hồi quy tiết kiệm tới 60% thời gian trong việc sửa lỗi (có thể đã phát hiện bởi kiểm thử hồi quy) và 40% chi phí cho kiểm thử phần mềm.