1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập về nhà tuần 10 kiểm thử tích hợp

10 5 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Về Nhà Tuần 10 Kiểm Thử Tích Hợp
Tác giả Lê Văn Hùng
Người hướng dẫn TS. Phạm Ngọc Hùng
Trường học University of Science and Technology
Chuyên ngành Kiểm thử đảm bảo chất lượng phần mềm
Thể loại Bài tập về nhà
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 10
Dung lượng 233,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÀI T ẬP V NHÀ TUẦN 10 – Kiểm thử tích hợp Môn h ọc: Kiểm thử đảm bảo chất lượng phần mềm.. - Phiếu giảm giá được áp dụng cho những người có phiếu giảm giá và không đi theo nhóm, sẽ đượ

Trang 1

BÀI T ẬP V NHÀ TUẦN 10 – Kiểm thử tích hợp

Môn h ọc: Kiểm thử đảm bảo chất lượng phần mềm

H ọ và tên: Lê Văn Hùng

Mã s ố HV: 14025012

Gi ảng viên: TS Phạm Ngọc Hùng

Tính tiền vé vào công viên dựa theo các điều kiện sau:

- Công viên chỉ làm việc từ thứ 2 đến thứ 7

- Với người lớn (Tuổi >= 13) giá vé là 1200 Yên/người

- Với trẻ em giá vé là 800 Yên/người

- Nếu đi theo nhóm (Lớn hơn 20 người), với người lớn giá vé là 800

Yên/người, nếu là trẻ em giá vé là 300 yên/người

- Phiếu giảm giá được áp dụng cho những người có phiếu giảm giá và không đi

theo nhóm, sẽ được giảm 25% tổng số tiền vé

- Tiền vé sau khi thu được từ phái khách hàng trích một khoản để nộp thuế

o Nếu số tiền < 10 000 Yên thì không phải nộp

o Nếu số tiền từ 10 000 Yên đến 20000 Yên phải nộp 10% tiền thuế

o Từ 20 000 yên trở lên phải nộp 20% tiên thuế

Dựa trên mô tả bài toán, chương trình sẽ được tổ chức thành 4 modules như sau:

- CheckDay (Module C) – Kiểm tra tính hợp lệ của ngày làm việc

- isCoupon (Module D) – Kiểm tra xem khác hàng có thuộc diện được giảm

giá không

- TicketPrice (Module B) – Tính tiền vé

- TotalMone (Module A) – Tính tổng tiền khách hàng phải trả (có tính thuế)

Sơ đồ chương trình:

Trang 2

I Chiến lược kiểm thử Top Down

1 Trường hợp C và D đều chưa hoàn thành, B đã hoàn thành

Giả sử ta cần kiểm thử module B (hàm TicketPrice()), nhưng hàm CheckDay() và isCoupon chưa hoàn thành Ta sẽ viết các Stub tương ứng với các case trong hàm

TicketPrice()

public boolean stub_checkday1(int day ) {

return true; }

public boolean stub_checkday2(int day ) {

return false; }

public boolean stub_isCoupon1(boolean isCoupon , int numOfPerson ) {

return true; }

public boolean stub_isCoupon2(boolean isCoupon , int numOfPerson ) {

return false; }

Với các stub này ta sẽ kiểm thử hàm TicketPrice

Giả sử chọn stub_checkday1() và stub_isCoupon1():

public double TicketPrice(int old , boolean isCoupon , int

numOfPerson ,

int day ) {

if (stub_checkday1( day )) {

if ( numOfPerson >= 20) {

TotalMoney (A)

TicketPrice (B)

CheckDay (C)

isCoupon (D)

Trang 3

if ( old >= 13)

price = numOfPerson * 800;

else {

price = numOfPerson * 300;

} } else {

if ( old > 13)

price = numOfPerson * 1200;

else {

price = numOfPerson * 800;

} }

if (stub_isCoupon1( isCoupon , numOfPerson )) {

price -= price * 0.2;

}

return price;

}

return -1;

}

Chọn phương pháp kiểm thử hộp đen với phương pháp kiểm thử giá trị biên để kiểm

thử hàm TotalMoney

{12, true, 20, 4} 4800.0 Pass

{13, true, 20, 4} 10800.0 Pass

{12, true, 19, 4} 12160.0 Pass

{13, true, 20, 4} 19200.0 Fail

Tương tự với các stub còn lại

2 Trường hợp hoàn thành C mà chưa hoàn thành D

Giả lập các stub như sau:

public boolean stub_isCoupon1(boolean isCoupon , int numOfPerson ) {

return true; }

public boolean stub_isCoupon2(boolean isCoupon , int numOfPerson ) {

return false; }

Giả sử chọn stub_isCoupon1():

public double TicketPrice(int old , boolean isCoupon , int

numOfPerson ,

int day ) {

if (checkday( day )) {

if ( numOfPerson >= 20) {

if ( old >= 13)

price = numOfPerson * 800;

Trang 4

else {

price = numOfPerson * 300; }

} else {

if ( old > 13)

price = numOfPerson * 1200;

else {

price = numOfPerson * 800; }

}

if (stub_isCoupon1( isCoupon , numOfPerson )) {

price -= price * 0.2;

}

return price;

}

return -1;

}

Áp dụng phương pháp kiểm thử hộp đen ta có:

{12, true, 20, 1} -1.0 Pass

{13, true, 20, 1} -1.0 Pass

{12, true, 19, 1} -1.0 Pass

{13, true, 20, 1} -1.0 Pass

{12, true, 20, 4} 4800.0 Pass

{13, true, 20, 4} 10800.0 Pass

{12, true, 19, 4} 12160.0 Pass

{13, true, 20, 4} 19200.0 Fail

Tương tự đối với stub_isCoupon2():

3 Trường hợp hoàn thành D mà chưa hoàn thành C

Ta viết các stub cho module C

public boolean stub_checkday1(int day ) {

return true; }

public boolean stub_checkday2(int day ) {

return false; }

Với stub_checkday1() Ta có:

Trang 5

public double TicketPrice(int old , boolean isCoupon , int

numOfPerson ,

int day ) {

if (stub_checkday1( day )) {

if ( numOfPerson >= 20) {

if ( old > 13) // Chen loi o day, thieu dau =

price = numOfPerson * 800;

else {

price = numOfPerson * 300;

} } else {

if ( old > 13)

price = numOfPerson * 1200;

else {

price = numOfPerson * 800;

} }

if (isCoupon( isCoupon , numOfPerson )) {

price -= price * 0.2; // Lỗi (0.25 chứ không phải 0.2) }

return price;

}

return -1;

}

Áp dụng phương pháp kiểm thử hộp đen ta có:

{13, true, 19, 4} 11400 Fail (12160)

4 Trường hợp A đã hoàn thành, nhưng B chưa hoàn thành

Áp dụng chiến lược kiểm thử hộp đen với phương pháp kiểm thử giá trị biên để

kiểm thử module A, ta sẽ viết các stub trả về các giá trị biên để module A sử dụng:

public double TicketPrice_Stub1(int old, boolean isCoupon,

int numOfPerson, int day) {

return 10000.0;

}

public double TicketPrice_Stub2(int old, boolean isCoupon,

int numOfPerson, int day) {

return 9999.0;

}

Trang 6

public double TicketPrice_Stub3(int old, boolean isCoupon,

int numOfPerson, int day) {

return 20000.0;

}

public double TicketPrice_Stub4(int old, boolean isCoupon,

int numOfPerson, int day) {

return 20001.0;

}

public double TicketPrice_Stub5(int old, boolean isCoupon,

int numOfPerson, int day) {

return 19999.0;

}

Với Stub: TicketPrice_Stub3():

public double TotalMoney(int old, boolean isCoupon, int numOfPerson, int day) {

double p = TicketPrice_Stub3((old, isCoupon, numOfPerson, day); //

*

if (p > 10000 && p < 20000) // L ỗi vì p>=10000

p = p - 0.16 * p;

else if (p > 20000) // L ỗi vì p>=20000

p = p - 0.2 * p;

else

p = p - 0;

return p;

}

Kết quả kiểm thử cho hàm TotalMoney():

II Chi n lược kiểm thử Botom up

1 Trường hợp 1: C và D hoàn thành, B chưa hoàn thành

Dựa theo yêu cầu bài toán ở trên, giả sử module C và module D đã hoàn thành, nhưng module B chưa hoàn thành

Hiện tại chúng ta cần kiểm thử tính đúng đắn của 2 modules này:

boolean checkday(int day ) {

if( day >= 2 && day < 7)

return true;

else

return false;

Trang 7

}

boolean isCoupon(boolean isCoupon , int numOfPerson ) {

if( isCoupon && numOfPerson < 20)

return true;

return false; }

public double TicketPrice_Driver1(int old , boolean isCoupon , int

numOfPerson ,

int day ) {

if(checkday(7) == true)

return 1;

if(checkday(8) == true)

return 0;

if(checkday(2) == true)

return 1;

if(checkday(1) == false)

return 0;

return 1;

}

Áp dụng phương pháp kiểm thử giá trị biên cho module này:

Áp dụng tương tự với Driver cho module isCoupon()

2 Trường hợp B hoàn thành, A chưa hoàn thành

Ta cần kiểm thử sự đúng đắn của module B

Trang 8

public double TicketPrice(int old , boolean isCoupon , int numOfPerson ,

int day ) {

if (checkday( day )) {

if ( numOfPerson >= 20) {

if ( old >= 13)

price = numOfPerson * 800;

else {

price = numOfPerson * 300;

} } else {

if ( old >= 13)

price = numOfPerson * 1200;

else {

price = numOfPerson * 800;

} }

if (isCoupon( isCoupon , numOfPerson )) {

price -= price * 0.2;

}

return price;

}

return -1;

}

Trang 9

Testcase để kiểm thử hàm TicketPrice với độ phủ C2:

1-2-3-5-9-11 (10, false, 15, 5) 12000 12000 Pass

1-2-3-5-9-10-11

(10, true, 15, 5) 9600 9000 Pass

1-2-3-6-9-11 (20, false, 15, 5) 12000 12000 Pass

1-2-3-6-9-10-11

(20, true, 15, 5) 14400 13500 Fail

1-2-4-7-9-11 (5, false, 25, 5) 7500 7500 Pass

1-2-4-7-9-10-11

1-2-4-8-9-11 (20, false, 25, 5) 20000 20000 Pass

1-2-4-8-9-10-11

Trang 10

Viết các Driver để chạy module B (TicketPrice)

public double TotalMoney_Driver1(int old, boolean isCoupon,

int numOfPerson, int day) {

return TicketPrice(10, true, 20, 1);

}

public double TotalMoney_Driver2(int old, boolean isCoupon,

int numOfPerson, int day) {

return TicketPrice(10, false, 15, 5);

}

public double TotalMoney_Driver3(int old, boolean isCoupon,

int numOfPerson, int day) {

return TicketPrice(10, true, 15, 5);

}

Tương tự cho các Driver khác

Ngày đăng: 21/12/2022, 15:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w