1 function charge_calc(checkin_date,checkout_time,late_checkout_time,room_rate){
2 today = date();
3 expected_checkout_time=12pm;
4 latest_checkout_time=6pm;
5 no_of_night=today-checkin_date;
6 if(late_checkout_time<>"None"){
7 if(late_checkout_time>expected_checkout_time)and(late_checkout_time<=lastest_checkout_time){
8 expected_checkout_time=late_checkout_time;
9 }
10 }
11 if(checkout_time>exptected_checkout_time) or (checkin_date==today){
12 no_of_nights=no_of_nights+1;
13 }
14 charge=no_of_night*room_rate;
15 return charge;
16 }
จาก source code เราสามารถ นำมาเขียนอธิบายในรูปของ Control Flow Graph ได้ดังนี้
* อธิบาย จากรูปจะเห็นได้ว่า เราจะีมี Decision อยู่ 3 Decision คือส่วนที่เป็น Node สีแดง และมี 5 Branches ที่เป็นไปได้่
Test Case |
Check in date |
Checkout time |
Late checkout time |
room rate |
charge |
1 |
12/8/2006 |
12.30pm |
None |
$85 |
$510 |
* อธิบาย จะเห็นได้ว่าผ่าน 2 Branch คือ Branch ที่ 1 และ 4 และผ่าน 2 Decision ในส่วนที่เป็นสีน้ำเงิน คิดเป็น % ได้คือ
ผ่าน 2 ใน 3 Decision หรือ 66% Decision Coverage
ผ่าน 2 ใน 5 Branch หรือ 40% Branch Coverage
จากนั้น เราจะเพิ่ม Test Case ที่ 2 เพื่อให้ครอบคลุม branch หรือ decision มากขึ้นกว่าเดิม
Test Case |
Check in date |
Checkout time |
Late checkout time |
room rate |
charge |
1 |
12/8/2006 |
12.30pm |
None |
$85 |
$510 |
2 |
12/8/2006 |
2:15pm |
2:30pm |
$85 |
$425 |
* อธิบาย จะเห็นได้ว่าผ่าน 4 Branch คือ Branch ที่ 1 3 4 และ 5 และผ่าน 3 Decision ในส่วนที่เป็นสีน้ำเงิน คิดเป็น % ได้คือ
ผ่าน 3 ใน 3 Decision หรือ 100% Decision Coverage
ผ่าน 4 ใน 5 Branch หรือ 80% Branch Coverage
จากนั้น เราจะเพิ่ม Test Case ที่ 3 เพื่อให้ครอบคลุม branch 100%
Test Case |
Check in date |
Checkout time |
Late checkout time |
room rate |
charge |
1 |
12/8/2006 |
12.30pm |
None |
$85 |
$510 |
2 |
12/8/2006 |
2:15pm |
2:30pm |
$85 |
$425 |
3 |
12/8/2006 |
3:15pm |
11:30am |
$85 |
$510 |
* อธิบาย จะเห็นได้ว่าผ่าน ครับ 5 Branch พอดี คิดเป็น% ได้คือ
ผ่าน 3 ใน 3 Decision หรือ 100% Decision Coverage
ผ่าน 5 ใน 5 Branch หรือ 100% Branch Coverage
เพราะฉะนั้นจาก source code และ Control Flow Graph เราจะต้องกำหนด 3 Test Case เพื่อเข้าไป Test ให้ครอบคลุมทุกๆ Branch และ ทุกๆ Decision
| I | Attachment | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|
| | branch1.jpg | manage | 27.6 K | 28 Sep 2008 - 10:42 | PanitaMeananeatra | |
| | branch2.jpg | manage | 29.8 K | 28 Sep 2008 - 10:42 | PanitaMeananeatra | |
| | bran2.jpg | manage | 30.1 K | 28 Sep 2008 - 10:42 | PanitaMeananeatra | |
| | bran3.jpg | manage | 29.1 K | 28 Sep 2008 - 10:43 | PanitaMeananeatra |