Sinh dữ liệu kiểm thử trong kiểm thử chức năng

Một phần của tài liệu (LUẬN án TIẾN sĩ) các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ UML luận án TS máy tính 624801 (Trang 42 - 44)

2.5 Tổng quan về sinh dữ liệu kiểm thử tự động

2.5.2 Sinh dữ liệu kiểm thử trong kiểm thử chức năng

Kiểm thử chức năng là một loại kiểm thử hộp đen (black box testing) và ca kiểm thử được dựa trên đặc tả của hệ thống. Các chức năng được kiểm thử bằng cách nhập vào các giá trị đầu vào, thực thi hệ thống và kiểm tra kết quả đầu ra, và ít quan tâm đến cấu trúc bên trong của hệ thống.

Một phương pháp của hướng tiếp cận này là phương pháp kiểm thử ngẫu nhiên. Sinh dữ liệu kiểm thử ngẫu nhiên (Random Test Data generation) là việc lấy giá trị đầu vào ngẫu nhiên cho đến khi giá trị đầu vào thỏa mãn các ràng buộc được tìm thấy. Nghiên cứu trong [47] kiểm thử ngẫu nhiên là quá trình chọn ngẫu nhiên theo các miền đầu vào của chương trình được phân chia. Cách tiếp cận này nhanh và đơn giản, nhưng độ bao phủ thấp. Ngày nay, nhiều nhà

nghiên cứu đưa ra cách thực thi thông minh của kiểm thử ngẫu nhiên có thể cải tiến độ bao phủ như phương pháp sinh dữ liệu kiểm thử có tính hệ thống. Kiểm thử ngẫu nhiên thực thi dựa trên giá trị tượng trưng [19, 109, 113, 112] hoặc giá trị thực [43, 88, 44]. Thực thi tượng trưng là kỹ thuật hữu ích cho kiểm chứng và kiểm thử. Sử dụng thực thi tượng trưng thì có thể chọn tập hợp các vị từ là tuần tự các nhánh vị từ được xuất hiện trên một phần đường cụ thể. Một tập các ràng buộc tìm thấy và được giải sử dụng bộ giải ràng buộc để sinh dữ liệu kiểm thử. Do đó, hiệu quả của bộ giải các ràng buộc là vấn đề chính. Phương pháp này u cầu khơng có ràng buộc bị vi phạm kiểm tra cho các vị từ nhánh vì tất cả các ràng buộc có thể được giải chỉ một lần. Nhưng vấn đề trong phương pháp này là biến giá trị các tượng trưng có thể là các biểu thức phức tạp và khó để giải. Trường hợp này sẽ phức tạp hơn nếu tốn tử phi tuyến tính xuất hiện. Trong thực thi giá trị thực thay thế vào là các giá trị, chương trình được chạy với một vài các giá trị đầu vào được chọn ngẫu nhiên. Mục tiêu ở đây là thay đổi các giá trị đầu vào ngẫu nhiên cho các đường dự định được thực hiện. Phương pháp này khá đắt tốn kém về tốc độ thực thi và yêu cầu duyệt theo thứ tự từ dưới lên. Thách thức chính của phương pháp này là sự hiệu quả của việc tìm kiếm và chọn các hàm mục tiêu thích hợp để số lượng các phép duyệt là nhỏ nhất. Các nhà nghiên cứu luôn nhấn mạnh vào việc phát triển cách tiếp cận để kết nối ưu điểm của phương pháp thực thi tượng trưng và thực thi giá trị. Trong kiểm thử ngẫu nhiên các nghiên cứu gần đây sử dụng cách tiếp cận lai cho sinh dữ liệu kiểm thử. DART (Directed Automated Random Testing) trong [44], sử dụng chiến lược tìm kiếm trực tiếp. DART thực thi chương trình tính tốn trong từng lần thực thi, vectơ đầu vào cho lần thực thi tiếp theo. Vectơ này bao gồm các giá trị được giải từ các ràng buộc tượng trưng, được tập hợp từ các vị từ trong các phân đoạn rẽ nhánh trong lần thực thi trước đó. Véctơ đầu vào mới sẽ thực thi chương trình thơng qua đường dẫn mới. Bằng việc lặp các tiến trình tìm kiếm trực tiếp duyệt các chương trình qua tất cả các đường dẫn khả thi. Khó khăn của DART để giải các ràng buộc được sinh ra bởi chương trình. Nhưng nhược điểm của phương pháp kiểm thử này là thông tin về yêu cầu kiểm thử không kết hợp chặt chẽ trong q trình sinh dữ liệu, do đó có thể có lỗi trong việc thỏa mãn các yêu cầu và độ bao phủ thấp.

Một phần của tài liệu (LUẬN án TIẾN sĩ) các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ UML luận án TS máy tính 624801 (Trang 42 - 44)

Tải bản đầy đủ (PDF)

(175 trang)