Tìm hiểu về kiểm thử chức năng (Functional Testing) trong kiểm thử phần mềm

0
59
Rate this post

Kiểm Thử Chức Năng Trong Kiểm Thử Phần Mềm

Kiểm thử chức năng, hay Functional Testing trong tiếng Anh, là một trong những quy trình quan trọng trong lĩnh vực kiểm thử phần mềm. Đây là một loại kiểm thử hộp đen (black box testing), nghĩa là các trường hợp kiểm thử dựa trên đặc tả của ứng dụng/phần mềm hoặc hệ thống đang thử nghiệm. Kiểm thử chức năng tập trung vào việc kiểm tra, đánh giá các kết quả đầu ra của các chức năng mà người dùng thấy được, mà không quan tâm đến cấu trúc hoặc cài đặt bên trong của ứng dụng.

1. Khái niệm và ý nghĩa của kiểm thử chức năng

Kiểm thử chức năng là quá trình so sánh sự khác biệt giữa đặc tả bên ngoài của phần mềm với các chức năng thực tế mà phần mềm cung cấp. Đặc tả chức năng được xây dựng dựa trên góc nhìn của người sử dụng về phần mềm, không liên quan đến các công nghệ hay cài đặt bên trong. Người sử dụng có thể là bất kỳ ai, nếu họ tiếp xúc với phần mềm khi nó là thành phẩm có thể sử dụng.

2. Quy trình kiểm thử chức năng

Trong kiểm thử phần mềm, có nhiều quy trình khác nhau, mỗi quy trình có nhiệm vụ riêng.

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

Kiểm thử đơn vị sẽ kiểm tra sự khác biệt giữa đặc tả giao tiếp của đơn vị với thực tế đơn vị cung cấp cho phần mềm.

2.2 Kiểm thử hệ thống

Kiểm thử hệ thống đánh giá độ phù hợp của phần mềm với mục tiêu đề ra.

2.3 Kiểm thử chức năng

Kiểm thử chức năng đánh giá độ phù hợp của phần mềm với các đặc tả bên ngoài, về các hành vi của phần mềm mà người dùng thấy được.

3. Lợi ích của kiểm thử chức năng

Kiểm thử chức năng đem lại nhiều lợi ích quan trọng, bao gồm:

  • Tránh kiểm thử dư thừa với các chức năng không cần thiết
  • Ngăn chặn sự đa dạng lỗi xảy ra cùng một lúc

Kiểm Thử Chức Năng Trong Kiểm Thử Phần Mềm

4. Phương pháp kiểm thử chức năng

Thông thường, kiểm thử chức năng được thực hiện theo 6 bước sau:

  1. Xác định các chức năng của phần mềm
  2. Xác định bộ dữ liệu đầu vào dựa trên các thông số kỹ thuật của chức năng
  3. Xác định bộ dữ liệu đầu ra dựa trên các thông số kỹ thuật của chức năng
  4. Viết và thực hiện các trường hợp kiểm thử
  5. So sánh kết quả đầu ra với kết quả dự kiến
  6. Đánh giá xem kết quả đúng hay không dựa trên nhu cầu của khách hàng

Trong quá trình kiểm thử chức năng, từ từ đơn giản đến phức tạp, người thực hiện kiểm thử cần:

  • Hiểu luồng hoạt động và quy trình vận hành của phần mềm
  • Xác định các nghiệp vụ sử dụng của phần mềm
  • Kiểm thử từng màn hình riêng biệt (ví dụ: màn hình đăng nhập, màn hình profile)
  • Kiểm thử một mô đun chứa nhiều màn hình cùng nhóm
  • Kiểm thử một vòng hoàn chỉnh của nghiệp vụ và kiểm tra tất cả các vòng
  • Giả định là người dùng thực tế và tiến hành kiểm tra các kịch bản đặc biệt

4.1 Kiểm thử điều hướng của người dùng (user navigation testing)

Trong kỹ thuật này, chúng ta kiểm tra các thành phần và các liên kết giữa các màn hình để đảm bảo hoạt động liên tục của nghiệp vụ. Các thành phần có thể bao gồm:

  • Hệ thống đăng nhập, đăng xuất
  • Hệ thống thanh điều hướng (navigation bar, sidebar, menubar)
  • Hệ thống thanh công cụ (toolbar)
  • Hệ thống cây phân cấp chức năng

4.2 Kiểm thử thao tác trên màn hình (transaction screen testing)

Phương pháp này tập trung kiểm tra các hành động trên màn hình, bao gồm các form nhập liệu, các button chức năng và các tùy chọn lựa chọn. Có hai loại thao tác phổ biến:

  • Kết quả hiển thị trên một trang khác
  • Kết quả hiển thị trên trang hiện tại

Đối với mỗi loại thao tác, người kiểm thử cần xác định các trường hợp kiểm thử dựa trên đặc tả và tài liệu người dùng hoặc quản trị viên tương ứng. Nếu kết quả hiển thị trên trang hiện tại, người kiểm thử có thể so sánh kết quả thực tế với kết quả dự kiến bằng phương pháp kiểm thử hộp đen.

4.3 Kiểm thử luồng thực hiện (transaction flow testing)

Với phương pháp này, chúng ta thực hiện một chuỗi các thao tác liên tiếp qua nhiều bước với nhiều màn hình khác nhau để đánh giá sự phù hợp với luồng nghiệp vụ. Ví dụ, khi muốn mở một khóa học trên hệ thống E-learning, chúng ta có thể cần thực hiện các bước sau:

  1. Màn hình 1: Tạo khóa học với các thông tin (tên, nội dung, giới thiệu, thời gian học…)
  2. Màn hình 2: Thêm môn học vào khóa học
  3. Màn hình 3: Thêm giảng viên cho khóa học
  4. Màn hình 4: Thêm học viên hoặc cho phép học viên đăng ký học
  5. Màn hình 5: Xem kết quả khóa học sau khi tạo thành công

Chúng ta cần xác định hai trường hợp:

  • Khi người dùng thực hiện đúng luồng thao tác, kết quả phải đúng như đặc tả yêu cầu
  • Khi người dùng thực hiện không đúng, dù chỉ một bước, kết quả không được như mong đợi

4.4 Kiểm thử màn hình báo cáo (report screen testing)

Khác với màn hình thao tác ở phần 4.2, màn hình báo cáo không yêu cầu nhập liệu. Ở đây, chúng ta kiểm tra cách hiển thị và tìm kiếm dữ liệu. Người kiểm thử cần xác định các trường hợp kiểm thử theo đặc tả của ứng dụng, bao gồm các trường hợp về bộ lọc, tìm kiếm. Cần kiểm tra cả việc hiển thị dữ liệu (danh sách, bảng biểu, biểu đồ…) và đảm bảo đúng định dạng font chữ, màu sắc nếu có.

4.5 Kiểm thử luồng báo cáo (report flow testing)

Kỹ thuật này yêu cầu xác định số lượng báo cáo được hỗ trợ bởi phần mềm dựa trên tài liệu đặc tả. Chúng ta cần đảm bảo sự thống nhất về nội dung và bố cục giữa các tài liệu in. Cần kiểm tra việc in ra màn hình, in ra file và in ra giấy bằng máy in. Cần chú ý đến định dạng font chữ, màu sắc và các yêu cầu khác liên quan đến in ấn.

Kiểm Thử Chức Năng Trong Kiểm Thử Phần Mềm

5. Kiểm thử chức năng và kiểm thử phi chức năng

Trong kiểm thử phần mềm, kiểm thử chức năng và kiểm thử phi chức năng có một số điểm khác biệt. Dưới đây là so sánh giữa hai loại kiểm thử này:

Kiểm Thử Chức Năng Kiểm Thử Phi Chức Năng
Thực hiện dựa trên đặc tả chức năng do khách hàng cung cấp và xác minh hệ thống theo yêu cầu chức năng Kiểm tra hiệu năng, độ tin cậy, khả năng mở rộng và các yêu cầu phi chức năng khác
Có thể sử dụng công cụ hoặc kiểm thử bằng tay (manual testing) Hiệu quả hơn khi sử dụng công cụ kiểm thử
Đầu vào là các yêu cầu nghiệp vụ theo tài liệu đặc tả Đầu vào là các thông số như tốc độ tải, độ bảo mật, khả năng mở rộng
Mô tả chức năng của sản phẩm phần mềm Mô tả cách hoạt động của phần mềm
Dễ dàng thực hiện kiểm thử bằng tay Khó khăn khi kiểm thử bằng tay
Các loại kiểm thử chức năng thường gặp: Unit Testing, Smoke Testing, Sanity Testing, Integration Testing, White Box Testing, Black Box Testing, User Acceptance Testing, Regression Testing, Compatibility Testing, Migration Testing Các loại kiểm thử phi chức năng thường gặp: Performance Testing, Load Testing, Volume Testing, Stress Testing, Security Testing, Installation Testing, Penetration Testing

Bài viết trên chỉ là một số tìm hiểu và tổng hợp theo cách hiểu của tôi về kiểm thử chức năng trong kiểm thử phần mềm. Xin cảm ơn mọi người đã đọc bài viết!

Được chỉnh sửa bởi Dnulib.edu.vn. Xem thêm thông tin về kiểm thử chức năng trên trang Dnulib.