Mon, 05 / 2015 4:34 am | helios

Giả sử ta có ba hàm sao cho miền giá trị của một hàm là miền xác định của hàm kế tiếp: f : A — B g : B — C h : C — D Ta có thể kết hợp chúng theo cách sau đây. Với bất kỳ a G A, gọi b […]

Giả sử ta có ba hàm sao cho miền giá trị của một hàm là miền xác định của hàm kế tiếp:

f : A — B g : B — C h : C — D

Ta có thể kết hợp chúng theo cách sau đây. Với bất kỳ a G A, gọi b = f (a), c = g(b), d = h(c), b G B,c G C,d G D. Kết hợp của f, g, h là hàm

h o g o f (a) = h(g(f (a)))

= h(g(b))

= h(c)

=d

Ta gọi h o g o f là hàm hợp của f,g,h. Hàm hợp được dùng phổ biến trong phát triển phần mềm. Khái niệm này cũng như các thủ tục và các chương trình con. Chuỗi các việc kết hợp các hàm có thể gây khó khăn cho người kiểm thử, đặc biệt đối với các hàm vào, như được vẽ trong sơ đồ dòng dữ liệu

18897

Trong dòng nhân quả, g o f (a) (được định nghĩa là g(b) và sinh ra c) là quá trình giống như lắp ráp các đường. Còn trong dòng không nhân quả, khả năng có quá một nguồn tạo ra các giá trị b cho kho dữ liệu B có thể gây ra hai vấn đề cho người kiểm thử: việc nhiều nguồn tạo ra các giá trị b có thể làm mất tương thích giữa miền xác định và miền giá trị, và ngay cả khi

không bị mất tương thích thì cũng có thể nảy sinh vấn đề về các bản khác nhau của b và hàm g có thể được áp dụng vào bản cũ của b.

Có một trường hợp đặc biệt của hàm hợp có ích với người kiểm thử. Nhắc lại rằng hàm một-một có hàm ngược duy nhất. Nếu f I A ^ B là một-một, gọi f-1 I B ^ A là hàm ngược của nó. Khi đó đối với a G A và b G B, ta có f-1 o f (a) = a và f o f-1(b) = b. Khi đó khi cho f, f-1 đóng vai trò giúp người kiểm thử kiểm tra chéo. Chẳng hạn như các hàm NextDate: A ^ B và YesterDate: B ^ A. Việc kiểm tra chéo được tiến hành trên các ca kiểm thử hàm đồng nhất.

 

Bài viết cùng chuyên mục