Trong nhiều trƣờng hợp, việc cố gắng chuyển một chớnh sỏch hoặc một thủ tục trong ngụn ngữ tự nhiờn vào phần mềm dẫn đến sự thất bại và cỏc vấn đề khú hiểu. Đồ thị nhõn - quả là một phƣơng phỏp thiết kế trƣờng hợp kiểm thử trờn cơ sở đƣa ra một sự mụ tả sỳc tớch cỏc điều kiện logic và cỏc hành vi kốm theo.
Đồ thị nhõn - quả sử dụng mụ hỡnh cỏc quan hệ logic giữa nguyờn nhõn và kết quả cho thành phần phần mềm. Mỗi nguyờn nhõn đƣợc biểu diễn nhƣ một điều kiện (đỳng hoặc sai) của một đầu vào, hoặc kết hợp cỏc đầu vào. Mỗi kết quả đƣợc biểu diễn nhƣ là một biểu thức Bool biểu diễn một kết quả tƣơng ứng cho những thành phần vừa thực hiện.
Đồ thị nhõn - quả đƣợc tạo nhƣ sau:
Tất cả cỏc nguyờn nhõn (đầu vào) và cỏc kết quả (đầu ra) đƣợc liệt kờ dựa trờn đặc tả và đƣợc định danh cho mỗi nhõn - quả.
Cỏc quan hệ giữa cỏc nguyờn nhõn (cỏc đầu vào) và cỏc kết quả (cỏc đầu ra) đƣợc biểu diễn trong đồ thị làm rừ ràng cỏc quan hệ logic.
Từ đồ thị tạo ra bảng quyết định biểu diễn cỏc quan hệ giữa nguyờn nhõn và kết quả. Dữ liệu kiểm thử đƣợc sinh ra dựa trờn cỏc qui tắc trong cỏc bảng này. Cỏc ký hiệu đƣợc đơn giản hoỏ sử dụng trong đồ thị nhõn quả, gồm cỏc phần tử mụ tả nhƣ bảng 2.3.
Bảng 2.3 - Cỏc ký hiệu trong đồ thị nhõn quả
STT Ký hiệu í nghĩa Giải thớch
1 Tƣơng đƣơng Nếu đỳng thỡ đỳng.
2 AND (và) Nếu đỳng và đỳng, thỡ đỳng 3 OR (hoặc) Nếu đỳng hoặc đỳng, thỡ đỳng 4 NOT (phủ định) Nếu sai, thỡ đỳng
5 Loại trừ Nếu đỳng, thỡ sai, hoặc nếu sai thỡ đỳng.
6 Bao hàm
bao hàm
7 Yờu cầu yờu cầu
Cỏc qui tắc trong bảng quyết định đƣợc mụ tả nhƣ sau:
V
ớ dụ: Để tớnh thuế thu nhập, ngƣời ta cú mụ tả sau:
Tờn bảng Qui tắc Tờn bảng: cho biết tờn logic
Qui tắc: đỏnh số để phõn biệt cỏc qui tắc quyết định logic.
Cỏc dũng điều kiện: Mỗi dũng bao gồm cỏc điều
kiện để tạo quyết định cho chƣơng trỡnh. Y: “true”
N: “false”
-- : Khụng cú quyết định đƣợc tạo ra.
Cỏc hành động: Mỗi dũng chỉ định cú cỏc xử lý đƣợc thực hiện hoặc khụng. X: Xử lý đƣợc thực hiện. -- : Khụng cú xử lý đƣợc thực hiện. 1 2 … n Điều kiện 1 Y Y Y Điều kiện 2 Y -- Y Điều kiện 3 Y -- N … … … … Điều kiện n -- -- Y Hành động 1 X X X Hành động 2 -- X X Hành động 3 X -- X … … … … Hành động n -- -- X a b a c b AND a c b OR a b a E b a I b a R b a b a b c a b c b a a b a b b b a a
Người vụ gia cư nộp 4% thuế thu nhập Người cú nhà ở nộp thuế theo bảng sau:
Tổng thu nhập Thuế
<= 5.000.000 đồng 4% > 5.000.000 đồng 6%
Quan hệ giữa nguyờn nhõn (đầu vào) và kết quả (đầu ra) nhƣ sau:
Nguyờn nhõn Kết quả 1. Ngƣời cú nhà ở 2. Tổng thu nhập <= 5.000.000 đồng 3. Tổng thu nhập > 5.000.000 đồng 4. Nộp 4 % thuế 5. Nộp 6% thuế Đồ thị biểu diễn quan hệ logic rừ ràng giữa nguyờn nhõn-kết quả
Hỡnh 0.11 - Vớ dụ đồ thị nhõn-quả
Xõy dựng bảng quyết định dựa trờn đồ thị. Từ đõy xõy dựng đƣợc bốn trƣờng hợp kiểm thử (một trƣờng hợp cho việc nộp thuế 6% và ba trƣờng hợp kiểm thử cần cho việc nộp thuế 4%).
Bảng 0.4 – Vớ dụ bảng quyết định
Để đảm bảo phủ nhõn quả 100%, cỏc trƣờng hợp kiểm thử phải đƣợc phỏt sinh tƣơng ứng với cỏc qui tắc trong bảng quyết định bảng 2.4.
Vớ dụ 2: Xem xột một chƣơng trỡnh thực hiện giao dịch A/C nhƣ sau
Trƣờng hợp kiểm thử Nguyờn nhõn và kết quả 1 2 3 4 N g u y ờ n n h õ n 1. Ngƣời cú nhà ở Y Y N -- 2. Cú tổng thu nhập <= 5.000.000 N Y -- Y 3. Cú tổng thu nhập > 5.000.000 Y N -- -- K ết quả 4. Nộp thuế 4% -- X X X 5. Nộp thuế 6% X -- -- -- 2 1 3 4 5 Tổng thu nhập ≤ 5000000 người cú nhà ở Tổng thu nhập >5000000 4% thuế 6% thuế OR AND NOT
Điều kiện đầu vào Điều kiện đầu ra
C1: Lệnh là tiền gửi E1: In lệnh khụng hợp lệ C2: Lệnh ghi nợ E2: In A/C khụng hợp lệ C3: A/C hợp lệ E3: In số ghi nợ khụng hợp lệ C4: Giỏ trị giao dịch hợp lệ E4: ghi nợ A/C hợp lệ
E5: gửi tiền A/C
Trƣờng hợp kiểm thử 1 2 3 4 5 C1 N Y -- -- Y C2 N -- Y Y -- C3 -- N Y Y Y C4 -- -- N Y Y E1 X -- -- -- -- E2 -- X -- -- -- E3 -- -- X -- -- E4 -- -- -- X -- E5 -- -- -- -- X 2.3.1.4. Kiểm thử so sỏnh
Cú một số trƣờng hợp (nhƣ điện tử mỏy bay, điều khiển thiết bị năng lƣợng hạt nhõn) trong đú độ tin cậy của phần mềm là tuyệt đối quan trọng, ngƣời ta thƣờng gọi là phần mềm tuyệt đối đỳng. Trong cỏc ứng dụng nhƣ vậy phần cứng và phần mềm khụng cần thiết thƣờng đƣợc sử dụng để tối thiểu khả năng lỗi. Khi phần mềm khụng cần thiết đƣợc phỏt triển, cỏc nhúm cụng nghệ phần mềm riờng biệt phỏt triển cỏc phiờn bản độc lập của ứng dụng sử dụng cựng một đặc tả. Trong cỏc trƣờng hợp nhƣ vậy, mỗi phiờn bản cú thể đƣợc kiểm thử với cựng dữ liệu kiểm thử để đảm bảo rằng tất cả cung cấp đầu ra y nhƣ nhau. Sau đú tất cả cỏc phiờn bản đƣợc thực thi song song
C1 C2 C3 C4 E2 E3 E5 E4 E1
với so sỏnh thời gian thực cỏc kết quả để đảm bảo tớnh chắc chắn. Cỏc phiờn bản độc lập là cơ sở của kỹ thuật kiểm thử hộp đen đƣợc gọi là kiểm thử so sỏnh hay kiểm thử back-to-back.
Khi nhiều cài đặt của cựng một đặc tả đƣợc đƣa ra, cỏc trƣờng hợp kiểm thử đƣợc thiết kế sử dụng cỏc kỹ thụõt hộp đen khỏc (vớ dụ phõn hoạch cõn bằng) đƣợc cung cấp nhƣ đầu vào cho mỗi phiờn bản của phần mềm. Nếu đầu ra của mỗi phiờn bản là nhƣ nhau, sẽ cho rằng tất cả cỏc cài đặt là đỳng. Nếu đầu ra là khỏc nhau, mỗi ứng dụng đƣợc nghiờn cứu để xỏc định cú sai sút nào trong một hoặc nhiều phiờn bản là nguyờn nhõn gõy ra lỗi. Trong nhiều trƣờng hợp, so sỏnh cỏc đầu ra cú thể đƣợc thực hiện bởi cỏc cụng cụ tự động.
Kiểm thử so sỏnh là khụng rừ ràng. Nếu đặc tả mà tất cả cỏc phiờn bản đƣợc phỏt triển trờn đú là cú lỗi, thỡ tất cả cỏc phiờn bản sẽ cú khả năng dẫn đến lỗi. Hơn nữa, nếu mỗi phiờn bản độc lập tạo ra giống nhau, nhƣng khụng đỳng, cỏc kết qủa, kiểm thử điều kiện sẽ thất bại trong việc phỏt hiện lỗi.
2.3.1.5. Đoỏn lỗi
Khụng cần một phƣơng phỏp đặc biệt nào, một số chuyờn gia cú thể kiểm tra cỏc điều kiện lỗi bằng cỏch đoỏn lỗi dễ xảy ra. Trờn cơ sở trực giỏc và kinh nghiệm, với cỏc chƣơng trỡnh cụ thể, cỏc chuyờn gia đoỏn trƣớc cỏc loại lỗi cú thể, rồi viết cỏc trƣờng hợp kiểm thử để phơi ra cỏc lỗi này.
Khú cú thể đƣa ra đƣợc một thủ tục cho việc đoỏn lỗi vỡ đú là một quỏ trỡnh của trực giỏc và tự học. í tƣởng cơ bản là liệt kờ một danh sỏch cỏc lỗi cú thể hoặc những tỡnh huống dễ mắc lỗi, rồi viết cỏc trƣờng hợp kiểm thử dựa trờn danh sỏch. Chẳng hạn nhƣ sự xuất hiện giỏ trị 0 trong đầu vào hoặc đầu ra của một chƣơng trỡnh là tỡnh huống dễ cú lỗi. Vỡ vậy, ngƣời ta viết những trƣờng hợp kiểm thử cho cỏc giỏ trị đầu vào cú giỏ trị là 0 và cỏc giỏ trị ra là 0. Và cũng nhƣ vậy đối với trƣờng hợp số biến vào và ra cú thể biểu diễn (chẳng hạn đầu vào là một danh sỏch tỡm kiếm), cỏc trƣờng hợp danh sỏch rỗng hoặc chỉ chứa một phần tử là những tỡnh huống dễ gõy lỗi.
Một ý tƣởng khỏc là chỉ ra cỏc trƣờng hợp kiểm thử liờn quan đến giả định rằng lập trỡnh viờn đó mắc phải khi đọc đặc tả (tức là những thứ bị bỏ sút từ đặc tả cú thể do tỡnh cờ).
2.3.2 Quy trỡnh kỹ thật kiểm định hộp đen
Quy trỡnh kỹ thuật kiểm định hộp đen là quy trỡnh sử dụng cỏc kỹ thuật kiểm định hộp đen một cỏch hợp lý để kiểm định phần mềm trờn cỏc chức năng của chỳng cú thực hiện theo đỳng đặc tả hay khụng. Để thực hiện kiểm định phần mềm sử dụng cỏc kỹ thuật hộp đen nhằm phỏt hiện lỗi của chƣơng trỡnh trờn cỏc chức năng của chỳng một cỏch hiệu quả nhất, với chi phớ và thời gian tiờu tốn ớt nhất chỳng ta cần cú một quy trỡnh kiểm định hợp lý. Sau đõy là cỏc bƣớc của một quy trỡnh:
Bƣớc 1: Xỏc định yờu cầu kiểm định hộp đen
Trong bƣớc này dựa vào đặc tả của chƣơng trỡnh để xỏc định cỏc chức năng cần kiểm định, xỏc định cỏc miền giỏ trị dữ liệu vào và giỏ trị dữ liệu ra.
Bƣớc 2: Phõn tớch dữ liệu vào ra
Để thiết kế cỏc trƣờng hợp kiểm định cho mỗi chức năng ta phải tiến hành phõn tớch cỏc miền giỏ trị dữ liệu vào và dữ liệu ra bằng cỏch:
- Phõn hoạch miền đầu vào thành cỏc lớp tƣơng đƣơng, hợp lệ hay khụng hợp lệ, cỏc giỏ trị đặc trƣng.
- Xỏc định cỏc giỏ trị biờn và cỏc giỏ trị kề cận trong và ngoài biờn cho cỏc lớp tƣơng đƣơng.
Bƣớc 3: Thiết kế cỏc trƣờng hợp kiểm định
- Dựa vào sự phõn tớch miền giỏ trị, thiết kế cỏc trƣờng hợp kiểm định đại diện cho cỏc lớp tƣơng đƣơng, giỏ trị biờn và kề cận trong và ngoài biờn cũng nhƣ lỗi dự đoỏn theo tri thức và kinh nghiệm.
- Dự kiến kết quả dữ liệu ra bằng việc xõy dựng một bộ oracle kiểm định ở bƣớc tiếp theo là bƣớc thiết kế và lập trỡnh kiểm định.
Bƣớc 4: Thiết kế & lập trỡnh kiểm định hộp đen
- Thiết kế và lập trỡnh giao diện kiểm định: Dựa vào đặc tả yờu cầu để thiết kế giao diện kiểm định, về cơ bản giao diện cú thể biểu diễn đƣợc cho từng trƣờng hợp kiểm định: dữ liệu vào, dữ liệu ra và kết quả đỏnh giỏ dữ liệu ra của chƣơng trỡnh cần kiểm định thực tế cú đỳng nhƣ đặc tả của hệ thống hay khụng.
- Thiết kế và lập trỡnh cấu trỳc bờn trong của chƣơng trỡnh, nhằm đỏp ứng cỏc chức năng đƣợc thiết kế trờn giao diện của chƣơng trỡnh kiểm định.
Trong việc thiết kế & lập trỡnh kiểm định này một bộ oracle kiểm định sẽ đƣợc xõy dựng.
Bƣớc 5: Thực thi kiểm định hộp đen
Tiến hành thực hiện chƣơng trỡnh cần kiểm định lần lƣợt với tất cả cỏc trƣờng hợp kiểm định đó đƣợc thiết kế, bao gồm đƣa vào cỏc giỏ trị dữ liệu vào và cho ra cỏc kết quả dữ liệu ra của từng trƣờng hợp. Sau đú thực thi chƣơng trỡnh kiểm định để tiến hành kiểm tra so sỏnh cỏc kết quả của chƣơng trỡnh cần kiểm định với đặc tả của oracle kiểm định.
Bƣớc 6: Đỏnh giỏ kết quả
- Khảo sỏt cỏc kết quả của cỏc trƣờng hợp kiểm định, so sỏnh kết quả thực thi với đặc tả của oracle kiểm định đỳng hay sai.
Hỡnh 2.12. Cỏc bƣớc của quy trỡnh kiểm định hộp đen.
Vớ dụ minh hoạ
Kiểm định chƣơng trỡnh giải phƣơng trỡnh bậc hai ax2+bx+c, bằng phƣơng phỏp hộp đen. Chỳng ta khụng sử dụng mó nguồn để xỏc định bộ kiểm định, để giải quyết vấn đề này chỳng ta đƣa ra bốn loại của dữ liệu kiểm định:
- Dữ liệu dễ tớnh toỏn. (theo kinh nghiệm) - Dữ liệu đặc trƣng.
- Dữ liệu biờn.
- Dữ liệu khụng hợp lệ.
Áp dụng quy trỡnh kỹ thuật kiểm định hộp đen ta thực hiện nhƣ sau:
Bƣớc 1: Xỏc định yờu cầu kiểm định
Xỏc định yờu cầu kiểm định
Phõn tớch dữ liệu vào, ra
Thiết kế cỏc trƣờng hợp kiểm định
Thiết kế & lập trỡnh kiểm định hộp đen
Thực thi kiểm định hộp đen
Đỏnh giỏ kết quả Bƣớc 1 Bƣớc 2 Bƣớc 3 Bƣớc 4 Bƣớc 5 Bƣớc 6
Để tiến hành kiểm định chƣơng trỡnh giải phƣơng trỡnh bậc hai ta xỏc định yờu cầu cần phải tiến hành khảo sỏt phƣơng trỡnh bậc hai để xỏc định hai nghiệm của phƣơng trỡnh bậc hai ax2+bx+c.
Dễ dàng nhận thấy rằng chỳng ta sẽ thực hiện với cỏc số thực và đƣa ra một thụng bỏo lỗi nếu kết quả là hai nghiệm là số phức (cỏc số này là căn bậc hai của số õm).
Chỳng ta cú thể đƣa ra dữ liệu kiểm định đối với mỗi trƣờng hợp dựa trờn cỏc giỏ trị của biểu thức delta (b2-4ac), bởi vỡ giỏ trị dữ liệu ra phụ thuộc vào kết quả của biểu thức này, nhƣ vậy:
- Dữ liệu vào: gồm ba phần tử (a, b,c) là số thực.
- Dữ liệu ra: gồm hai phần tử (x1, x2) hợp lệ nếu là số thực, và ngƣợc lại là khụng hợp lệ.
Bƣớc 2: Phõn tớch dữ liệu vào, ra
- Lớp dữ liệu dễ tớnh toỏn, dựa theo kinh nghiệm:
Cỏc hệ số a, b, c lần lƣợt theo thứ tự là: 1, 2, 1. Nghiệm hợp lệ. hoặc: 1, 3, 2. Nghiệm hợp lệ. - Lớp dữ liệu đặc trƣng (biểu thức delta dƣơng):
Cỏc hệ số a, b, c lần lƣợt theo thứ tự là: 1, 4, 1. Hai nghiệm hợp lệ. hoặc : 2, 4, 1. Hai nghiệm hợp lệ. - Lớp dữ liệu biờn (biểu thức delta bằng 0):
Cỏc hệ số a, b, c lần lƣợt theo thứ tự là: 2, -4, 2. Nghiệm kộp hợp lệ.
hoặc : 2, -8, 8. Nghiệm kộp hợp lệ.
- Lớp dữ liệu khụng hợp lệ: phộp chia cho 0 (nghiệm khụng xỏc định). Cỏc hệ số a, b, c lần lƣợt theo thứ tự là: 0, 1, 1.
- Lớp dữ liệu khụng hợp lệ: nghiệm phƣơng trỡnh là số phức. Căn bậc hai của một số õm (biểu thức delta cú kết quả õm). Cỏc hệ số a, b, c lần lƣợt theo thứ tự là: 1, 1, 1.
Bƣớc 3: Thiết kế cỏc trƣờng hợp kiểm định
Dựa trờn sự phõn tớch ta cú cỏc trƣờng hợp kiểm định sau: - Dữ liệu dễ tớnh toỏn, dựa theo kinh nghiệm.
Trƣờng
hợp a b c Cỏc nghiệm
1 1 2 1 -1, -1
2 1 3 2 -1, -2
- Dữ liệu đặc trƣng (biểu thức delta dƣơng):
a b c Cỏc nghiệm
3 1 4 1 -3.73205, -0.267949
4 2 4 1 -1.70711, -0.292893
- Dữ liệu biờn (biểu thức delta bằng 0):
a b c Cỏc nghiệm
5 2 -4 2 1, 1
6 2 -8 8 2, 2
- Dữ liệu khụng hợp lệ:
a b c Cỏc nghiệm
7 0 1 1 Phộp chia cho 0 (khụng xỏc định cho phƣơng trỡnh bậc 2).
8 1 1 1 Căn bậc hai của một số õm (số phức), delta
<0.
Bƣớc 4: Thiết kế & lập trỡnh kiểm định hộp đen
* Thiết kế và lập trỡnh giao diện kiểm định: Dựa vào đặc tả, yờu cầu bài toỏn để thiết kế giao diện kiểm định, về cơ bản giao diện cú thể thể hiện:
- Tờn chƣơng trỡnh kiểm định.
- Cỏc trƣờng hợp kiểm định đó thiết kế: Dữ liệu vào a, b, c, dữ liệu ra nghiệm x1, x2 (hoặc thụng bỏo) và kết quả kiểm định của từng trƣờng hợp (đỳng /sai).
Bảng 2.1 Minh hoạ cỏc thụng tin cần cho giao diện chƣơng trỡnh kiểm định hộp đen. Trƣờng hợp Dữ liệu vào (Cỏc hệ số) Dữ liệu ra
(Cỏc nghiệm) Kết quả kiểm định
a b c x1 x2
1 1 2 1 -1 -1 True (false)
.. .. .. .. .. .. ..
8 1 1 1 Căn bậc hai của một số õm ( số phức).
True (false)
* Thiết kế và lập trỡnh cấu trỳc bờn trong của chƣơng trỡnh, nhằm đỏp ứng cỏc chức năng đƣợc thiết kế trờn giao diện của chƣơng trỡnh kiểm định.
Cụ thể chƣơng trỡnh phải đỏp ứng cỏc yờu cầu sau:
- Thực hiện đƣợc lần lƣợt cỏc trƣờng hợp kiểm định trờn.