.7 Các trường hợp kiểm thử cho phân lớp tương tương

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Khảo sát một số phương pháp sinh bộ kiểm thử trong kiểm thử hộp đen (Trang 62 - 72)

truyền thống với bài toán “Nhập điểm sinh viên”

TC_ID DToan DLy DHoa ExpectedOutput Result

TC_01 -1 6 7 Invalid input OK TC_02 11 8 9 Invalid input NOK TC_03 10 -1 3 Invalid input OK TC_04 6 11 5 Invalid input OK TC_05 8 2 -1 Invalid input NOK TC_06 9 4 11 Invalid input NOK TC_07 5 6 8

DToan=5 DLy=6 DHoa=8

OK

Như vậy, với bài toán đơn giản “Nhập điểm sinh viên” ở trên, sau khi khảo sát quá trình sinh các ca kiểm thử theo các phương pháp đã đề cập trong nội dung của chương 3. Đồng thời tiến hành việc thực thi kiểm thử chương trình thử nghiệm theo tập các ca kiểm thử sinh ra cho từng phương pháp, chúng ta có thể thấy được ưu nhược điểm, khả năng phát hiện lỗi ở từng phương pháp đối với bài toán có chứa các biến hoàn toàn độc lập được tổng kết trong bảng 4.8. Kết quả tổng kết ở bảng này cho thấy, kỹ thuật kiểm thử giá trị biên truyền thống có hiệu quả cao nhất, chỉ với 07 ca kiểm thử kỹ thuật này phát hiện ra cả 3 lỗi của chương trình thực nghiệm. Ngược lại, với 15 ca kiểm thử được xây dựng nhưng tiêu chí kiểm thử của kỹ thuật phân tích giá trị biên cơ bản không phát hiện ra bất kì một lỗi nào của chương trình. Bảng tổng kết 4.8 là một ví dụ cụ thể khi xét hiệu quả kiểm thử của từng phương pháp. Từ đó ta thấy, hiệu quả mà từng phương pháp kiểm thử mang lại không hoàn toàn phụ thuộc vào tiêu chí sinh ca kiểm thử của phương pháp đó là gì mà còn phụ thuộc vào từng bài toán cụ thể, từng dữ liệu đầu vào và tiêu chí kiểm thử của người sử dụng.

Bảng 4.8 So sánh các phương pháp sinh ca kiểm thử cho bài toán “Nhập điểm sinh viên”

STT Phƣơng pháp

Số lƣợng ca kiểm

thử

Thời gian sinh và thực

thi các ca kiểm thử Khả năng phát hiện lỗi

1 Phân lớp tương

đương mạnh 27

1. Với ba biến đầu vào, mỗi biến có 3 miền giá trị, chúng ta cần thời gian cho việc sinh và thực thi 27 ca kiểm thử. Với ví dụ đơn giản này thì ta thấy:

2. Việc xác định các ca kiểm thử ở từng phương pháp là khá đơn giản và tương tự nhau.

3. Thời gian tạo và thực thi 1 ca kiểm thử (chạy chương trình để test) ở từng phương pháp là đương đương nhau. --> Vì vậy việc xác định thời gian test toàn bộ các ca kiểm thử phụ thuộc vào số lượng ca kiểm thử cho từng phương pháp.

Phát hiện được cả 3 lỗi của chương trình do có 5 ca kiểm thử có kết quả NOK nhưng đều thuộc 3 lỗi không xử lý được các trường hợp sau: 1. Trường hợp DHoa <0 2. Trường hợp DHoa >10 3. Trường hợp DToan >10 2 Phân lớp tương đương yếu 3 Chỉ có 03 ca kiểm thử nên thời gian sinh và thực thi rất ít.

Với bộ 3 ca kiểm thử thì phương pháp này không phát hiện được lỗi nào của chương trình.

3

Phân lớp tương đương truyền thống

7

Thời gian cho việc kiểm thử 07 ca kiểm thử.

Phát hiện ra cả 03 lỗi liên quan đến 3 trường hợp: 1. Trường hợp DHoa <0 2. Trường hợp DHoa >10 3. Trường hợp DToan >10 4 Kiểm thử giá trị biên cơ bản 15

Tốn thời gian cho việc sinh và thực thi 15 ca kiểm thử.

Với 15 ca kiểm thử được sinh ra, phương pháp này không có khả năng phát hiện ra bất cứ một lỗi nào.

5 Kiểm thử giá trị

biên mở rộng 21

Cần thời gian và công sức cho việc tạo và thực thi 21 ca kiểm thử.

Phát hiện ra cả 3 lỗi của chương trình.

4.3. Thiết kế ca kiểm thử cho bài toán có các biến phụ thuộc. 4.3.1. Bài toán 4.3.1. Bài toán

NextDate” được coi là một ví dụ lý tưởng minh họa cho trường hợp các biến đầu vào có quan hệ logic phức tạp và phụ thuộc lẫn nhau. Với bài toán này, chúng ta sẽ khảo sát, thực thi việc sinh các ca kiểm thử áp dụng cho các phương pháp sau: Kiểm thử giá trị biên (kiểm thử giá trị biên cơ bản, kiểm thử giá trị biên mở rộng), phân hoạch tương đương (phân hoạch tương đương yếu, phân hoạch tương đương mạnh, phân hoạch tương đương truyền thống) và kiểm thử dựa trên bảng quyết định.

Ý tưởng cơ bản của bài toán “NextDate” là cho phép người dùng nhập vào một ngày bất kì (gọi là Current date) và hệ thống sẽ trả về ngày tiếp theo (gọi là Next date) tương ứng với ngày nhập vào. Current date và Next date sẽ được biểu diễn qua 3 biến ngày, tháng, năm (tương ứng Day, Month, Year). Hệ thống yêu cầu các giá trị đầu vào phải đúng định dạng, hợp logic và với giả thiết chỉ khảo sát các năm nằm trong khoảng 1812<= Year <=2012. Như vậy ta xác định được miền giá trị đầu vào của các biến như sau:

1<= Date <=31 1<=Month <=12 12<= Year <=2012 Hơn nữa theo logic thực tế thì:

Các tháng có 31 ngày bao gồm: 1,3,5,7,8,10,12 Các tháng có 30 ngày gồm: 4,6,9,11

Tháng 2 có 28 ngày với năm thường và 29 ngày với năm nhuận

Năm nhuận được định nghĩa là năm chia hết cho 4 nhưng không chia hết cho 100 Ta xây dựng chương trình cho hàm “NextDate” với giao diện như hình 4.2. Với chương trình thực nghiệm này, người dùng chỉ cần nhập vào ngày hiện tại (kí hiệu là Current date) thông qua các giá trị Day, Month, Year. Khi đó chức năng của hàm “NextDate” sẽ trả về ngày tiếp theo tương ứng với ngày hiện tại và được thể hiện qua giá trị của các ô textbox Next.Day, Next.Month và Next.Year. Trong trường hợp giá trị của các biến đầu vào không hợp lệ, hệ thống sẽ báo lỗi cho người dùng qua các thông điệp. Người dùng cũng có thể xem lại danh sách các bản ghi mà mình đã kiểm thử trong mục “List of Test Records”.

Hình 4.2. Giao diện bài toán “NextDate”.

4.3.2. Áp dụng các phƣơng pháp kiểm thử để sinh ca kiểm thử 4.3.2.1. Phƣơng pháp phân tích giá trị biên cơ bản

Lý thuyết sinh ca kiểm thử theo phương pháp phân tích giá trị biên cơ bản đã khảo sát ở chương 3 giúp chúng ta có được danh sách các giá trị biên cần kiểm thử cho các biến đầu vào Date, Month, Year như bảng 4.9.

Bảng 4.9 Các giá trị biên cơ bản cho bài toán “NextDate”

min min+ norm max- max Date 1 2 15 30 31 Month 1 2 6 11 12 Year 1812 1813 1912 2011 2012

Với phương pháp này, chúng ta sẽ có 125 ca kiểm thử được sinh ra và kết quả kiểm thử trên chương trình thử nghiệm cho thấy có 114 ca kiểm thử đạt OK, 11 ca kiểm thử có kết quả NOK. Tuy số lượng kết quả NOK là lớn nhưng bộ kiểm thử này chỉ phát hiện ra 2 trên tổng số 3 lỗi của chương trình. Nguyên nhân là vì có rất nhiều ca kiểm thử tương đương nhau, tức là chúng chỉ ra cùng một loại lỗi trên chương trình thử nghiệm. Điều đó cũng có nghĩa là số lượng ca kiểm thử có kết quả NOK không tỷ lệ thuận hoàn toàn với số lỗi phát hiện được.

Bảng 4.10 Kết quả kiểm thử theo phương pháp phân tích giá trị biên cơ bản cho bài toán “NextDate”

Kết quả kiểm thử

Tổng số ca kiểm thử OK NOK 125 114 11

4.3.2.2. Phƣơng pháp phân tích giá trị biên mở rộng

Danh sách các giá trị biên cần kiểm thử cho 3 biến Date, Month, Year được thể hiện chi tiết trong bảng 4.11.

Bảng 4.11 Các giá trị biên mở rộng cho bài toán “NextDate”

min- Min min+ norm max- max max+ Date -1 1 2 15 30 31 32 Month -1 1 2 6 11 12 13 Year 1811 1812 1813 1912 2011 2012 2013

Các ca kiểm thử được sinh ra dựa trên nguyên tắc lấy tích đề các của các tập con là các giá trị biên đã được xác định trong bảng 4.11. Ở ví dụ cụ thể này có 7 giá trị biên cho mỗi biến đầu vào nên sẽ có 343 (7x7x7) ca kiểm thử. Với 332 trường hợp có kết quả OK và 11 trường hợp có kết quả test là NOK thì bộ kiểm thử theo phương pháp này cũng chỉ phát hiện được 2 trên tổng số 3 lỗi của chương trình.

Bảng 4.12 Kết quả kiểm thử giá trị biên mở rộng cho bài toán “NextDate”

Kết quả kiểm thử

Tổng số ca kiểm thử OK NOK 343 332 11

4.3.2.3. Phƣơng pháp phân lớp tƣơng đƣơng yếu

Theo phân lớp tương đương yếu ta phân chia miền dữ liệu của các biến đầu vào thành các miền dữ liệu con như sau:

D1={day: 1<=day<=28} D2={day: day=29} D3={day: day=30} D4={day: day=31}

M2={month: month có 31 ngày}: bao gồm các tháng 1,3,5,7,8,10,12 M3={month: month là tháng 2}

Y1={ year : year = 1900}

Y2={ year : 1812 ≤ year ≤ 2012 & year ≠ 1900 & year = 0 mod 4 } Y3={year:1812≤year≤2012 & year≠0 mod 4}

Việc sinh ca kiểm thử trong phân lớp tương đương yếu phải đảm bảo mỗi miền con được kiểm tra ít nhất một lần. Các ca kiểm thử sinh ra theo phương pháp này được liệt kê ở bảng 4.13. Với kết quả 1 ca kiểm thử NOK, bộ kiểm thử này chỉ phát hiện ra 1 lỗi của chương trình thử nghiệm.

Bảng 4.13 Các trường hợp kiểm thử cho phân lớp tương tương yếu với bài toán “NextDate”

TC_ID Month Date Year ExpectedOutput Result

TC_01 6 14 1900 6/15/1900 OK TC_02 7 29 1912 7/30/1912 OK TC_03 2 30 1913 Invalid input OK TC_04 9 31 1900 Invalid input NOK

4.3.2.4. Phƣơng pháp phân lớp tƣơng đƣơng mạnh

Việc phân lớp tương đương miền giá trị của các biến đầu vào cho phân lớp tương đương mạnh cũng tương tự như phương pháp phân lớp tương đương yếu, tức là chúng cũng được chia thành các lớp con như mục 4.3.2.3. Ta xây dựng được 36 ca kiểm thử với kết quả kiểm tra như trong bảng 4.14. Như vậy nếu so sánh với phương pháp phân tích giá trị biên mở rộng thì khả năng bao quát lỗi của phương pháp này hiệu quả hơn, với 36 ca kiểm thử chúng ta có thể phát hiện được 2 trên tổng số 3 lỗi chương trình.

Bảng 4.14 Kết quả kiểm thử theo phương pháp phân lớp tương tương mạnh với bài toán “NextDate”

Kết quả kiểm thử

Tổng số ca kiểm thử OK NOK 36 32 4

4.3.2.5. Phƣơng pháp phân lớp tƣơng đƣơng truyền thống

Miền giá trị hợp lệ và không hợp lệ của các biến đầu vào trong phân lớp tương đương truyền thống được thể hiện như bảng 4.15 bên dưới:

Bảng 4.15 Kết quả kiểm thử theo phương pháp phân lớp tương truyền thống với bài toán “NextDate”

Miền hợp lệ Miền không hợp lệ

1<=day<=31 day<1, day>31 1<=month<=12 month<1, month>12 1812<=year<=2012 year<1812, year>2012

Tương ứng với miền dữ liệu trên sẽ có 07 ca kiểm thử được mô tả chi tiết trong bảng 4.16. Với bộ kiểm thử này, khi thực hiện chạy chương trình, chúng không tìm ra bất kì lỗi nào của chương trình thử nghiệm.

Bảng 4.16 Các trường hợp kiểm thử cho phân lớp tương tương truyền thống với bài toán “NextDate”

TC_ID Month Date Year ExpectedOutput Result

TC_01 6 15 1912 6/16/1912 OK TC_02 -1 15 1912 Invalid input OK TC_03 13 15 1912 Invalid input OK TC_04 6 -1 1912 Invalid input OK TC_05 6 32 1912 Invalid input OK TC_06 6 15 1811 Invalid input OK TC_07 6 15 2013 Invalid input OK

4.3.2.6. Phƣơng pháp phân tích bảng quyết định

Phương pháp kiểm thử dựa trên bảng quyết định áp dụng cho bài toán “NextDate” đã được kháo sát rất chi tiết ở mục 3.3. Ở chương này chúng ta sẽ thực hiện việc sinh các ca kiểm thử dựa theo bảng quyết định 3.25 đã phân tích cụ thể trong chương 3. Có 22 ca kiểm thử tương đương với 22 luật trong bảng quyết định. Khi thực hiện việc kiểm thử chương trình thử nghiệm dựa trên bộ kiểm thử này ta thu được kết quả với 19 case OK và 03 case NOK. Mặc dù chỉ có 22 ca kiểm thử nhưng bộ kiểm thử này đã bao quát và phát hiện ra cả 3 lỗi của chương trình thử nghiệm. Kiểm thử dựa trên bảng quyết định đã chứng minh được hiệu quả của nó khi thực hiện kiểm thử trên các biến đầu vào có mối quan hệ logic ràng buộc nhau.

Bảng 4.17 Kết quả kiểm thử dựa theo bảng quyết định cho bài toán “NextDate”

Kết quả kiểm thử

Tổng số ca kiểm thử OK NOK 22 19 3

Ở trên chúng ta đã khảo sát việc sinh ca kiểm thử cho từng phương pháp trên cùng một bộ dữ liệu của bài toán “NextDate”. Tuy nhiên để thấy được ưu nhược điểm cũng như khả năng phát hiện lỗi của mỗi phương pháp, học viên đã thực hiện việc chạy chương trình dựa theo các ca kiểm thử cho bài toán cụ thể này và tổng hợp được kết quả như bảng 4.18.

Bảng 4.18 So sánh các phương pháp sinh ca kiểm thử cho bài toán “NextDate”

No Phƣơng pháp

Số lƣợng ca kiểm

thử

Thời gian sinh và thực thi ca

kiểm thử

Khả năng phát hiện lỗi

1 Phân lớp tương

đương mạnh 36 3h

Có 04 ca kiểm thử với kết quả là NOK tương đương với việc phát hiện được 2/tổng số 3 lỗi của chương trình. Cụ thể các lỗi sau:

1. Trường hợp tháng 6 có 31 ngày nhưng không báo lỗi nhập sai đầu vào.

2. Trường hợp năm không nhuận, tháng 2 nhập 29 ngày nhưng không báo lỗi nhập sai đầu vào.

2 Phân lớp tương

đương yếu 4 0.5h

Có 01 ca kiểm thử với kết quả là NOK --> phát hiện 1/ tổng số 3 lỗi của chương trình.

3

Phân lớp tương đương truyền thống

7 1h Không phát hiện được lỗi nào với 07 ca kiểm thử.

4 Kiểm thử giá trị

biên cơ bản 125 4h

11 ca kiểm thử có kết quả là NOK tương đương với phát hiện được 2/tổng số 3 lỗi

5 Kiểm thử giá trị

biên mở rộng 343 10h

11 ca kiểm thử có kết quả là NOK tương đương với phát hiện được 2/ tổng số 3 lỗi

6 Bảng quyết định 22 6h Phát hiên được toàn bộ 03 lỗi của chương trình thử nghiệm.

Chƣơng 5. Kết luận

Kiểm thử hộp đen là một phương pháp quan trọng và được dùng chủ yếu trong hoạt động kiểm thử phần mềm. Việc khảo sát các phương pháp cơ bản để sinh ca kiểm thử trong kiểm thử hộp đen sẽ hỗ trợ cho người kiểm thử viên chọn lựa được những ca kiểm thử hiệu quả nhưng vẫn đảm bảo chất lượng phần mềm và chi phí cần thiết.

Đề tài “ Khảo sát một số phương pháp sinh bộ kiểm thử trong kiểm thử hộp đen” là một chủ đề mang tính thực tiễn. Thông qua việc khảo sát, phân tích các phương pháp, chúng ta có thể đưa ra gợi ý cho các công ty phần mềm nên áp dụng phương pháp nào phù hợp cho từng bài toán cụ thể nào. Tuy nhiên đây mới chỉ là một số phương pháp cơ bản, trong thực tế còn rất nhiều phương pháp khác đang được áp dụng nhưng chưa được đề cập đầy đủ trong giới hạn của luận văn. Hơn nữa luận văn cũng cần áp dụng cho các ví dụ thực tế hơn để khẳng định kết quả khi thực hiện so sánh các phương pháp.

Sau một thời gian nghiên cứu và tìm hiểu, luận văn đã đạt được kết quả như sau. Học viên đã tìm hiểu được các kiến thức cơ bản nhất về kiểm thử phần mềm bao gồm: các khái niệm cơ bản về kiểm thử phần mềm (định nghĩa, lý do, vai trò và mục tiêu của kiểm thử), tiến trình thực hiện kiểm thử bao gồm những giai đoạn nào, các công việc cần thực hiện trong suốt quá trình kiểm thử là gì và các cấp độ kiểm thử trong kiểm thử phần mềm bao gồm: kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống và kiểm thử chấp nhận sản phẩm.

Ngoài ra, luận văn còn tập trung khảo sát được một số phương pháp sinh bộ kiểm thử trong kiểm thử hộp đen, cụ thể là các phương pháp sau: kiểm thử giá trị biên, kiểm thử dựa trên phân hoạch tương đương, kiểm thử dựa trên bảng quyết định. Từ đó đưa ra phân tích đánh giá để thấy được thế mạnh của từng phương pháp.

Cuối cùng, áp dụng những kiến thức tìm hiểu được trong giới hạn của luận văn, học

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Khảo sát một số phương pháp sinh bộ kiểm thử trong kiểm thử hộp đen (Trang 62 - 72)

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

(72 trang)