Tìm hiểu về kiểm thử chức năng (Functionality Testing)
Bài đăng này đã không được cập nhật trong 3 năm
Kiểm thử chức năng là một trong số 4 loại kiểm thử chính thuộc level kiểm thử thứ 2- Kiểm thử tích hợp (Integration Test) trong kiểm thử phần mềm. Vậy kiểm thử chức năng có mục đích và vai trò như thế nào trong kiểm thử phần mềm? Chúng ta cùng tìm hiểu ngay sau đây!
I, Định nghĩa:
- Kiểm thử chức năng là một loại kiểm thử hộp đen (black box) và test case của nó được dựa trên đặc tả của ứng dụng phần mềm/thành phần đang test. Các chức năng được test bằng cách nhập vào các giá trị nhập và kiểm tra kết quả đầu ra, và ít quan tâm đến cấu trúc bên trong của ứng dụng.
- Nó là một qui trình cố gắng tìm ra các khác biệt giữa đặc tả bên ngoài của phần mềm và thực tế mà phần mềm cung cấp. Với các đặc tả bên ngoài của phần mềm là đặc tả chính xác về hành vi của phần mềm theo góc nhìn của người dùng.
II, Mục đích
- Với kiểm thử đơn vị ta phát hiện sự khác biệt giữa đặc tả giao tiếp của đơn vị và thực tế mà đơn vị này cung cấp.
- Với kiểm thử hệ thống ta chỉ ra rằng chương trình không tương thích với các mục tiêu ban đầu của nó. Thì:
-
Với kiểm thử chức năng ta sẽ hoàn thiện nốt phần cần xác minh còn lại là chỉ ra rằng chương trình không tương thích với các đặc tả bên ngoài của nó.
- Các lợi ích : tránh kiểm thử dư thừa. ngăn chặn sự quan tâm nhiều vào quá nhiều loại lỗi tại từng thời điểm.
III, Các kỹ thuật thường dùng trong kiểm thử chức năng:
Kiểm thử chức năng thường sử dụng 1 kỹ thuật kiểm thử hộp đen : Kỹ thuật phân lớp tương đương (Equivalence Class Partitioning). Kỹ thuật dùng các bảng quyết định (Decision Tables) Kỹ thuật kiểm thử các bộ thần kỳ (Pairwise) Kỹ thật phân tích vùng miền (domain analysis) Kỹ thuật dựa trên đặc tả Use Case (Use case)
IV, Các cách tiếp cận để kiểm thử chức năng phần mềm :
Kiểm thử chức năng khác với kiểm thử hệ thống, kiểm thử chức năng là “xác nhận – verify – một ứng dụng bằng cách kiểm tra nó dựa vào các tài liệu thiết kế hoặc đặc tả kỹ thuật”, còn kiểm thử hệ thống là “xác minh – validate – chương trình bằng cách kiểm tra nó dựa vào các yêu cầu của Người dùng hoặc hệ thống đã công bố” (Testing computer software - Kaner, Falk, Nguyen 1999, p. 52). Kiểm thử chức năng thường bao gồm 5 bước (trích dẫn các bước cần thiết):
- Việc xác định các chức năng mà phần mềm mong muốn sẽ thực hiện
- Việc tạo ra các dữ liệu đầu vào dựa trên các tài liệu đặc tả kỹ thuật của các chức năng
- Việc xác định kết quả đầu ra dựa trên các tài liệu đặc tả kỹ thuật của các chức năng
- Việc thực hiện các trường hợp kiểm thử
- Việc so sánh kết quả thực tế và kết quả mong muốn. Các kỹ thuật cụ thể gồm: User Navigation Testing Transaction Screen Testing Transaction Flow Testing Report Screen Testing Report Flow Testing Database Create/Retrieve/Update/Delete Testing
1. Kiểm thử khả năng duyệt chức năng của người dùng (User Navigation Test)
Các màn hình phục vụ duyệt thực hiện chức năng là màn hình log on/log off, menu bar và hệ thống cây phân cấp các option để thực hiện chức năng, toolbar, tất cả các mối liên kết từ màn hình này tới màn hình khác để thể hiện sự liên tục của hoạt động nghiệp vụ đang cần thực hiện. Kiểm thử khả năng duyệt chức năng của người dùng tập trung trên :
- khả năng người dùng login vào hệ thống với quyền hạn thích hợp.
- di chuyển qua các màn hình "giao tác" mong muốn 1 cách đúng đắn và logout khỏi phần mềm.
2. Kiểm thử màn hình thao tác (Transaction screen Test)
Màn hình thao tác có các field nhập liệu, list chọn option, các options, các button chức năng (Add, Change, Delete, Submit, Cancel, OK...). Một vài loại kết quả có thể được hiển thị trên màn hình thao tác sau khi người dùng click button chức năng nào đó. Công việc của người kiểm thử :
- Thiết kế testcase để xác thực hoạt động của mỗi field dữ liệu, list, option và button trên màn hình giao tác theo các yêu cầu nghiệp vụ, tài liệu người dùng và tài liệu người quản trị.
- Nếu kết quả được hiển thị trên màn hình thao tác, thì kỹ thuật kiểm thử hộp đen với testcase gồm (data input, ouput kỳ vọng) sẽ được dùng để xác thực kết quả hiển thị.
3. Kiểm thử luồng thao tác (Transaction Flow Test)
Kiểm tra kết quả tổng hợp của nhiều màn hình thao tác theo thứ tự duyệt đúng có hoàn thành hoạt động nghiệp vụ tương ứng không ? Thí dụ nghiệp vụ cập nhật profile khách hàng gồm các màn hình thao tác sau : màn hình 1 cập nhật tên, địa chỉ, contact. Màn hình 2 cập nhật credit. Màn hình 3 cập nhật thông tin thanh toán và khuyến mãi. Màn hình 4 tổng kết profile và thực hiện cập nhật. Màn hình 5 để xem kết quả profile đã cập nhật. Kết quả cuối cùng của trình tự các màn hình là file hay database sẽ ₫ược cập nhật để chứa các thông tin mà người dùng ₫ã cập nhật thông qua các màn hình thao tác. Nhiệm vụ của người kiểm thử : Xác thực rằng nếu người dùng thực hiện đúng trình tự các màn hình thao tác và hoàn tất được chúng thì hệ thống sẽ cung cấp kết quả đúng. Ngược lại, nếu người dùng không tuân thủ bất kỳ 1 qui luật nghiệp vụ nào trong 1 màn hình thao tác nào thì hệ thống sẽ không cung cấp kết quả gì cho người dùng.
4. Kiểm thử màn hình report (Report screen Test)
Màn hình report cho phép tìm kiếm dữ liệu và hiển thị kết quả (không cần nhập dữ liệu như màn hình giao tác). Khó khăn trong kiểm thử màn hình report nằm ở chỗ có nhiều cách mà người dùng có thể đặc tả dữ liệu cần được tìm kiếm (tiêu chuẩn) và cách thức dữ liệu này ₫ược hiển thị (sắp xếp và định dạng). Công việc của người kiềm thử:
- chú ý đặc biệt vào dữ liệu tìm kiếm và hiển thị vì người dùng có thể chọn sai dữ liệu hay tệ hơn là không có kết quả nào được hiển thị.
5. Kiểm thử luồng report (Report Flow Test)
Kiểm thử các khác biệt giữa kết quả hiển thị trong màn hình report và các phương thức report khác (như máy in, file,..). Nhiệm vụ của người kiểm thử : Xác định xem phần mềm gởi cùng kết quả ra màn hình report và máy in ? Xác thực kết quả report trên tất cả phương thức báo cáo khác nhau được hỗ trợ bởi phần mềm. Xác định xem khả năng máy in có hỗ trợ font, vùng chọn được người dùng xác định trong màn hình report ?
6. Kiểm thử việc Create/Retrieve/Update/Delete database
Thường được thực hiện thông qua 2 bước : Kiểm thử việc thiết kế, khởi tạo database ban đầu thông qua tiện ích bên ngoài phần mềm ứng dụng cần kiểm thử. Kiểm thử việc phần mềm sử dụng database ₫ã ₫ược thiết kế và khởi tạo ₫úng. Đòi hỏi sự hợp tác và cộng tác giữa người kiểm thử và người quản trị database.
V. Kết luận
Kiểm thử chức năng nhằm trả lời cho câu hỏi "người dùng có hay không làm được với tính năng cụ thể của chương trình". Thông qua các kỹ thuật được giới thiệu ỏ trên thì việc trả lời câu hỏi này không còn là bài toán khó trong đảm bảo chất lượng sản phẩm phần mềm nữa.
Tài liệu tham khảo: http://www.cse.hcmut.edu.vn/~hiep/KiemthuPhanmem/LyThuyetViet/
All rights reserved