r2 - 28 Sep 2008 - 14:53:09 - PanitaMeananeatraYou are here: SETEC Wiki >  Knowledge Web  > SoftwareEngineeringCategory > SoftwareTesting > CH16_Glass-BoxTestCaseDesignTechniques > CH16_3_ConditionTesting


Condition Testing


ลักษณะการ Test Software

  • จะ Test ทุกๆเงื่อนไขของโปรแกรม ในการตัดสินใจ
  • ใน การตัดสินใจ ครั้งหนึ่ง อาจจะเกิด เงื่อนไข ได้หลาย เงื่อนไขก็ได้

ตัวอย่าง Condition Testing

เป็น source code ของ function การคำนวนราคาเช่าห้องพักโรงแรม

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 ได้ ดังนี้

condition1.jpg

* อธิบาย จากรูปจะเห็นได้ว่า เราจะีมี 7 branch condition และ 5 condition หรือ Node ที่มีสีแดง ที่เป็นไปได้่

ตัวอย่างกรณีทดสอบ

Test Case
Check in date
Checkout time
Late checkout time
room rate
charge
1
12/8/2006
12.30pm
None
$85
$510

จาก Test Case ที่ 1 จะผ่าน Condition และ Branch Condition ดังรูป

con5.jpg

* อธิบาย จะเห็นได้ว่า Test Case ที่ 1 ทำให้ผ่าน 2 branch คือ 1 และ 5 คิดเป็น % ได้คือ

ผ่าน 2 ใน 7 branch คือ 28% branch condition coverage

จากนั้นเราจะเพิ่้ม Test Case เพื่อให้ครอบคลุม Branch Condition มากขึ้นกว่าเดิม

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

จาก Test Case ที่ 1(สีน้ำเงิน) และ 2(สีเหลือง) จะผ่าน Condition และ Branch Condition ดังรูป

con2.jpg

* อธิบาย จะเห็นได้ว่า Test Case ที่ 1 และ 2 ทำให้ผ่าน 4 branch คือ 1 4 5 และ 7 คิดเป็น % ได้คือ

ผ่าน 4 ใน 7 branch คือ 57% branch condition coverage

จากนั้นเราจะเพิ่้ม Test Case เพื่อให้ครอบคลุม Branch Condition มากขึ้นกว่าเดิม

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
17/8/2006
3:15pm
11:30am
$85
$510

จาก Test Case ที่ 1(สีน้ำเงิน) 2(สีัเหลือง) และ 3(สีม่วง) จะผ่าน Condition และ Branch Condition ดังรูป

con3.jpg

* อธิบาย จะเห็นได้ว่า Test Case ที่ 1 2 และ 3 ทำให้ผ่าน 6 branch คือ 1 2 4 5 6และ 7 คิดเป็น % ได้คือ

ผ่าน 6 ใน 7 branch คือ 85% branch condition coverage

จากนั้นเราจะเพิ่้ม Test Case เพื่อให้ครอบคลุม Branch Condition มากขึ้นกว่าเดิม

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
17/8/2006
3:15pm
11:30am
$85
$510
4
12/8/2006
2:15pm
7:30pm
$85
$510

จาก Test Case ที่ 1(สีน้ำเงิน) 2(สีัเหลือง) 3(สีม่วง) และ 4(สีแดง) จะผ่าน Condition และ Branch Condition ดังรูป

con4.jpg

จะเห็นได้ว่าเราต้องกำหนด 4 Test Case ถึงจะทดสอบครอบคลุมทุกๆ Branch Condition หรือ 100% Branch Condition Coverage

References

1. Software Testing Techniques for Improving Software Quality , White Box Testing


toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg condition1.jpg manage 27.0 K 28 Sep 2008 - 10:48 PanitaMeananeatra  
jpgjpg con5.jpg manage 29.2 K 28 Sep 2008 - 10:48 PanitaMeananeatra  
jpgjpg con4.jpg manage 30.0 K 28 Sep 2008 - 10:49 PanitaMeananeatra  
jpgjpg con3.jpg manage 29.8 K 28 Sep 2008 - 10:49 PanitaMeananeatra  
jpgjpg con2.jpg manage 29.1 K 28 Sep 2008 - 10:49 PanitaMeananeatra  
Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
Powered by SETEC Wiki
Copyright ©2012 by National Electronics and Computer Technology Center, NECTEC.
Ideas, requests, problems regarding SETEC Wiki? Send feedback