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