Tính số test case cần thiết cho chương trình bán vé máy

Tất cả các câu hỏi liên quan đến test case
Post Reply
Hoang_Sai
Hoc Tester
Posts: 1
Joined: Mon 17 Nov, 2014 12:27 pm
Contact:

Tính số test case cần thiết cho chương trình bán vé máy

Post by Hoang_Sai »

Em có một bài toán tính số testcase như thế này mà ko biết cách làm, mong mọi người chỉ giúp em:
Bài toán yêu cầu tính toán tỉ lệ chiết khấu cho khách mua vé máy bay.
Input gồm:
  • - Tuổi hành khách (5-120)
    - Ngày bay >= ngày hiện tại
    - Thành phần cá nhân (VIP, bình thường)
Điều kiện giảm giá:
  • - Giảm giá cho những hành khách <=15 tuổi hoặc >= 65 tuổi là 50%.
    - Giảm giá cho những hành khách đặt vé trước một tháng là 20%.
    - Áp dụng cho những hành khách đạt 1 trong 2 tiêu chí trên. Giảm giá cho khách VIP là 10%.
Tính số testcase basic phải kiểm thử cho bài toán này.



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by tvn »

Đây là ý kiến của một bạn trên group chat
Thuy Tien - Tp.HCM wrote: Vì ko hỏi case valid data input, chi hỏi tỉ lệ chiết khấu cho khách mua vé máy bay

Check tỉ lệ chiết khấu cho khách mua vé máy bay(Giảm giá):

Vì có 3 LOẠI giảm giá (10%,20%,50%), và 1 LOẠI giảm giá có 2 ngưỡng đạt giám giá hoặc ko đạt giảm giá (Tuổi: trong 15<= tuổi <= 65 hoặc ngoài; Đặt vé > 1 tháng hoặc < 1 tháng; ViP hoặc không VIP )
nên sẽ có: 2*2*2 = 8 cases
  • Check giảm giá 0 %: (Tuoi > 15 hoặc < 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân = Bình thường)
    Check giảm giá 10 %: (Tuoi > 15 hoặc < 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân = VIP)
    Check giảm giám 20 %: (Tuoi > 15 hoặc < 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân = Bình thường)
    Check giảm giám 30 %: (Tuoi > 15 hoặc < 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân = VIP)
    Check giảm giá 50 %: (Tuoi <= 15 hoặc >= 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân= bình thường)
    Check giảm giá 60 %: (Tuoi <= 15 hoặc >= 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân= VIP)
    Check giảm giá 70 %: (Tuoi <= 15 hoặc >= 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân= Bình thường)
    Check giảm giá 80 % : (Tuoi <= 15 hoặc >= 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân= VIP)



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by tvn »

Bạn khác có câu hỏi về cái gọi là "một tháng" và đưa ra giải đáp của mình như sau
hakunabr0 wrote: Về phần ngày đặt vé trước một tháng, vậy mấy tháng có 28/29/30/31 ngày sẽ tính ra sao?
Mình sẽ lấy số ngày bình quân hay theo từng tháng?
  • < 5 + > 120 - 1
    5 -> 15 + 50% - 2 normal
    5 -> 15 + 50% + 20% - 3 dat ve thang truoc
    5 -> 15 + 50% + 10% - 4 VIP
    5 -> 15 + 50% + 20% + 10% - 5 dat ve thang truoc + VIP

    15 -> 65 - 6 normal
    15 -> 65 + 20% - 7 dat ve thang truoc
    15 -> 65 + 20% + 10% - 8 dat ve thang truoc + VIP

    65 -> 120 + 50% - 9 normal
    65 -> 120 + 50% + 20% - 10 dat ve thang truoc
    65 -> 120 + 50% + 10% - 11 VIP
    65 -> 120 + 50% + 20% + 10% - 12 dat ve thang truoc + VIP



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by tvn »

Một ý kiến khác nữa của Đông - ĐN
Đông - ĐN wrote: Mình dã có dap án, gởi cho các bạn chém chơi
Case1: Check giảm giá 0 %: (15 < Tuoi < 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân = Bình thường)
Case2: Check giảm giá 10 %: (15 < Tuoi < 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân = VIP)
Case3: Check giảm giám 20 %: (15 < Tuoi < 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân = Bình thường)
Case4: Check giảm giám 20 %: (15 < Tuoi < 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân = VIP)
Case5: Check giảm giá 50 %: (Tuoi <= 15) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân= bình thường)
Case6: Check giảm giá 50 %: (Tuoi <= 15) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân= VIP)
Case7: Check giảm giá 50 %: (Tuoi <= 15) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân= Bình thường)
Case8: Check giảm giá 50 % : (Tuoi <= 15) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân= VIP)
Case9: Check giảm giá 50 %: (Tuoi >= 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân= bình thường)
Case10: Check giảm giá 50 %: (Tuoi >= 65 tuổi) and (Ngày đặt vé - current date < 1 thang) and (Thành phần cá nhân= VIP)
Case11: Check giảm giá 50 %: (Tuoi >= 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân= Bình thường)
Case12: Check giảm giá 50 % : (Tuoi >= 65 tuổi) and (Ngày đặt vé - current date > 1 thang) and (Thành phần cá nhân= VIP)



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by tvn »

Hoang_Sai wrote:Em có một bài toán tính số testcase như thế này mà ko biết cách làm, mong mọi người chỉ giúp em:
Bài toán yêu cầu tính toán tỉ lệ chiết khấu cho khách mua vé máy bay.
Input gồm:
  • - Tuổi hành khách (5-120)
    - Ngày bay >= ngày hiện tại
    - Thành phần cá nhân (VIP, bình thường)
Điều kiện giảm giá:
  • - Giảm giá cho những hành khách <=15 tuổi hoặc >= 65 tuổi là 50%.
    - Giảm giá cho những hành khách đặt vé trước một tháng là 20%.
    - Áp dụng cho những hành khách đạt 1 trong 2 tiêu chí trên. Giảm giá cho khách VIP là 10%.
Tính số testcase basic phải kiểm thử cho bài toán này.
Trước khi trả lời câu hỏi này, mình sẽ hỏi lại người ra đề (người hỏi mình bài tập này) một số câu hỏi như sau:
  • 1. Có được phép áp dụng nhiều điều kiện giảm giá cùng lúc không? Ví dụ: Khách hàng A 65 tuổi và đặt vé trước 1 tháng rưỡi và ông ta là khách VIP. Trường hợp này sẽ được giảm bao nhiêu %
    2. "Trước một tháng" là dựa vào 30 ngày hay là so với "ngày này tháng trước" nghĩa là cùng ngày mà khác tháng.
Sau khi có câu trả lời, thì nó sẽ quyết định "kết quả mong đợi của một số test case.

Đây là cách mình tính dựa vào phân vùng tương đươngphân tích giá trị biên

Input 1:
--------------5--------------15---------------------64------------120-------------
---invalid----|----50%------|----bình thường-----|----50%------|---invalid--

Các giá trị cần test: 8
  • + 4 tuổi => invalid (báo lỗi tuổi không hợp lệ)
    + 5 tuổi => giảm 50%
    + 15 tuổi => giảm 50%
    + 16 tuổi => không giảm
    + 64 tuổi => không giảm
    + 65 tuổi => giảm 50%
    + 120 tuổi => giảm 50%
    + 121 tuổi => invalid
Input 2:
---------------trước 0 ngày---------trước 1 tháng------
---invalid----|-----bình thường----|--20%---------

Các giá trị cần test: 5
Giả sử:
  • + Ngày hiện tại là 19-11-2014
    + Ngày hiện tại là ngày mua vé (tính toán giảm giá ngay lúc mua)
Vậy mình có những case sau:
  • + ngày bay: 18-11 => không hợp lệ (< ngày hiện tại)
    + ngày bay: 19-11 => không giảm giá (= ngày hiện tại)
    + ngày bay: 18-12 => không giảm giá (mua trước < 1 tháng)
    + ngày bay: 19-12 => 20% (mua trước = 1 tháng)
    + ngày bay: 20-12 => 20% (mua trước > 1 tháng)
Input 3: 2
  • + Khách Thường => không giảm
    + Khách VIP => giảm thêm 10%
Dựa vào pairwise mình có 8 x 5 = 40 case cần test.

Đây là trả lời cho câu hỏi dựa vào các kỹ thuật thiết kế test case (lý thuyết).
Trên thực tế mình có thể dựa vào các giá trị trên để pair mà không cần phải sử dụng order-2 => số test case thực sự được test sẽ ít hơn.



lethimai
Hoc Tester
Posts: 1
Joined: Sun 07 Jun, 2015 7:50 am
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by lethimai »

anh ơi a có thể giải thích cho em tại sao lại là 8x5 testcase k ạ :D



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by tvn »

lethimai wrote:anh ơi a có thể giải thích cho em tại sao lại là 8x5 testcase k ạ :D
Được nhưng mà hơi mất thời gian vì nó lằng nhằng mà giờ anh đang bận, hôm nào anh sẽ post bài pairwise testing để giải thích rõ hơn nha.



duamuoi
Hoc Tester
Posts: 5
Joined: Wed 17 Aug, 2016 8:18 am
Contact:

Re: Tính số test case cần thiết cho chương trình bán vé máy

Post by duamuoi »

8x5 vậy còn trường hợp khách thường và khách vip?



Post Reply

Return to “Test cases - Tập hợp các trường hợp kiểm thử”