Tìm hiểu về Regression Testing

1. Định nghĩa Regression Testing (Kiểm thử hồi quy)

  • Kiểm thử hồi quy là một loại kiểm thử phần mềm để đảm bảo rằng việc thay đổi chương trình hoặc code không làm ảnh hưởng đến các chức năng hiện có. Nó đảm bảo rằng các chức năng cũ vẫn hoạt động sau khi thêm mới chức năng vào phần mềm.
  • Những trường hợp cần kiểm thử hồi quy:
  1. Khi có thay đổi yêu cầu về chức năng của phần mềm. Việc thay đổi yêu cầu chức năng cũng dẫn theo việc code thay đổi để đáp ứng yêu cầu mới
  2. Khi có một tính năng mới được thêm vào phần mềm
  3. Khi dev sửa xong bug
  4. Khi khắc phục các vấn đề về hiệu năng

2. Mục đích của việc test hồi quy

  • Mục đích của việc kiểm thử hồi quy là tìm ra những lỗi phát sinh do việc thay đổi hoặc thêm mới code
  • Khi dev thực hiện fix bug có thể chức năng đang bị lỗi được fix làm ảnh hưởng đến chức năng khác có liên quan thì khi đó cần thực hiện kiểm thử hồi quy
  • Thông thường kiểm thử hồi quy được thực hiện bởi các công cụ tự động để khắc phục lỗi, kiểm thử tương tự được thực hiện lặp đi lặp lại và sẽ rất tốn thời gian để thực hiện thủ công.
  • Trong quá trình kiểm tra hồi quy, các trường hợp kiểm thử được ưu tiên tùy thuộc vào các thay đổi được thực hiện đối với tính năng hoặc module trong ứng dụng. Tính năng hoặc module nơi thay đổi hoặc sửa đổi được thực hiện mà toàn bộ tính năng được ưu tiên để thử nghiệm.

3. Ví dụ về trường hợp kiểm thử hồi quy

Ví dụ 1: Khi chức năng phần mềm được thay đổi

Giả sử có một ứng dụng quản lý sinh viên, phần mềm này có chức năng thêm, sửa, xóa sinh viên và tất cả các tính năng này đang hoạt động bình thường. Tuy nhiên khách hàng muốn thay đổi nút xóa thành toogle để enbale hoặc disable sinh viên. Việc thay đổi tính năng này phải được kiểm thử để đảm bảo rằng tính năng được thay đổi hoạt động bình thường và tất cả các tính năng cũ cũng được hoạt động bình thường. Quá trình này được gọi là kiểm thử hồi quy

Ví dụ 2: Khi thêm 1 tính năng mới vào ứng dụng

Phần mềm ứng dụng luôn luôn được cải tiến thêm các tính năng mới để đáp ứng nhu cầu của người dùng. Chính vì thế khi một chức năng mới được thêm vào phần mềm đã được phát triển chúng ta cũng cần thực hiện kiểm thử hồi quy trên toàn bộ ứng dụng để đảm bảo rằng việc thêm chức năng mới đó không làm ảnh hưởng đến các chức năng cũ đã được phát triển.

Ví dụ 3: Khi developer fix bug

Trong quá trình fix bug có thể developer fix được bug của chức năng A nhưng chức năng B có liên quan đến chức năng A lại bị lỗi nào đó do quá trình sửa code gây ra. Chính vì vậy khi developer thực hiện fix bug chúng ta sẽ Re-test lại chức năng A và thực hiện Regression test chức năng B để đảm bảo các chức năng của hệ thống vẫn hoạt động tốt.

4. Các kỹ thuật kiểm thử hồi quy

Có 4 kỹ thuật kiểm thử hồi quy sau:

  1. Corrective Regression Testing: kỹ thuật này được sử dụng khi không có thay đổi spec và test cases có thể được tái sử dụng.
  2. Progressive Regression Testing: kỹ thuật này được sử dụng khi có thay đổi spec và khi đó phải thực hiện viết các test cases mới
  3. Retest-All Strategy: Kiểm thử lại tất cả rất tốn thời gian vì chúng ta thực hiện kiểm thử lại tất cả các test cases mà trong đó có những case không cần thiết. Trong trường hợp ứng dụng có bất kỳ thay đổi nhỏ mà áp dụng kỹ thuật này thì thực sự không hữu ích
  4. Selective Strategy: Trong kỹ thuật chọn lọc chúng ta sử dụng tập hợp con của các test cases hiện có để làm giảm công sức và chi phí cho việc retesting. Nếu có bất kỳ thay đổi nào được thực hiện thì sau đó nên thực hiện lại unit test.

5. Ưu, nhược điểm của Regression testing

  1. Ưu điểm:
  • Nó giúp chúng ta đảm bảo rằng mọi thay đổi như sửa lỗi hoặc bất kỳ cải tiến nào đối với module hoặc ứng dụng không ảnh hưởng đến code được kiểm tra hiện có.
  • Nó đảm bảo rằng các lỗi được tìm thấy trước đó không thể tạo được.
  • Kiểm thử hồi quy có thể được sử dụng bằng các tools test tự động
  • Kiểm thử hồi quy giúp cải tiến chất lượng của sản phẩm.
  1. Nhược điểm:
  • Nếu kiểm thử hồi quy được thực hiện mà không sử dụng các công cụ tự động thì nó có thể rất tẻ nhạt và tốn thời gian vì ở đây chúng ta thực hiện cùng một bộ các trường hợp kiểm thử lặp đi lặp lại.
  • Kiểm thử hồi quy được yêu cầu ngay cả khi một thay đổi rất nhỏ được thực hiện trong mã bởi vì sửa đổi nhỏ này có thể mang đến các sự cố không mong muốn trong chức năng hiện có.

6. Sự khác nhau giữa Retesting và Regression Testing

  1. Giống nhau:
  • Retesting và Regresssion Testing đều là kiểm thử lặp đi lặp lại và là kỹ thuật kiểm thử hộp đen
  • Retesting và Regresssion Testing đều được thực hiện bằng kiểm thử tự động hoặc kiểm thử thủ công
  1. Khác nhau:
  • Retesting được sử dụng cho bất kỳ kiểm thử nào: chức năng của phiên bản trước hoặc phiên bản hiện tại là mục tiêu ngắm đến. Regression lấy chức năng của phiên bản trước là trung tâm.
  • Retesting không phụ thuộc vào sự thay đổi của ứng dụng. Regression hướng đến sự thay đổi của ứng dụng.

Kết luận

Trên đây là chia sẻ của mình về Regression Testing mong có thể giúp ích được cho mọi người. Nguồn tham khảo: http://tryqa.com/what-is-regression-testing-in-software/


All Rights Reserved