CHƢƠNG 2 CÁC KỸ THUẬT KIỂM ĐỊNH PHẦN MỀM
2.3.1 Cỏc kỹ thuật kiểm định hộp đen
2.3.1.1. Phõn hoạch tƣơng đƣơng
Việc kiểm thử tất cả cỏc đầu vào của chƣơng trỡnh là khụng thể. Vỡ thế, khi kiểm thử 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 (tứ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 thử 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.
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 thử một giỏ trị đại diện của mỗi lớp là tƣơng đƣơng với việc kiểm thử 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 là, nếu một trƣờng hợp kiểm thử trong một lớp tƣơng đƣơng phỏt hiện ra một lỗi, thỡ tất cả cỏc trƣờng hợp khỏc trong lớp tƣơng đƣơng sẽ phỏt hiện ra cựng một lỗi đú. Ngƣợc lại, nếu một trƣờng hợp kiểm thử 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).
Dữ liệu ra, biểu lộ cỏc nhƣợc điểm Dữ liệu vào nguyờn do hoạt động bất thƣờng Oe I Hệ thống Dữ liệu vào Dữ liệu ra
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à 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 thử. 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 thử phủ cỏc điều kiện trờn.
Thiết kế trƣờng hợp kiểm thử bằng phõn hoạch tƣơng đƣơng đƣợc xử lý theo hai bƣớc: phõn hoạch cỏc miền đầu vào/ra thành cỏc lớp tƣơng đƣơng, và thiết kế cỏc trƣờng hợp kiểm thử đại diện cho mỗi lớp.
Xỏc định cỏc lớp tƣơng đƣơng
“Phõn hoạch tƣơng đƣơng” đƣợc định nghĩa theo lý thuyết tập hợp.
Quan hệ trờn hai tập A và B là một tập con của tớch Đờcỏc A B, nghĩa là ab trong đú a A và b B.
Quan hệ cú thể đƣợc định nghĩa trờn chớnh tập A, tức là khi B = A. Quan hệ trờn tập A gọi là phản xạ nếu aa với aA
Quan hệ trờn tập A gọi là đối xứng nếu ab ba với a, bA
Quan hệ trờn tập A gọi là bắc cầu nếu ab và bc ac với a,b,c A
Một quan hệ cú tớnh phản xạ, đối xứng và bắt cầu gọi là quan hệ tƣơng đƣơng. Chẳng hạn quan hệ “=” trờn tập N (số nguyờn) là quan hệ tƣơng đƣơng nhƣng quan hệ “>” trờn tập N thỡ khụng phải.
Một quan hệ tƣơng đƣơng phõn hoạch tập hợp thành cỏc lớp tƣơng đƣơng khụng bao nhau. Chẳng hạn quan hệ =(a,b): a, b N, a+b là số chẵn cú hai phõn hoạch {0, 2, 4, …} và {1, 3, 5, …}.
Nhƣ vậy, 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 (thụng thƣờng là một cõu lệnh hoặc một cụm từ trong đặc tả) và phõn hoạch nú 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, hoặc miền giỏ trị, tập giỏ trị cú liờn quan, hoặc điều kiện logic. Để làm điều này, chỳng ta sử dụng bảng liệt kờ cỏc lớp tƣơng đƣơng.
Bảng 2.1 - Bảng liệt kờ cỏc lớp tương đương
Điều kiện vào/ra Cỏc lớp tƣơng đƣơng hợp lệ Cỏc lớp tƣơng đƣơng khụng hợp lệ
Cỏc lớp tƣơng đƣơng cú thể đƣợc định nghĩa theo cỏc nguyờn tắc sau:
1. Nếu điều kiện đầu vào xỏc định một khoảng giỏ trị, 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 nằm trong khoảng [0,100], 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 đầu 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 đƣơ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=5, thỡ lớp hợp lệ là x= 5, cỏc lớp khụng hợp lệ là x <5 và x >5.
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ị thỏng trong năm, Months = {“Jan”, …, “Dec”}, thỡ lớp tƣơng đƣơng hợp lệ là x Months và lớp tƣơng đƣơng khụng hợp lệ là xMonths.
4. Nếu điều kiện đầu vào là Boolean, 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 trạng thỏi true và false.
Ngoài ra, một nguyờn tắc thứ năm đƣợc bổ sung là sử dụng khả năng phỏn đoỏn, kinh nghiệm và trực giỏc của ngƣời kiểm thử.
Xỏc định cỏc trường hợp kiểm thử
Bƣớc thứ hai trong phƣơng phỏp phõn hoạch tƣơng đƣơng là thiết kế cỏc trƣờng hợp kiểm thử dựa trờn sự ƣớc lƣợng của cỏc lớp tƣơng đƣơng cho miền đầu vào. Tiến trỡnh này đƣợc thực hiện nhƣ sau:
1. Gỏn một giỏ trị duy nhất cho mỗi lớp tƣơng đƣơng.
2. Đến khi tất cả cỏc lớp tƣơng đƣơng hợp lệ đƣợc phủ bởi cỏc trƣờng hợp kiểm thử thỡ viết một trƣờng hợp kiểm thử mới phủ nhiều nhất cú thể cỏc lớp tƣơng đƣơng hợp lệ chƣa đƣợc phủ.
3. Đến khi tất cả cỏc lớp tƣơng đƣơng khụng hợp lệ đƣợc phủ bởi cỏc trƣờng hợp kiểm thử thỡ hóy viết cỏc trƣờng hợp kiểm thử mới sao cho mỗi trƣờng hợp kiểm thử mới chỉ phủ duy nhất một lớp tƣơng đƣơng khụng hợp lệ chƣa đƣợc phủ.
Cỏc trƣờng hợp khụng hợp lệ đƣợc phủ bởi cỏc trƣờng hợp kiểm thử riờng biệt do việc kiểm tra đầu vào cú lỗi này sẽ bị che hoặc bỏ sút việc kiểm tra đầu vào cú lỗi khỏc.
Vớ dụ: Phỏt sinh cỏc lớp tƣơng đƣơng hợp lệ và khụng hợp lệ cho đặc tả sau: Dữ liệu thu đƣợc từ xử lý cỏc thụng tin của cỏc sinh viờn để tạo cỏc bản bỏo cỏo
túm tắt.
Dữ liệu đầu vào đƣợc mụ tả:
+ Mỗi bản ghi phải bắt đầu gồm số ID của sinh viờn, chỉ chứa cỏc giỏ trị số + Tiếp theo là tờn sinh viờn, chỉ chứa giỏ trị là cỏc ký tự chữ cỏi.
+ Giới tớnh sinh viờn chỉ là một trong hai ký tự chữ cỏi “M” (nam) hoặc “F” (nữ). + Cuối cựng là điểm của sinh viờn chỉ chứa giỏ trị số từ 0 đến 100.
Bảng 2.2 – Vớ dụ cỏc lớp tương đương
Điều kiện đầu vào Cỏc lớp tƣơng đƣơng hợp lệ Cỏc lớp tƣơng đƣơng khụng hợp lệ
Số ID của sinh viờn Cỏc ký số Khụng phải ký số Tờn sinh viờn Ký tự chữ cỏi
Khụng rỗng
Khụng phải chữ cỏi Rỗng
Giới tớnh sinh viờn Ký tự chữ cỏi, “M” hoặc “F” Khụng phải chữ cỏi Khụng phải “M” hoặc “F” Điểm của sinh viờn Số
Từ 0 đến 100
Khụng phải số Số nhỏ hơn 0 Số lớn hơn 100
2.3.1.2. Phõn tớch giỏ trị biờn (BVA - Boundary Value Analysis)
Khi thực hiện việc kiểm thử phần mềm theo dữ liệu, chỳng ta kiểm tra xem đầu vào của ngƣời dựng, kết quả nhận đƣợc và kết quả tạm thời bờn trong cú đƣợc xử lý chớnh xỏc hay khụng.
Cỏc điều kiện biờn là tỡnh trạng trực tiếp ở phớa trờn và dƣới của cỏc lớp tƣơng đầu vào và lớp tƣơng đƣơng đầu ra. Việc phõn tớch cỏc giỏ trị biờn khỏc với phõn hoạch tƣơng đƣơng theo hai điểm:
Từ mỗi lớp tƣơng đƣơng, phõn hoạch tƣơng đƣơng sẽ chọn phần tử bất kỳ làm phần tử đại diện, trong khi việc phõn tớch giỏ trị biờn sử dụng một hoặc một số phần tử. Nhƣ võy, mỗi biờn của lớp tƣơng đƣơng chớnh là đớch kiểm thử. Khụng chỉ chỳ ý tập trung vào những điều kiện đầu vào, cỏc trƣờng hợp kiểm thử
cũng đƣợc suy ra từ việc xem xột cỏc kết quả ra (tức cỏc lớp tƣơng đƣơng đầu ra).
Cỏc trƣờng hợp kiểm thử tốt là tại cỏc biờn của lớp. Những giỏ trị biờn này là cỏc phần tử cực tiểu/cực đại, ngắn nhất/dài nhất, chậm nhất/nhanh nhất, xấu nhất/đẹp nhất, đầu/cuối, bắt đầu/kết thỳc, rỗng/đầy, sớm nhất/muộn nhất,… tức là những giỏ trị cận nhất. Nhƣ vậy, BVA mở rộng phõn hoạch tƣơng đƣơng trờn cơ sở tập trung vào cỏc biờn của miền đầu vào hơn là cỏc giỏ trị tiờu biểu của nú.
Rất khú cú thể cú thể liệt kờ hết cỏc hƣớng dẫn cụ thể cho cỏc trƣờng hợp. Tuy nhiờn, cũng cú một số nguyờn tắc phõn tớch giỏ trị biờn nhƣ sau:
1. Nếu điều kiện đầu vào xỏc định một khoảng giỏ trị giữa a và b, cỏc trƣờng hợp kiểm thử sẽ đƣợc thiết kế với giỏ trị a và b, và cỏc giỏ trị sỏt trờn và sỏt dƣới a và b.
2. Nếu một điều kiện đầu vào xỏc định một số cỏc giỏ trị, cỏc trƣờng hợp kiểm thử sẽ đƣợc phỏt triển để thực hiện tại cỏc giỏ trị cực đại, cực tiểu. Cỏc giỏ trị sỏt trờn và dƣới giỏ trị cực đại, cực tiểu cũng đƣợc kiểm thử.
3. Nguyờn tắc 1 và 2 đƣợc ỏp dụng cho cỏc điều kiện đầu ra.
4. Nếu cấu trỳc dữ liệu chƣơng trỡnh bờn trong đƣợc qui định cỏc biờn (chẳng hạn, mảng đƣợc định nghĩa giới hạn 100 mục), tập trung thiết kế trƣờng hợp kiểm thử để thực thi cấu trỳc dữ liệu tại biờn của nú.
Ngoài ra, ngƣời kiểm thử cú thể sử dụng sự xột đoỏn và sỏng tạo của mỡnh để tỡm cỏc điều kiện biờn.
Túm lại, chỳng ta phải kiểm thử mỗi biờn của một lớp tƣơng đƣơng về tất cả cỏc phớa. Một chƣơng trỡnh nếu vƣợt qua những trƣờng hợp kiểm thử đú cú thể vƣợt qua cỏc kiểm thử khỏc từ lớp đú.
Vớ dụ: Nếu phần mềm cần điều khiển một số bản ghi bất kỳ trong khoảng từ 1 đến 16383 bản ghi, sẽ cú ba lớp tƣơng đƣơng:
Lớp tƣơng đƣơng hợp lệ 1: trong khoảng 1 đến 16383 Lớp tƣơng đƣơng khụng hợp lệ 2 : nhỏ hơn 1
Lớp tƣơng đƣơng khụng hợp lệ 3: lớn hơn 16383 Cỏc trƣờng hợp kiểm thử cú thể là:
Trƣờng hợp kiểm thử 1: 0 bản ghi, là thành viờn của lớp tƣơng đƣơng 2 và kề sỏt giỏ trị biờn.
Trƣờng hợp kiểm thử 2: 1 bản ghi, là giỏ trị biờn. Trƣờng hợp kiểm thử 3: 2 bản ghi, kề sỏt giỏ trị biờn.
Trƣờng hợp kiểm thử 4: 723 bản ghi, là thành phần của lớp tƣơng đƣơng 1. Trƣờng hợp kiểm thử 5: 16382 bản ghi, kề sỏt giỏ trị biờn.
Trƣờng hợp kiểm thử 6: 16383 bản ghi, chớnh là giỏ trị biờn.
Trƣờng hợp kiểm thử 7: 16384 bản ghi, thành phần của lớp tƣơng đƣơng 3, kề sỏt giỏ trị biờn.