Hay còn gọi là kiểm thử chức năng, là kỹ thuật kiểm tra phần mềm dựa trên từng chức năng để đảm bảo hệ thống đáp ứng đúng yêu cầu đã đặt ra. Đây là dạng kiểm thử hộp đen, trong đó tester không cần quan tâm đến mã nguồn mà chỉ so sánh chức năng thực tế với đặc tả bên ngoài. Quá trình này được thực hiện bằng cách nhập dữ liệu đầu vào và so sánh kết quả đầu ra với mong đợi. Nếu có sai lệch, đó sẽ là lỗi cần chuyển cho bộ phận phát triển để sửa. Mục tiêu là phát hiện lỗi, tránh trùng lặp hoặc kiểm thử dư thừa các chức năng không cần thiết.

 

Khi thực hiện kiểm thử chức năng, Tester sẽ sử dụng một trong các kỹ thuật thử nghiệm như: 

 

  • Kiểm thử điều hướng người dùng (User Navigation Testing)
  • Kiểm thử thao tác trên màn hình (Transaction Screen Testing)
  • Kiểm thử luồng thực hiện (Transaction Flow Testing)
  • Kiểm thử màn hình báo cáo (Report Screen Testing)
  • Kiểm thử luồng báo cáo (Report Flow Testing)

 

Mục đích của Functional Testing

 

  • Xác minh rằng các chức năng chính của ứng dụng như đăng nhập, tìm kiếm, giỏ hàng, thanh toán… hoạt động chính xác.
  • Đảm bảo rằng đầu ra của hệ thống đúng với dữ liệu đầu vào.
  • Kiểm tra xem các chức năng có tuân thủ đúng các yêu cầu và quy tắc nghiệp vụ đã được xác định trước đó hay không.
  • Tìm kiếm và khắc phục các lỗi liên quan đến chức năng trước khi sản phẩm đến tay người dùng.

 

Các loại Functional Testing

 

Vì Functional Testing là một phương pháp kiểm tra các thông số khác nhau của một sản phẩm phần mềm, nên nó được thực hiện trong nhiều chức năng khác nhau. Đây là 8 loại kiểm thử chức năng thường được sử dụng:

 

Unit testing (Kiểm thử đơn vị)

 

  • Là cấp độ kiểm thử đầu tiên, thường được thực hiện bởi các nhà phát triển. Mục tiêu của kiểm thử đơn vị là cô lập một phần code và xác minh tính chính xác của đơn vị đó. Quá trình này đảm bảo rằng các thành phần riêng lẻ của một phần mềm hoạt động và phản ứng như mong đợi. Hoạt động kiểm thử đơn vị có thể được thực hiện theo cách thủ công, nhưng việc tự động hóa quy trình sẽ tăng tốc các chu kỳ triển khai và mở rộng phạm vi kiểm tra.

 

Smoke Testing

 

  • Là một loại kiểm thử phần mềm được thực hiện sau khi có một bản build mới, để đảm bảo rằng các chức năng chính, quan trọng của phần mềm vẫn hoạt động bình thường. Công việc này được thực hiện để phát hiện các vấn đề nghiêm trọng sớm nhất có thể, trong trường hợp phát hiện vấn đề, bản build đó sẽ bị từ chối, và không được bàn giao cho giai đoạn kiểm thử tiếp theo, do đó sẽ giúp tránh lãng phí thời gian cho cả người kiểm thử và phát triển. Trong smoke testing, các test case được chọn sẽ bao phủ được hầu hết các tính năng, thành phần chính quan trọng của sản phẩm phần mềm. Điều này cho thấy, Smoke Testing chính là loại kiểm tra tổng quát ban đầu.

 

Sanity Testing

 

  • Được thực hiện sau khi nhận được bản build, ở bản build này một số chức năng của phần mềm được chỉnh sửa, cập nhật do yêu cầu hoặc một số lỗi nào đó đã được sửa, việc này để kiểm tra nhanh các trạng thái hoặc thay đổi đó có ảnh hưởng đến các tính năng khác hay không, có đáp ứng như mong đợi hay không? Nếu các vấn đề được tìm thấy, bản build sẽ không được đưa tới giai đoạn kiểm thử chi tiết hơn tiếp theo, giúp giảm thiểu thời gian và các chi phí khác.

 

Interface testing (Kiểm thử giao diện)

 

  • Được dùng để kiểm thử tích hợp khi thực hiện 2 hoặc nhiều chức năng, thành phần của phần. Các chức năng đó sẽ được tích hợp để tạo thành một hệ thống hoàn chỉnh. Tóm lại, Integration Testing sẽ giúp kiểm tra hoạt động đúng của phần mềm khi các thành phần được hợp nhất với nhau.

 

Integration testing (Kiểm thử tích hợp)

 

  • Được thiết kế để xác định xem các thành phần phần mềm riêng lẻ có hoạt động bình thường hay không khi chúng được kết nối với nhau. Kiểm thử tích hợp đảm bảo rằng mọi kết nối giữa các đơn vị khác nhau chạy trơn tru. Loại thử nghiệm này cố gắng phát hiện ra các loại lỗi khác nhau như sự không tương thích trong thông báo hoặc định dạng dữ liệu cũng như các tham số đầu vào hoặc đầu ra không hợp lệ có thể đột ngột làm gián đoạn một chức năng.

 

System testing (Kiểm thử hệ thống)

 

  • Là một phương pháp kiểm thử hộp đen để đánh giá một sản phẩm phần mềm hoàn chỉnh và tích hợp. Mục tiêu của kiểm thử hệ thống là xác minh sự tuân thủ của hệ thống với các yêu cầu cụ thể. Loại kiểm tra này thường được thực hiện bởi một nhóm kiểm thử khác với nhóm phát triển trước khi phần mềm được đưa lên môi trường Production.

 

Regression testing (Kiểm thử hồi quy)

 

  • Dùng để kiểm tra hồi quy, được thực hiện khi bản build phần mềm đã fix những bugs trong lần test ban đầu. Nó cũng giúp xác minh xem các bug đã thực sự được fix hay chưa và kiểm tra toàn bộ phần mềm có hoạt động tốt với những thay đổi đó không.

 

Acceptance testing (Kiểm thử chấp nhận)

 

  • Đôi khi được gọi là kiểm thử ứng dụng, là giai đoạn cuối cùng của kiểm thử chức năng phần mềm được thực hiện trước khi sản phẩm phần mềm được phát hành ra thị trường. Loại thử nghiệm để kiểm tra sự hài lòng của người dùng bằng cách xem xét tính dễ sử dụng của họ. Thông thường, người dùng cuối cùng hoặc khách hàng sẽ được cung cấp phiên bản dùng thử, đây là cách để kiểm tra xem phần mềm có hoạt động đúng theo yêu cầu thực tế hay không. Mục tiêu của quá trình này là đảm bảo rằng phần mềm đã sẵn sàng để phân phối và đáp ứng nhu cầu của người dùng cuối. Đổi lại, điều này yêu cầu sản phẩm phải được thử nghiệm trong “thế giới thực” – bởi người dùng cuối thông qua quá trình thử nghiệm beta.

 

Quy trình thực hiện Functional Testing

Bước 1: Nghiên cứu yêu cầu để xác định các chức năng cần kiểm thử ở phần mềm, ứng dụng.

Bước 2: Dựa trên các thông số kỹ thuật phần mềm, tester/QA sẽ tiến hành xác định bộ dữ liệu đầu vào.

Bước 3: Dựa trên thông số kỹ thuật phần mềm để xác định đầu ra cần đạt được.

Bước 4: Lên kịch bản test và bắt đầu triển khai kiểm thử trên các trường hợp cụ thể.

Bước 5: So sánh các kết quả đầu ra với kết quả thực tế để đánh giá xem khả năng phù hợp so với yêu cầu đã đề ra. Nếu đã đáp ứng được thì có thể dừng lại. Ngược lại, khi chức năng không đạt được như kỳ vọng, tester sẽ gửi báo cáo test cho bộ phận phát triển phần mềm để sửa lại cho phù hợp.

About the Author

Huyền Vy

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Notion

  Là một ứng dụng quản lý công việc đa năng, hỗ trợ người dùng trong việc ghi chú, theo dõi nhiệm vụ, quản lý dự án, xây dựng wiki và lưu trữ cơ sở dữ liệu trong cùng một nền tảng. Là một ứng dụng viết ghi chú, nhưng nếu biết cách sử dụng, […]

Security Testing

Hay còn gọi là Kiểm thử bảo mật, là một trong những phần quan trọng trong phát triển phần mềm, nhằm đảm bảo các hệ thống và ứng dụng trong một tổ chức không có bất kỳ sơ hở nào có thể gây ra các tổn thất về an toàn bảo mật. Kiểm thử bảo […]

Non-Functional Testing

Hay còn gọi là Kiểm thử phi chức năng, là kỹ thuật kiểm thử tập trung vào việc đánh giá các khía cạnh phi chức năng của hệ thống. Nó kiểm tra các tham số không được kiểm tra trong Function Testing (kiểm thử chức năng), chẳng hạn như hiệu suất, khả năng sử dụng, […]

Unit Testing

Hay còn gọi là Kiểm thử đơn vị, là một loại kiểm thử phần mềm tập trung vào việc kiểm tra các thành phần hoặc “đơn vị” nhỏ nhất và riêng biệt của mã nguồn. Một đơn vị có thể là một hàm (function), một phương thức (method), một lớp (class) hoặc một module. Mục […]

Smoke Testing

Hay còn gọi là Kiểm thử khói, là một loại kiểm thử phần mềm nhanh chóng, tập trung vào việc xác minh các chức năng cốt lõi và quan trọng nhất của ứng dụng có hoạt động ổn định hay không. Mục đích chính là để kiểm tra xem bản dựng (build) mới của phần […]

Testing Techniques

Hay còn gọi là các kỹ thuật kiểm thử, là các phương pháp và quy trình cụ thể được sử dụng để thiết kế và thực hiện các test case (trường hợp kiểm thử). Chúng cung cấp một cách tiếp cận có hệ thống để khám phá các lỗi (defects), đánh giá các thuộc tính […]