GATeL [64] là một công cụ hỗ trợ sinh ra các ca kiểm thử từ các chương trình Lustre. GATeL cho phép chúng ta định nghĩa các mục tiêu kiểm thử và các dữ liệu được tạo ra nhằm thỏa mãn các mục tiêu đó. Một mục tiêu kiểm thử có thể là một tính chất về an toàn hay tính chất các trạng thái của hệ thống. Việc tạo ra các dữ liệu thử dựa trên việc giải hệ phương trình các ràng buộc liên quan đến luồng dữ liệu trong chương trình. Tuy nhiên, ở mỗi thời điểm tính toán, một số các luồng dữ liệu đầu vào không được định nghĩa giá trị khi hệ phương trình các ràng buộc được giải. Vì vậy, một tiến trình khởi
136
gán trên các đầu vào này được thực hiện nhằm có được sự bao phủ cấu trúc tốt nhất. Tiến trình này đòi hỏi người kiểm thử tương tác với công cụđể chia miền vào của dữ liệu thử. Do đó, trong thử nghiệm này, chúng tôi đo lường chi phí sinh ra dữ liệu dựa trên thời gian sinh dữ liệu và số lần chia miền vào của người kiểm thử.
Trước hết, chúng tôi sinh ra mã nguồn Lustre từ B01_AUTOMATON, sau đó định nghĩa các mục tiêu kiểm thử thỏa mãn hai tiêu chí cơ bản: bao phủ trạng thái và bao phủ chuỗi chuyển tiếp. Đối với tiêu chí bao phủ trạng thái, chúng tôi thu được các độ đo về chi phí trong Bảng 5.4, trong đó số dữ liệu thử được ký hiệu SDL, tổng thời gian6 sinh dữ liệu thử được ký hiệu TTGS, thời gian trung bình sinh một dữ liệu thử được ký hiệu TGTBS và số các lần chia miền vào của người kiểm thửđược ký hiệu SC.
Bảng 5.4. Chi phí kiểm thử bao phủ trạng thái
Trạng thái SDL TTGS TGTBS SC STANDBY 4 19 4.8 3 READY_FOR_CAM 9 69 7.7 8 CAM_INHIB 3 9 3 2 CAM_IN_PROGESS 5 50 10 4 CAM_IN_WAITING 8 60 7.5 7
So sánh chi phí kiểm thử bao phủ trạng thái với khả năng thực thi của các trạng thái, chúng ta nhận thấy rằng thời gian trung bình sinh ra mỗi dữ liệu thử tương ứng với khả năng thực thi của mỗi trạng thái. Chẳng hạn, trạng thái CAM_INHIB dễ thực thi nhất và thời gian trung bình sinh ra mỗi dữ liệu thử cho trạng thái này là ngắn nhất; trạng thái CAM_IN_PROGESS khó thực thi nhất và thời gian trung bình sinh ra mỗi dữ liệu thử cho trạng thái này là dài nhất. Tuy nhiên, chúng ta nhận thấy rằng số lần chia miền vào của người
6 Thời gian được tính bởi phần nghìn giây.
137
kiểm thử tỷ lệ với số các dữ liệu được sinh ra, nhưng không tỷ lệ với độ đo tính khả kiểm thử.
Đối với tiêu chí kiểm thử bao phủ các chuỗi chuyển tiếp, chúng tôi định nghĩa các mục tiêu kiểm thử ứng với các chuỗi chuyển tiếp trong Bảng 5.3. Chúng tôi thu được kết quả trong Bảng 5.5.
Bảng 5.5. Chi phí kiểm thử bao phủ chuỗi chuyển tiếp
Chuỗi chuyển tiếp SDL TTGS TGTBS SC Seq1 5 40 8 5 Seq2 3 10 3.3 5 Seq3 2 20 10 4 Seq4 3 40 13.3 5 Seq5 4 60 15 10 Seq6 3 29 9.7 4
Chúng ta nhận thấy rằng thời gian trung bình sinh ra mỗi dữ liệu thử tương ứng với khả năng thực thi của mỗi chuỗi chuyển tiếp. Chẳng hạn, chuỗi
Seq2 dễ thực thi nhất và thời gian trung bình sinh ra mỗi dữ liệu thử cho chuỗi này là ngắn nhất; chuỗi Seq5 khó thực thi nhất và thời gian trung bình sinh ra mỗi dữ liệu thử cho chuỗi này là dài nhất. Tuy nhiên, chúng ta nhận thấy rằng số lần chia miền vào của người kiểm thử không tương ứng số dữ liệu thử được sinh ra và khả năng thực thi của chuỗi chuyển tiếp.
Thử nghiệm này cho thấy độ đo tính khả kiểm thử tương ứng với thời gian sinh ra dữ liệu thử bởi công cụ GATeL, nhưng không tương ứng với chi phí chia miền vào của người kiểm thử.