Luồng thông tin kiểm thử

Một phần của tài liệu (LUẬN văn THẠC sĩ) các phương pháp đánh giá chất lượng phần mềm (Trang 29)

Hình 2.1 thể hiện luồng thông tin kiểm thử. Hiện có hai quan điểm về xử lí lỗi. Quan điểm thứ nhất là “Mỗi lần chỉ bắt một lỗi”, sau khi xử lí xong lỗi sẽ tiếp tục kiểm thử để bắt lỗi khác, nếu có. Quan điểm thứ hai là “Mỗi lần bắt và thông báo toàn bộ các lỗi”. Theo quan điểm này có thể nảy sinh một số khó khăn cho lập trình viên gỡ lỗi: một lỗi B có thể là hậu quả của lỗi A trƣớc đó. Mô hình này đƣợc thiết kế độc lập với hai quan điểm trên. Cụ thể là mô hình chỉ dựa vào tập các test cases do ngƣời phụ trách kiểm thử xây dựng.

Hình 2. 1 - Mô hình luồng thông tin kiểm thử

Hai kiểu đầu vào đƣợc cung cấp cho tiến trình kiểm thử:

Cấu hình phần mềm gồm: bản đặc tả yêu cầu phần mềm, bản đặc tả thiết kế và mã nguồn của chƣơng trình.

Cấu hình kiểm thử gồm: kế hoạch và thủ tục kiểm thử, công cụ kiểm thử, trƣờng hợp kiểm thử và kết quả dự kiến.

Cấu hình phần mềm Kiểm thử Cấu hình kiểm thử Kết quả kiểm thử Đánh giá Gỡ rối Mô hình tin cậy Kết quả mong đợi

Lỗi

Hiệu chỉnh

Dữ liệu tỷ lệ lỗi

Tất cả các kết quả kiểm thử đều đƣợc đánh giá bằng cách so sánh với kết quả dự kiến, nếu có sai khác thì đó có thể là lỗi.

Các kết quả kiểm thử sẽ xác định chất lƣợng và độ tin cậy của phần mềm.

2.1.3. Thiết kế trường hợp kiểm thử

Thiết kế các trƣờng hợp kiểm thử (đầu vào và đầu ra) đƣợc sử dụng để kiểm thử hệ thống. Mục đích của thiết kế trƣờng hợp kiểm thử là tạo ra một tập hợp các mẫu kiểm thử có khả năng đánh giá hiệu quả, phát hiện khiếm khuyết, chi phí rẻ đồng thời tốn ít thời gian và công sức nhất. Thực tế, kiểm thử “vét cạn” là điều không thể, và nhƣ vậy, kiểm thử một chƣơng trình phải luôn xác định là không thể “vét cạn”. Vấn đề quan trọng là cố gắng làm giảm sự “không thể vét cạn” nhiều nhất có thể.

Bất kể phần mềm nào cũng đều có thể kiểm thử theo một trong hai phƣơng thức tiếp cận:

 Biết về các đặc tả bên ngoài của sản phẩm hoặc chƣơng trình: Kiểm thử hộp đen.

 Biết cách hoạt động bên trong của sản phẩm, kiểm thử có thể đƣợc thực hiện để đảm bảo rằng “tất cả các phần mềm ăn khớp nhau”: Kiểm thử hộp trắng.

2.2. KIỂM THỬ HỘP ĐEN

Kiểm thử hộp đen hay còn đƣợc gọi là kiểm thử chức năng hay là kiểm thử hƣớng dữ liệu.

Trong kỹ thuật này, ngƣời kiểm thử xem phần mềm nhƣ là một hộp đen, hoàn toàn không quan tâm cấu trúc và hành vi bên trong của phần mềm, tuy nhiên, chức năng của hộp đen đƣợc đặc tả rõ ràng qua các đầu vào và đầu ra.

Kiểm thử chức năng chỉ dựa vào đặc tả phần mềm để tạo ra các ca kiểm thử. Vì vậy, kiểm thử chức năng có hai ƣu điểm nổi bật:

 Các ca kiểm thử độc lập với việc phần mềm đƣợc cài đặt nhƣ thế nào, nghĩa là cấu trúc bên trong của phần mềm. Nhƣ thế, khi cài đặt phần mềm thay đổi, các ca kiểm thử vẫn đƣợc sử dụng.

 Các ca kiểm thử có thể đƣợc thiết kế trƣớc khi cài đặt phần mềm. Ca kiểm thử đƣợc tạo ra ngay khi có đặc tả yêu cầu.

Ngoài ra, kiểm thử hộp đen có các đặc điểm khác:

Hiệu quả trong việc tìm lỗi, đặc biệt phù hợp tìm các lớp lỗi về thiết kế, nghĩa là lỗi do những ngƣời thiết kế, ngƣời đặc tả tạo ra.

Chi phí thấp so với kĩ thuật kiểm thử cấu trúc trong việc thiết kế các ca kiểm thử.

Dễ dàng áp dụng và áp dụng phổ biến, khi chỉ dựa trên đặc tả yêu cầu và có thể đƣợc áp dụng cho tất cả các hoạt động kiểm thử (đơn vị, tích hợp và hệ thống).

2.2.1. Phân hoạch tương đương

Phân lớp tƣơng đƣơng là một phƣơng pháp kiểm thử hộp đen chia miền đầu vào của một chƣơng trình thành các lớp dữ liệu, từ đó suy dẫn ra các ca kiểm thử. Phƣơng pháp này cố gắng xác định ra một ca kiểm thử mà làm lộ ra một lớp lỗi, do đó làm giảm tổng số các trƣờng hợp kiểm thử phải đƣợc xây dựng.

Thiết kế ca kiểm thử cho phân lớp tƣơng đƣơng dựa trên sự đánh giá về các lớp tƣơng đƣơng với một điều kiện vào. Lớp tƣơng đƣơng biểu thị cho tập các trạng thái hợp lệ hay không hợp lệ đối với điều kiện đầu vào. Để xác định tập con các dữ liệu này, mỗi dữ liệu kiểm thử đƣợc lựa chọn nên có hai tính chất sau:

 Dữ liệu kiểm thử giảm số lƣợng các dữ liệu thử khác cần tạo ra nhằm đạt đƣợc mục tiêu kiểm thử xác định trƣớc.

 Dữ liệu kiểm thử bao phủ một tập gồm nhiều dữ liệu thử khác, nghĩa là dữ liệu thử này cho chúng ta biết sự hiện diện của lỗi ứng với tập các dữ liệu thử.

Hai tính chất mà một dữ liệu kiểm thửcầnđáp ứng tạo nên kĩ thuật kiểm thử, đƣợc gọi là kiểm thử lớp tƣơng đƣơng. Có ba loại kiểm thử lớp tƣơng đƣơng:

 Kiểm thử lớp tƣơng đƣơng yếu: xây dựng các ca kiểm thử bởi sử dụng một giá trị từ mỗi lớp tƣơng đƣơng. Nhƣ thế, chúng ta sẽ có số ca kiểm thử bằng số lớp tƣơng đƣơng của biến vào có nhiều lớp tƣơng đƣơng nhất.

đƣơng. Tập các ca kiểm thử bao gồm tất cả các kết hợp giá trị dữ liệu đại diện của các lớp tƣơng đƣơng.

 Kiểm thử lớp tƣơng đƣơng truyền thống: phân biệt các lớp tƣơng đƣơng hợp lệ và không hợp lệ. Đối với dữ liệu vào hợp lệ, sử dụng một giá trị đại diện cho mỗi lớp tƣơng đƣơng (tƣơng tự kiểm thử lớp tƣơng đƣơng yếu).Tất cả các dữ liệu vào của các ca kiểm thử này đều hợp lệ. Đối với dữ liệu vào không hợp lệ, một ca kiểm thử chỉ có một dữ liệu không hợp lệ, các dữ liệu còn lại đều hợp lệ.

Xác định 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 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.

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 tập giá trị (a,b), 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ệ. Ví dụ: nếu đầu vào x nằm trong khoảng (0, 100), lớp hợp lệ là 0 < x < 100, hai lớp không hợp lệ là x  0 và x  100.

2. Nếu điều kiện đầu vào là một giá trị xác định, thì 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ệ. Ví dụ, đầu vào x=3, lớp hợp lệ là x=3, hai lớp không hợp lệ là x < 3 và x > 3.

3. Nếu đầ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ệ. Ví dụ, X là tập số tự nhiên lẻ, lớp hợp lệ là “X là số tự nhiên lẻ”, lớp không hợp lệ là “X là số tự nhiên chẵn”.

4. Nếu đầ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, chúng ta có thể 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ử

Với các lớp tƣơng đƣơng xác định ở trên, bƣớc thứ hai là sử dụng các lớp tƣơng đƣơng đó để xác định các ca kiểm thử. Quá trình này nhƣ sau:

 Gán 1 giá trị duy nhất cho mỗi lớp tƣơng đƣơng.

 Đến khi tất cả các lớp tƣơng đƣơng hợp lệ đƣợc bao 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ủ.

 Đế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 bao phủ.

 Lý do mà mỗi ca kiểm thử riêng bao phủ các trƣờng hợp không hợp lệ là vì các kiểm tra đầu vào không đúng nào đó che giấu hoặc thay thế các kiểm thử đầu vào không đúng khác.

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 Rỗng

Điểm của sinh viên

Số Từ 0 đến 100

Không phải số Số nhỏ hơn 0

Ví dụ minh họa

Giả sử ta có chƣơng trình tính hoa hồng cho một đại lí bán xe máy. Cách tính hoa hồng dựa trên doanh thu nhƣ sau: đại lí đƣợc nhận 10% số doanh thu bán hàng đến 1 tỉ đồng; 15% số doanh thu bán hàng 500 triệu đồng tiếp theo; 20% số doanh thu bán hàng vuợt quá 1 tỉ 500 triệu đồng. Miền dữ liệu đầu vào của chƣơng trình có thể đƣợc chia thành các lớp tƣơng đƣơng bằng cách dựa vào các giới hạn của hai biến đầu vào: số lƣợng xe sirius và số lƣợng xe Jupiter. Bởi vì dữ liệu vào thuộc một khoảng, vì vậy chúng ta thiết kế một lớp tƣơng đƣơng hợp lệ và hai lớp tƣơng đƣơng không hợp lệ cho mỗi biến. (Bảng 2.3)

Bảng 2. 3 – Các lớp tƣơng đƣơng cho chƣơng trình tính hoa hồng

Biến vào Lớp tƣơng đƣơng Ghi chú

#Sirius

1 #Sirius  100 Giá trị hợp lệ

#Sirius < 1 Giá trị không hợp lệ #Sirius > 100 Giá trị không hợp lệ

#Jupiter

1  #Jupiter  50 Giá trị hợp lệ

#Jupiter < 1 Giá trị không hợp lệ #Jupiter > 50 Giá trị không hợp lệ

Nếu áp dụng kiểm thử tƣơng đƣơng yếu, chúng ta có các ca kiểm thử trong Bảng 2.4

Bảng 2. 4 – Các ca kiểm thử lớp tƣơng đƣơng yếu cho chƣơng trình tính hoa hồng

Ca KT #Sirius #Jupiter Doanh thu(triệu) Hoa Hồng(triệu)

1 50 25 1250 137.5

2 0 0 Lỗi Lỗi

Nếu áp dụng kiểm thử lớp tƣơng đƣơng truyền thống, chúng ta có các ca kiểm thử trong Bảng 2.5.

Mặc dù việc phân lớp tƣơng đƣơng rất tốt khi lựa chọn ngẫu nhiên các ca kiểm thử, nhƣng nó vẫn có những thiết sót. Ví dụ, nó bỏ qua các kiểu test case có lợi nào đó. Hai phƣơng pháp tiếp theo, phân tích giá trị biên và đồ thị nguyên nhân – kết quả, bao phủ đƣợc nhiều những thiếu sót này.

Bảng 2. 5 – Kiểm thử lớp tƣơng đƣơng cho chƣơng trình tính hoa hồng

Ca KT #Sirius #Jupiter Doanh thu

(triệu) Hoa Hồng (triệu) 1 50 25 1250 137.5 2 50 0 Lỗi Lỗi 3 50 51 Lỗi Lỗi 4 0 25 Lỗi Lỗi 5 101 25 Lỗi Lỗi

Ví dụ 2: Chƣơng trình tam giác nhận đầu vào gồm ba số nguyên a, b và c, chúng đƣợc xem là độ dài ba cạnh của một tam giác. Chƣơng trình xác định loại tam giác bằng cách dựa vào độ dài ba cạnh: tam giác đều (ba cạnh bằng nhau), tam giác cân (chỉ hai cạnh bằng nhau), tam giác thƣơng (độ dài ba cạnh khác nhau) và không phải là tam giác (có ít nhất một cạnh lớn hơn hoặc bằng tổng hai cạnh còn lại).

Đối với chƣơng trình này, ba số nguyên đầu vào có mối quan hệ phụ thuộc chặt chẽ với nhau. Vì vậy, chúng ta xây dựng lớp tƣơng đƣơng dựa vào quan hệ ràng buộc giữa chúng. Chúng ta có thể xác định lớp tƣơng đƣơng trong Bảng 2.6

Bảng 2. 6 – Các lớp tƣơng đƣơng cho chƣơng trình tam giác dựa vào dữ liệu vào

STT Lớp tƣơng đƣơng Ghi chú

1 a = b = c Tam giác đều

2 a = b, a ≠ c Tam giác cân

5 a ≠ c, a ≠ b, b ≠ a Tam giác thƣờng

6 a ≥ b + c Không phải là tam giác

7 b ≥ a + c Không phải là tam giác

8 c ≥ b + a Không phải là tam giác

Dựa trên các lớp tƣơng đƣơng này, chúng ta thiết kế ca kiểm thử trong Bảng 2.7

Bảng 2. 7 – Các ca kiểm thử cho chƣơng trình tam giác dựa trên dữ liệu vào

Ca KT a b c Kết quả

1 5 5 5 Tam giác đều

2 7 7 10 Tam giác cân

3 9 15 9 Tam giác cân

4 4 3 3 Tam giác cân

5 3 4 5 Tam giác thƣờng

6 12 4 6 Không là tam giác

7 23 39 10 Không là tam giác

8 12 11 25 Không là tam giác

2.2.2. Phân tích giá trị biên

Kiểm thử giá trị biên là một trong những kĩ thuật kiểm thử chức năng đƣợc áp dụng rộng rãi và hiệu quả. Kĩ thuật này tạo ra các ca kiểm thử bởi việc phân tích miền dữ liệu vào. Kinh nghiệm của những ngƣời phát triển phần mềm cho thấy rằng các lỗi thƣờng do chƣơng trình không đƣợc đặc tả các hành vi đối với các giá trị biên (giá trị lớn nhất, giá trị không hay âm đối với chỉ số, chuỗi kí tự rỗng, hay các dữ liệu không hợp lệ). Các giá trị biên đƣợc xác định dựa vào miền giá trị của các biến đầu vào.

Phân tích các giá trị biên là phƣơng pháp thiết kế ca kiểm thử bổ sung thêm cho phân lớp tƣơng đƣơng, nhƣng khác với phân lớp tƣơng đƣơng ở hai khía cạnh:

Phân tích giá trị biên không lựa chọn phần tử bất kỳ nào trong một lớp tƣơng đƣơng là điển hình, mà nó yêu cầu là một hay nhiều phần tử đƣợc lựa chọn nhƣ vậy mà mỗi cạnh của lớp tƣơng đƣơng đó chính là đối tƣợng kiểm tra.

Ngoài việc chỉ tập trung chú ý vào các trạng thái đầu vào (không gian đầu vào), các ca kiểm thử cũng nhận đƣợc bằng việc xem xét không gian kết quả (các lớp tƣơng đƣơng đầu ra).

Phân tích giá trị biên yêu cầu sáng tạo và lƣợng chuyên môn hóa nhất định và nó là một quá tình mang tính kinh nghiệm rất cao. Tuy nhiên, có một số quy tắc chung nhƣ sau:

 Nếu điều kiện đầu vào xác định một khoảng giá trị (a,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.

 Nếu đ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 gía 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ử.

 Nguyên tắc 1 và 2 đƣợc áp dụng cho các điều kiện đầu ra.

 Nếu cấu trúc dữ liệu chƣơng trình bên trong đƣợc quy đị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.

Ví dụ: Chƣơng trình đào tạokỹ sƣ Công nghệ thông tin chất lƣợng cao của một Trƣờng Đại học tuyển chọn mỗi năm 20 sinh viên. Đầu năm học mới, sinh viên nộp hồ sơ đăng kí vào học. Trƣờng chỉ nhận 200 hồ sơ nộp sớm nhất và sau đó chọn 20 sinh viên có hồ sơ tốt nhất. Mỗi hồ sơ đƣợc đánh gía dựa trên điểm thi trong kì thi tuyển sinh đại học toàn quốc. Mỗi sinh viên có điểm thi ba môn: Toán, Vật lí và Hóa học. Điểm mỗi môn học thuộc khoảng 0 đến 10, điểm có thể lẻ 0.5. Tổng điểm của mỗi sinh viên đƣợc tính theo công thức:

Giả sử các hồ sơ sinh viên đƣợc chứa trong một tệp. Tệp này chứa nhiều nhất 200 sinh viên. Thông tin mỗi sinh viên gồm mã sinh viên (nhiều nhất 8 chữ số),

Một phần của tài liệu (LUẬN văn THẠC sĩ) các phương pháp đánh giá chất lượng phần mềm (Trang 29)

Tải bản đầy đủ (PDF)

(72 trang)