1.3.4. Cỏc phƣơng phỏp kiểm định phần mềm a. Phƣơng phỏp kiểm định hộp đen
Kỹ thuật kiểm định hộp đen cũn gọi là kiểm định vào ra, chỉ tập trung vào cỏc yờu cầu chức năng của phần mềm.
Người kiểm định xem phần mềm như là một hộp đen khụng thể nhỡn thấy vào bờn trong xem nú hoạt động như thế nào. Do đú, sẽ khụng quan tõm nhiều đến cấu trỳc bờn trong của phần mềm mà cần quan tõm đến miền thụng tin, cho nhập cỏc giỏ trị đầu vào, thực thi chương trỡnh và xem xột cỏc kết quả đầu ra tương ứng cú phự hợp với kết quả mong đợi hay khụng?
Trong kiểm định hộp đen, người kiểm định chỉ biết phần mềm dự kiến thực hiện và những gỡ dự kiến khụng thực hiện. Căn cứ vào đặc tả, người kiểm định xõy dựng cỏc nhúm giỏ trị đầu vào cho tất cả cỏc yờu cầu chức năng của chương trỡnh.
Để tỡm tất cả cỏc lỗi trong chương trỡnh thỡ điều kiện bắt buộc là phải kiểm định tất cả cỏc giỏ trị đầu vào. Điều này thực tế là khụng tể thực hiện được. Tuy nhiờn, nếu số lượng và sự đa dạng của cỏc giỏ trị đầu vào và số lượng kiểm định đạt đến cũng cú thể kết luận rằng: “Phần mềm cú thể chấp nhận được”.
Kiểm định hộp đen nhằm tỡm ra cỏc loại sai [4], đú là:
- Chức năng thiếu hoặc chức năng khụng đỳng đắn. - Sai về giao diện.
- Sai trong cấu trỳc hoặc trong truy cập dữ liệu ngoài. - Sai trong thực thi.
- Sai khởi đầu hoặc kết thỳc.
Dữ liệu vào Kết quả ra
ra
Kiểm định hộp đen tập trung để trả lời cỏc cõu hỏi sau đõy:
- Hiệu lực chức năng được kiểm định đến đõu? - Lớp đầu vào nào làm cho cỏc ca kiểm định tốt? - Sự nhảy cảm đối với một vài giỏ trị vào nào?
- Cỏc biờn của lớp dữ liệu đó được cụ lập như thế nào?
- Khả năng dung thứ lỗi đối với cỏc nhịp điệu và khối lượng dữ liệu như thế nào? - Những tổ hợp dữ liệu đặc biệt ảnh hưởng gỡ đến hoạt động hệ thống.
Khi ỏp dụng cỏc kỹ thuật kiểm định hộp đen, cần tỡm ra được cỏc ca kiểm định thoả món cỏc tiờu chuẩn sau:
- Cỏc ca kiểm định là thu gọn.
- Cỏc ca sử dụng núi cho biết về sự tồn tại hoặc vắng mặt của một lớp sai.
b. Phƣơng phỏp kiểm định hộp trắng
Kiểm định hộp trắng hay cũn gọi là kiểm định hướng logic, cho phộp kiểm tra cấu trỳc bờn trong của phần mềm với mục đớch đảm bảo rằng tất cả cỏc cõu lệnh và điều kiện sẽ được thực hiện ớt nhất một lần. Trong kỹ thuật này người kiểm định lấy dữ liệu xuất phỏt từ việc kiểm tra logic của chương trỡnh (bỏ qua đặc tả).
Hộp Trắng ở đõy chớnh là hộp trong suốt. Chớnh vỡ vậy, kỹ thuật kiểm định này cũn cú một số tờn khỏc là kiểm định hộp thủy tinh (Glass-Box Testing), hay kiểm định hộp trong suốt (Clear-Box Testing). Người kiểm định truy nhập vào mó nguồn chương trỡnh và cú thể kiểm tra nú, lấy đú làm cơ sở để hỗ trợ việc kiểm định (cú nghĩa là người kiểm định cú thể nhỡn thấy bờn trong hộp). Dựa vào những gỡ thấy được, người kiểm định cú thể xỏc định được cỏc số liệu cụ thể và hướng việc kiểm định theo những thụng tin đú.
Kiểm định hộp trắng sẽ đi vào kiểm định cỏc đường dẫn lệnh trong chương trỡnh. Trong một chương trỡnh thụng thường sẽ cú nhiều đường dẫn lệnh của nhiều lưu trỡnh điều khiển khỏc nhau. Nhiệm vụ của kiểm định chớnh là kiểm định toàn bộ lưu trỡnh và đường dẫn lệnh này, khi kiểm định được hết thỡ cú thể khẳng định là chương trỡnh đó được kiểm định.
Nguyờn tắc kiểm định hộp trắng:
- Thực hiện tất cả cỏc đường dẫn độc lập ớt nhất một lần.
- Thực hiện mọi điều kiện logic (if then else) trờn cỏc giỏ trị cú thể True hoặc
False của chỳng.
- Thực hiện mọi vũng lặp (cỏc vũng lặp for, while do, repeat until) tại cỏc biờn và trong phạm vi hoạt động của chỳng.
CHƢƠNG 2
KỸ THUẬT VÀ CHIẾN LƢỢC KIỂM ĐỊNH PHẦN MỀM THEO TIẾP CẬN HỘP ĐEN
2.1. KIỂM ĐỊNH PHẦN MỀM BẰNG KỸ THUẬT HỘP ĐEN 2.1.1. Nguyờn tắc kiểm thử hộp đen
Trong kỹ thuật kiểm định “hộp đen”, người kiểm định coi phần mềm như một hộp đen. Tức là người kiểm định hoàn toàn khụng quan tõm đến cấu trỳc và hoạt động bờn trong của phần mềm. Người kiểm định chỉ cần quan tõm đến việc tỡm cỏc hiện tượng mà phần mềm khụng thực thi theo đỳng đặc tả của nú (dựa trờn đặc tả yờu cầu, người kiểm định chỉ biết những gỡ phần mềm dự kiến thực hiện và tỡm ra những gỡ chưa thực hiện mà khụng thể nhỡn vào bờn trong xem nú hoạt động như thế nào). Vỡ vậy, dữ liệu kiểm định hộp đen dựa trờn cơ sở đặc tả.
Như vậy, cỏch tiếp cận kiểm định hộp đen tập trung vào cỏc yờu cầu chức năng của phần mềm. Kiểm định hộp đen cho phộp cỏc kỹ sư kiểm định xõy dựng cỏc nhúm giỏ trị đầu vào cú khả năng thực thi đầy đủ cỏc yờu cầu chức năng của chương trỡnh. Trờn thực tế, trong cỏc hóng phần mềm thường cú cỏc nhúm thực hiện cụng việc thiết kế và cỏc nhúm kiểm định độc lập với nhau. Tuy vậy, kiểm định hộp đen khụng thay thế kỹ thuật kiểm định hộp trắng, nhưng nú bổ sung khả năng phỏt hiện cỏc lớp lỗi khỏc với phương phỏp hộp trắng để đạt được mục đớch chung cuối cựng là phần mềm hạn chế tối đa số lỗi.
Khụng giống kiểm định hộp trắng được thực hiện sớm trong quỏ trỡnh kiểm định, kiểm định hộp đen được ỏp dụng trong cỏc giai đoạn sau của qui trỡnh kiểm định phần mềm. Vỡ kiểm định hộp đen khụng nhằm mục đớch kiểm tra cấu trỳc bờn trong của cấu trỳc điều khiển mà sự quan tõm tập trung vào miền thụng tin. Kiểm định hộp đen cũng khụng thể tỡm tất cả cỏc lỗi trong chương trỡnh vỡ để cú thể phỏt hiện được tất
cả cỏc lỗi thỡ điều kiện bắt buộc là phải kiểm định tất cả cỏc giỏ trị đầu vào. Tức là mỗi điều kiện đầu vào đều cần một trường hợp kiểm định. Vỡ nếu chỉ kiểm định một số điều kiện đầu vào thỡ khụng đảm bảo được chương trỡnh đó hết lỗi. Tuy nhiờn, trờn thực tế điều này là khụng thể thực hiện được.
Vỡ vậy, một số kỹ thuật kiểm định hộp đen được đề xuất [6, 7, 17, 19] để cú thể kiểm định phần mềm một cỏch hiệu quả nhất mà khụng phải duyệt hết tất cả cỏc điều kiện đầu vào.
2.1.2. Một số kỹ thuật kiểm định hộp đen
a. Phõn hoạch tương đương
Việc kiểm định tất cả cỏc đầu vào của chương trỡnh là khụng thể. Vỡ thế, khi kiểm định chương trỡnh nờn giới hạn một tập con tất cả cỏc trường hợp đầu vào cú thể cú. Tất nhiờn, người ta mong muốn lựa chọn một tập con đỳng hay núi cỏch khỏc là một tập con cú xỏc suất cao nhất phỏt hiện hầu hết cỏc lỗi.
Một tập con như vậy cần cú hai tớnh chất:
- Mỗi trường hợp kiểm định nờn gồm nhiều điều kiện đầu vào khỏc nhau cú thể để giảm thiểu tổng số cỏc trường hợp cần thiết.
- Nờn cố gắng phõn hoạch cỏc miền đầu vào của một chương trỡnh thành một số xỏc định cỏc lớp tương đương, sao cho cú thể giả định hợp lý rằng việc kiểm định một giỏ trị đại diện của mỗi lớp là tương đương với việc kiểm định một giỏ trị bất kỳ trong cựng lớp đú (tuy điều này khụng đảm bảo tuyệt đối). Cú nghĩa, nếu một trường hợp kiểm định trong một lớp tương đương phỏt hiện ra lỗi, thỡ tất cả cỏc trường hợp khỏc trong lớp tương đương cũng sẽ phỏt hiện ra cựng lỗi đú. Ngược lại, nếu một trường hợp kiểm định khụng phỏt hiện ra một lỗi, thỡ khụng cú trường hợp nào khỏc trong lớp tương đương đú phỏt hiện ra lỗi (trừ khi một tập con của lớp tương đương nằm trong một lớp tương đương khỏc, vỡ cỏc lớp tương đương cú thể gối lờn nhau).
Hai vấn đề xem xột ở trờn tạo thành một phương phỏp của kỹ thuật hộp đen và được gọi là phõn hoạch tương đương. Vấn đề thứ hai được sử dụng để phỏt triển một tập cỏc điều kiện cần quan tõm phải được kiểm định. Vấn đề thứ nhất được sử dụng để phỏt triển một tập cực tiểu cỏc trường hợp kiểm định phủ cỏc điều kiện trờn.
Thiết kế trường hợp kiểm định bằng phõn hoạch tương đương được xử lý theo hai bước:
Bước 1: Phõn hoạch cỏc miền giỏ trị đầu vào thành cỏc lớp tương đương. Buớc 2: Thiết kế cỏc trường hợp kiểm định đại diện cho mỗi lớp.
Phõn hoạch thành cỏc lớp tương đương:
Cỏc lớp tương đương được nhận dạng bằng cỏch lấy mỗi điều kiện đầu vào và phõn hoạch thành hai hoặc nhiều nhúm. Cỏc lớp tương đương biểu diễn một tập cỏc trạng thỏi hợp lệ hoặc khụng hợp lệ cho điều kiện đầu vào. Điều kiện đầu vào là giỏ trị số xỏc định, miền giỏ trị, tập giỏ trị cú liờn quan, hoặc điều kiện logic.
Cỏc lớp tương đương cú thể được phỏt biểu thành cỏc quy tắc sau: 1) Nếu điều kiện vào xỏc định một miền giỏ trị, thỡ phõn hoạch thành một lớp tương
Hỡnh 2.1. Phõn hoạch cỏc lớp tuơng đương
Dữ liệu vào hợp lệ Dữ liệu vào khụng hợp lệ
Hệ thống
đương hợp lệ và hai lớp tương đương khụng hợp lệ. Vớ dụ, nếu đầu vào x nằm trong khoảng [0,100] thỡ lớp hợp lệ là 0 ≤ x ≤ 100, cỏc lớp khụng hợp lệ là x< 0 và x > 100. 2) Nếu điều kiện vào yờu cầu một giỏ trị xỏc định, phõn hoạch thành một lớp tương hợp lệ và hai lớp tương đương khụng hợp lệ. Chẳng hạn, nếu đầu vào x = 0 thỡ lớp hợp lệ là x = 0, cũn cỏc lớp khụng hợp lệ là x < 0 và x > 0.
3) Nếu điều kiện đầu vào xỏc định một phần tử của tập hợp thỡ phõn hoạch thành một lớp tương đương hợp lệ và một lớp tương đương khụng hợp lệ. Chẳng hạn, nếu đầu vào x thuộc tập cỏc giỏ trị màu sắc trong bảy sắc cầu vồng: Colors = {“Red”, “Orange”, ..., “Violet”}, thỡ lớp tương đương hợp lệ là x Colors và lớp tương đương khụng hợp lệ là x Colors.
4) Nếu điều kiện đầu vào là một biến hoặc một biểu thức logic, thỡ phõn hoạch thành một lớp tương đương hợp lệ và một lớp tương đương khụng hợp lệ tương ứng với hai trang thỏi đỳng và sai của biểu thức hoặc biến logic.
Vớ dụ: Xột chương trỡnh “Sắp xếp lớp” dựa trờn cỏc đặc tả sau:
Chương trỡnh nhận vào điểm thi (ĐT) (<75) và điểm trung bỡnh mụn (ĐTBM) (<25), dựa vào cỏc dữ liệu đú, nú sẽ tớnh toỏn và xếp lớp theo cỏc lớp từ A đến D. Việc xếp lớp được tớnh toỏn dựa trờn điểm trung bỡnh chung = tổng điểm thi và điểm trung bỡnh mụn theo cỏch tớnh như sau:
- Điểm 70: lớp A
- 50 ≤ Điểm < 70: lớp B
- 30 ≤ Điểm < 50: lớp C
- Điểm < 30: lớp D
Nếu điểm nằm ngoài cỏc khoảng trờn thỡ sinh ra một thụng bỏo lỗi. Tất cả cỏc dữ liệu nhập vào đều là số nguyờn.
Ban đầu, ta cần xỏc định cỏc phõn hoạch tương đương, sau đú xõy dựng cỏc trường hợp kiểm định dựa trờn cỏc phõn hoạch đú. Cỏc phõn hoạch được xỏc định từ cả
dữ liệu vào và dữ liệu ra của chương trỡnh. Cỏc dữ liệu hợp lệ và khụng hợp lệ đều được xột.
Trước hết, ta xỏc định cỏc phõn hoạch cho dữ liệu vào:
* Cỏc lớp tương đương hợp lệ: 0 ≤ điểm thi ≤ 75 0 ≤ điểm trung bỡnh mụn ≤ 25 * Cỏc lớp tương đương khụng hợp lệ: Điểm thi > 75 Điểm thi < 0 Điểm trung bỡnh mụn > 25 Điểm trung bỡnh mụn < 0
Như vậy, phõn hoạch của dữ liệu vào điểm thi (ĐT) cú thể được biểu diễn theo sơ đồ sau:
Phõn hoạch của dữ liệu vào điểm trung bỡnh mụn (ĐTBM) cú thể được biểu diễn theo sơ đồ sau:
Ngoài ra, cũn cú cỏc kiểu dữ liệu vào khụng hợp lệ như dữ liệu nhập vào khụng thuộc tập số nguyờn hoặc khụng phải ký tự số.
ĐT
ĐT ĐT
ĐTBM ĐTBM ĐTBM
Hỡnh 2.2. Sơ đồ phõn hoạch cỏc lớp tương đương điểm thi
Lớp khụng hợp lệ Lớp hợp lệ Lớp khụng hợp lệ
Vỡ vậy, ta cú thờm phõn hoạch tương đương cho dữ liệu vào khụng hợp lệ:
Điểm thi = số thực Điểm thi = ký tự khỏc số Điểm trung bỡnh = số thực Điểm trung bỡnh = ký tự khỏc số Tiếp theo là việc xỏc định cỏc phõn hoạch cho dữ liệu ra:
Phõn hoạch hợp lệ được tạo ra bằng cỏch tớnh toỏn từng dữ liệu ra hợp lệ cho mỗi thành phần:
Kết quả: lớp “A” được tạo ra khi 70 ≤ tổng điểm ≤ 100 “B” được tạo ra khi 50 ≤ tổng điểm < 70 “C” được tạo ra khi 30 ≤ tổng điểm < 50 “D” được tạo ra khi 0 ≤ tổng điểm < 30 “Thụng bỏo lỗi” được tạo ra khi tổng điểm > 100
được tạo ra khi tổng điểm < 0
Cỏc phõn hoạch tương đương trờn và dưới giỏ trị biờn được thể hiện theo sơ đồ sau:
Một dữ liệu ra khụng hợp lệ là bất kỳ dữ liệu ra nào khụng nằm trong 5 giỏ trị trờn (“ ”, “ ”, “ ”, “ ”, “khụng hợp lệ”). Thực ra, việc xỏc định cỏc dữ liệu ra khụng
TĐ TĐ TĐ TĐ TĐ TĐ (tiếp theo ở trờn) (tiếp theo ở dưới)
Hỡnh 2.3. Sơ đồ phõn hoạch cỏc lớp tương đương theo giỏ trị biờn tổng điểm
Giỏ trị biờn Giỏ trị biờn Giỏ trị biờn
rừ ràng là rất khú khăn. Nhưng chỳng cần được xem xột kỹ để nhận ra lỗi cú thể cú ở cả trong chương trỡnh và trong đặc tả. Dưới đõy là 3 vớ dụ về dữ liệu ra khụng rừ ràng. Việc phõn hoạch như thế này mang tớnh khỏ chủ quan và khỏc nhau với mỗi người kiểm định vỡ họ cú cảm nhận và phỏn đoỏn khụng giống nhau.
- Dữ liệu ra = “E”
- Dữ liệu ra = “A+”
- Dữ liệu ra = “null”
Như vậy, cú thể xỏc định được 19 phõn hoạch như sau:
Phõn hoạch 1: 0 ≤ ĐT ≤ 75 Phõn hoạch 2: ĐT > 75 Phõn hoạch 3: ĐT < 0 Phõn hoạch 4: 0 ≤ ĐTBM ≤ 25 Phõn hoạch 5: ĐTBM> 25 Phõn hoạch 6: ĐTBM< 0
Phõn hoạch 7: ĐT = real number
Phõn hoạch 8: ĐT = alphabetic
Phõn hoạch 9: ĐTBM= real number
Phõn hoạch 10: ĐTBM= alphabetic Phõn hoạch 11: 70 ≤ TĐ ≤ 100 Phõn hoạch 12: 50 ≤ TĐ < 70 Phõn hoạch 13: 30 ≤ TĐ < 50 Phõn hoạch 14: 0 ≤ TĐ < 30 Phõn hoạch 15: TĐ > 100
Phõn hoạch 16: TĐ < 0
Phõn hoạch 17: output = 'E' Phõn hoạch 18: output = 'A+'
Phõn hoạch 19: output = 'null'
Sau khi đó xỏc định được cỏc phõn hoạch, ta tiến hành xõy dựng cỏc trường hợp kiểm định cho chỳng. Cú hai cỏch xõy dựng: Mỗi phõn hoạch cú một trường hợp kiểm
định hoặc xõy dựng một bộ trường hợp kiểm định cho tất cả cỏc phõn hoạch.
Cỏch thứ nhất: Mỗi phõn hoạch cú một trường hợp kiểm định.
Cỏc trường hợp kiểm định cho phõn hoạch điểm thi nhập vào là:
Trƣờng hợp kiểm định 1 2 3
Điểm thi nhập vào 44 -10 93
Điểm trung bỡnh mụn 15 15 15
Tổng điểm 59 5 108
Phõn hoạch được thử
(đối với điểm thi nhập vào) 0≤ĐT≤75 ĐT < 0 ĐT > 75 Kết quả dự kiến lớp “B” “Thụng bỏo lỗi” “Thụng bỏo lỗi”
Chỳ ý: Trong bảng trờn, việc kiểm định tập trung vào giỏ trị điểm thi nhập vào nờn “Điểm trung bỡnh mụn” được cho một giỏ trị tựy ý, cố định là 15.
Cỏc trường hợp kiểm định cho phõn hoạch điểm trung bỡnh mụn nhập vào là:
Chỳ ý: Dữ liệu “Điểm thi” được cho tựy ý, cố định = 40.
Cỏc trường hợp kiểm định cho phõn hoạch dữ liệu nhập vào khụng hợp lệ: