1. Bạn biết gì về regression testing
1.1. Định nghĩa regression testing là gì
Regression testing được hiểu là kiểm tra hồi quy, nó đề cập đến kỹ thuật kiểm tra phần mềm chạy lại các kiểm thử không có chức năng và có chức năng để đảm bảo rằng ứng dụng phần mềm hoạt động như dự định sau bất kỳ thay đổi mã, cập nhật, sửa đổi, cải tiến hoặc tối ưu hóa nào. Nó là một phần không thể thiếu của chu trình phát triển phần mềm vì nó cho phép các nhà phát triển phát hiện các lỗi không mong muốn trong một ứng dụng có thể phát sinh do các chỉnh sửa, cải tiến hoặc mở rộng cơ sở mã hiện có.
Kiểm tra hồi quy được sử dụng trong các trường hợp sau:
+ Một yêu cầu mới được thêm vào tính năng sản phẩm hiện có.
+ Một chức năng hoặc tính năng hoàn toàn mới được thêm vào sản phẩm.
+ Cơ sở mã được tối ưu hóa để cải thiện hiệu suất.
+ Thêm các bản sửa lỗi.
+ Thay đổi cấu hình.
1.2. Vai trò của regression testing - kiểm thử hồi quy
Kiểm tra hồi quy cung cấp sự ổn định tổng thể cho ứng dụng phần mềm bằng cách kiểm tra chức năng của các tính năng hiện có. Đó là một bước không thể tránh khỏi sau mỗi lần sửa đổi mã mới, đảm bảo hệ thống có thể duy trì và chịu được các cải tiến thường xuyên.
Về mặt kỹ thuật, sự thay đổi mã có thể gây ra sự thay đổi trong các phần phụ thuộc, do đó dẫn đến các lỗi hoặc trục trặc trong phần mềm. Kiểm thử hồi quy được đưa ra để giảm thiểu những rủi ro như vậy. Nó cho phép các chuyên gia xác minh xem mã được phát triển và thử nghiệm trước đó có hoạt động hay không khi các tính năng mới hoặc thay đổi mã được giới thiệu.
Thông thường, bất kỳ ứng dụng phần mềm nào cũng trải qua một loạt các bài kiểm tra trước khi các thay đổi trở thành một phần của gói phát triển. Trong số nhiều thử nghiệm đó, thử nghiệm hồi quy là bước cuối cùng và chịu trách nhiệm xét xử toàn bộ hành vi của sản phẩm.
Hơn nữa, quá trình kiểm tra hồi quy nhanh chóng cho phép phát triển sản phẩm nhận được phản hồi thông tin, có thể được phản hồi ngay lập tức và cho phép sửa đổi mã phần mềm ngay lập tức. Với kiểm thử hồi quy, người ta có thể phát hiện lỗi trong giai đoạn đầu của chu kỳ phát triển phần mềm (ví dụ: phát triển phần mềm Agile), do đó tiết kiệm cho các doanh nghiệp khỏi việc đầu tư vào nỗ lực bảo trì cả về thời gian và chi phí cần thiết để giải quyết các lỗi đã xây dựng.
Người ta đã quan sát thấy rằng việc sửa đổi mã nhỏ nhất có thể gây ra hiệu ứng domino có thể làm thay đổi các chức năng chính của sản phẩm. Do đó, kiểm thử hồi quy đóng một vai trò quan trọng trong việc điều tra kiến trúc của sản phẩm, điều này rất quan trọng để xác định nguyên nhân gốc rễ của cả sự thành công và thất bại của sản phẩm.
Hãy xem xét một ví dụ đơn giản về một công ty phần mềm phát triển nền tảng hội nghị truyền hình. Công ty phải đảm bảo rằng phiên bản đầu tiên của nền tảng phần mềm hoặc sản phẩm bao gồm các tính năng cốt lõi cơ bản. Trong khi phát hành bản dựng đầu tiên, công ty thực hiện thử nghiệm hồi quy bao gồm 1.000 trường hợp thử nghiệm. Thực tiễn như vậy xác nhận xem nền tảng có các chức năng hội nghị cơ bản hay miễn phí. Sản phẩm đã sẵn sàng tung ra thị trường sau khi vượt qua các bài kiểm tra thành công.
Khi phiên bản đầu tiên của sản phẩm trở nên phổ biến trong không gian nền tảng hội nghị truyền hình, nhu cầu về các chức năng bổ sung ngày càng tăng giữa các khách hàng và khách hàng. Do đó, các nhóm kinh doanh hiểu được tình cảm của khách hàng và khách hàng và đưa ra yêu cầu về các tính năng mới mà người ta có thể phát hành trong các phiên bản cao cấp của phần mềm. Nhóm phát triển sản phẩm làm theo hướng dẫn và bổ sung các tính năng mới cho sản phẩm hiện có.
Khi thêm chức năng mới, kiểm tra hồi quy lại trở nên cần thiết. Tại đây, một vài trăm (giả sử 100) trường hợp thử nghiệm được chạy để xác minh hoạt động của các tính năng mới được thêm vào. Tuy nhiên, điều quan trọng cần lưu ý là 1.000 trường hợp thử nghiệm đã được tiến hành cần phải được chạy lại chỉ để đảm bảo rằng các chức năng quan trọng của phiên bản freemium không bị ảnh hưởng, tác động hoặc bị hỏng do bổ sung các trường hợp mới hơn.
2. Các vấn đề liên quan đến regression testing
2.1. Cách thực hiện regression testing
Mỗi một tổ chức lại có các cách khác nhau để thực hiện regression testing nhưng hầu hết sẽ trải qua các bước sau:
Bước 1: Xác định các thay đổi trong mã nguồn
Trong bước này, mã nguồn thay đổi và được tối ưu hoá. Tiếp theo là phát hiện các thành phần đã thay đổi và tác động của tất cả những điều này lên các tính năng thiết yếu hiện có của sản phẩm.
Bước 2: Ưu tiên các thay đổi và yêu cầu sản phẩm đã xác định
Trong bước tiếp theo, tất cả các yêu cầu sản phẩm đã xác định và các sửa đổi mã được ưu tiên bằng cách sắp xếp quy trình thử nghiệm với các công cụ và trường hợp thử nghiệm cần thiết.
Bước 3: Chọn các trường hợp thử nghiệm để chạy lại
Các trường hợp được lựa chọn để thử nghiệm sẽ được lấy ra dựa trên mô đun đã được thay đổi mã nguồn. Các trường hợp thử nghiệm không cần phải kiểm tra hết. Những trường hợp thử nghiệm sau có thể được lựa chọn và đưa vào danh sách sử dụng lại hay lỗi thời. Nếu các trường hợp có thể sử dụng lại lại tiếp tục cho vào danh sách chọn lọc để thực hiện các quá trình tương tự trên.
Bước 4: Xem xét các kịch bản thử nghiệm để xác định thời gian thực hiện trường hợp thử nghiệm
Các biến trường hợp thử nghiệm, chẳng hạn như chuẩn bị dữ liệu thử nghiệm, thiết kế thử nghiệm hồi quy, v.v., được đánh giá để xác định cách chúng tác động đến thời gian thực hiện trường hợp thử nghiệm.
Bước 5: Phân loại các trường hợp kiểm thử tự động và thủ công
Bước này tách các trường hợp kiểm thử thành các trường hợp tự động và thủ công. Các trường hợp kiểm thử tự động nhanh hơn các trường hợp thủ công do con người quản lý. Ngoài ra, người ta có thể sử dụng lại mã thử nghiệm nhiều lần trong kịch bản tự động. Do đó, phân loại các trường hợp kiểm thử là một bước quan trọng trong kiểm thử hồi quy.
Bước 6: Ưu tiên các trường hợp thử nghiệm
Trong bước này, các trường hợp thử nghiệm thu thập được được xếp hạng dựa trên mức độ ý nghĩa của chúng (cao, trung bình và thấp). Khi đánh giá, các trường hợp thử nghiệm khẩn cấp được ưu tiên, tiếp theo là các trường hợp có mức độ quan trọng trung bình và thấp. Về cơ bản, các ưu tiên được chỉ định dựa trên tiện ích của sản phẩm và sự tham gia của người dùng.
Các mức độ ưu tiên được chỉ định dựa trên các tiêu chí sau:
Ưu tiên 0: Các trường hợp thử nghiệm quan trọng bao gồm tất cả các tính năng cần thiết
Ưu tiên 1: Các tính năng không thuộc danh mục thiết yếu nhưng có tầm quan trọng nhất định
Ưu tiên 2: Các trường hợp kiểm thử giải quyết các vấn đề phức tạp về kỹ thuật
Bước 7: Lập lịch và thực hiện các ca kiểm thử
Trong bước cuối cùng, mỗi trường hợp thử nghiệm được tiến hành riêng lẻ vào một thời điểm thích hợp, đã lên lịch để xác minh xem sản phẩm có hoạt động như mong đợi hay không. Ở đây, kiểm tra tự động hoặc thủ công có thể được sử dụng tùy thuộc vào nhu cầu và yêu cầu. Các công cụ tự động như Selenium, IBM Rational Functional Tester, Watir, v.v., có thể giúp thực thi test case nhanh hơn.
2.2. Kỹ thuật regression testing
Kỹ thuật kiểm tra hồi quy sẽ được tiến hành theo 4 kỹ thuật triển khai cơ bản để có thể đảm bảo rằng những lỗi trong phần mềm của bạn có thể được tìm thấy nhanh nhất và kịp thời sửa chữa. 4 kỹ thuật kiểm tra quy hồi: Các kỹ thuật điều tra, lựa chọn các bài kiểm tra hồi quy, ưu tiên các trường hợp thử nghiệm, chiến lược kết hợp.
2.2.1. Kiểm tra lại hồi quy
Đây là một kỹ thuật được áp dụng trên toàn bộ thử nghiệm hiện có khi nhiều bản cập nhật hoặc thay đổi mã chính hay mã gốc của phần mềm. Đây là một phương pháp rất hữu ích và là chìa khóa giúp tìm ra các lỗi trong phần mềm đang sử dụng. Tuy cách này rất hữu ích nhưng nó lại khá mất thời gian và chi phí, chính vì vậy cần xem xét tình hình để đưa ra có nên dùng phương pháp này hay không.
2.2.2. Lựa chọn các bài kiểm tra hồi quy
Với kỹ thuật này, bạn có thể lựa chọn các phần mà mình muốn kiểm tra hồi quy. Những phần được lựa chọn thường là những phần có thể ảnh hưởng đến phần mềm. Kỹ thuật này sẽ giúp bạn tiết kiệm được thời gian và tài nguyên thay vì việc kiểm tra lại toàn bộ.
2.2.3. Lựa chọn ưu tiên các trường hợp thử nghiệm
Kỹ thuật này sẽ cho phép bạn lựa chọn những phần kiểm thử ưu tiên cần kiểm tra trước trong quá trình kiểm tra hồi quy. Các trường hợp được lựa chọn dựa trên các yếu tố: các chức năng được sử dụng phổ biến, tỷ lệ lỗi, tác động kinh doanh đến những chức năng nhất định. Đặc biệt các chức năng mới sẽ kết hợp với các tính năng lấy khách hàng làm trung tâm được coi là lựa chọn ưu tiên cao nhất trong các trường hợp thử nghiệm.
2.2.4. Chiến lược kết hợp
Cách tiếp cận kiểm thử hồi quy này kết hợp các nguyên tắc của hai kỹ thuật trước: ưu tiên trường hợp kiểm thử và lựa chọn kiểm thử hồi quy. Kỹ thuật lai có lợi trong một số trường hợp vì nhu cầu chọn tất cả các trường hợp thử nghiệm đồng thời bị vô hiệu hóa. Thay vào đó, bạn có thể chạy các trường hợp thử nghiệm dựa trên yêu cầu và nhu cầu tại đây. Một phong cách năng động như vậy giúp tiết kiệm công sức và thời gian trong khi thử nghiệm các ứng dụng.
Kết luận rằng bài viết của chúng tôi đã cung cấp cho bạn những thông tin về regression testing là gì và các vấn liên quan đến kiểm tra hồi quy. Hy vọng rằng mọi chia sẻ của chúng tôi sẽ đem đến cho bạn những kiến thức bổ ích về regression testing trong lĩnh vực kỹ thuật.
Tham gia bình luận ngay!