Path testing : เป็นวิธีการทดสอบโดยอาศัยเส้นทางเป็นตัวช่วยในการออกแบบเส้นทาง จะต้องทดสอบทุกๆ คำสั่ง และทุกๆ ทางเลือกที่เป็นไปได้ แต่การทดสอบทุกๆทางเลือกนั้นเป็นไปได้ยาก ดังนั้นจึงมี test criteria เป็นตัววัดว่าการทดสอบทำได้ระดับไหน
- Path testing: เป็นการทดสอบในทุกๆเส้นทางที่เป็นไปได้ตลอดทั้งโปรแกรม ตั้งแต่เริ่มจนจบโปรแกรม ถ้าทำได้จะเรียกว่า 100% path coverage เรียกสั้นๆว่า path coverage หรือ ทดสอบได้ระดับ C3 เป็นวิธีที่ดีที่สุด แต่ทำได้ยากที่สุด โดยเฉพาะโปรแกรมใหญ่ๆ
- Branch testing: เป็นการทดสอบเท่าที่จำเป็น เพื่อให้แน่ในว่าทุกทางเลือก(branch) เช่น if-then-else หรือ case statement ได้ทดสอบอย่างน้อยหนึ่งครั้ง ถ้าทดสอบได้ทุกทางเลือกจนครบจะเรียกว่า 100% branch coverage เรียกสั้นๆว่า branch coverage ,link coverage หรือ ทดสอบได้ระดับ C2
- Statement testing: เป็นการทดสอบโดยการรันทุกๆ คำสั่งภายในโปรแกรมอย่างน้อย 1 ครั้ง ถ้าทดสอบได้ครบจะเรียกว่า 100% statement coverage เรียกสั้นๆว่า statement coverage ,note coverage หรือ ทดสอบได้ระดับ C1 เป็นวิธีที่น่าเชื่อถือน้อยที่สุด
จากรูป มีทางเลือก(branch) อยู่ 2 จุด คือ node 2 กับ node 5 มีเส้นทางที่เป็นไปได้ 4 เส้นทาง
การทดสอบแบบ Path Testing(C3): ถ้าจะทำการทดสอบได้ระดับนี้ต้องทำการทดสอบให้ได้ 4 เส้นทาง(ต้องทำทุกเส้นทางที่เป็นไปได้)
>>1-2-3-5-6-8-9
>>1-2-3-5-7-8-9
>>1-2-4-5-6-8-9
>>1-2-4-5-7-8-9
การทดสอบแบบ Branch Testing(C2): ถ้าจะทำการทดสอบได้ระดับนี้ต้องทำการทดสอบอย่างน้อย 2 เส้นทาง(ต้องผ่านทางเลือกทุกทางอย่างน้อย 1 ครั้ง)
>>1-2-3-5-6-8-9
>>1-2-4-5-7-8-9
การทดสอบแบบ Statement Tesring(C1): ถ้าจะทำได้ระดับนี้ต้องทำการทดสอบอย่างน้อย 1 เส้นทาง
>>1-2-3-5-6-8-9
ตัวอย่างจากรูปจะเห็นได้ว่าเส้นทางใน C1,C2,C3 จะซ้ำกัน
ซึ่งในการทำการทดสอบนั้น หากทำการทดสอบแบบ C3 แล้ว จะถือว่าครอบคลุุมการทดสอบแบบ C1 และ C2 ด้วย ในทำนองเดียวกัน หากทำการทดสอบแบบ C2 แล้ว จะถือว่าครอบคลุมการทดสอบแบบ C1 ด้วย
ในการทดสอบเราสามารถตรวจสอบจาก coverage table ได้ว่าทดสอบถึงจุดไหนแล้ว โดยดูว่า แต่ละ process-link ถูกทดสอบแล้วหรือยัง ถ้าทำครบทุก process-link แล้ว แสดงว่าทดสอบถึงระดับ C1 หรือว่า statement coverage นอกจากนี้ยังสามารถดูได้ว่าทดสอบ Decision ครบ ทั้ง Y และ N แล้วหรือยัง ถ้าทดสอบครบแล้วแสดงว่าผ่านการทดสอบระดับ C2 หรือ branch coverage แล้ว
แนวทางในการเลือกเส้นทางมีดังนี้
- เลือกเส้นทางที่ง่ายที่สุดก่อน (เริ่มโปรแกรมจนสิ้นสุดโปรแกรม)
- เส้นทางต่อไปควรเลือกเส้นทางที่ต่างออกไปเพียงเล็กน้อย โดยอาจจะเปลี่ยนแค่ 1 จุด เช่น decision ควรเลือกเส้นทางที่ไม่มี loop หรือเส้นทางที่ซับซ้อนน้อยว่าโดยต้องเลือกให้สอดคล้องกับฟังก์ชันการทำงาน
- สำหรับเส้นทางที่ไม่สอดคล้องกับการทำงานของฟังก์ชัน ให้เลือกเฉพาะกรณีที่จำเป็นให้ผ่าน criteria ที่กำหนดไว้เท่านั้น
ตัวอย่าง control flowgraph ของโปรแกรม
ตัวอย่าง coverage table ของ control flowgraph ด้านบน
Path Testing
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP VIP Members
- โพสต์: 4933
- ลงทะเบียนเมื่อ: 02/06/2014 9:58 am
Path Testing
บางที Bug ก็ไม่มีเหตุผล และไม่ต้องการคำจำกัดความ
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
- 0 ตอบกลับ
- 1742 แสดง
-
โพสต์ล่าสุด โดย jay_limm
06/06/2014 9:48 am
-
-
โพสต์ใหม่ ข้อดี / ข้อเสียของ Manual Testing และ Automated Testing
โดย Patipat » 20/06/2019 5:22 pm » ใน Software testing - 0 ตอบกลับ
- 10512 แสดง
-
โพสต์ล่าสุด โดย Patipat
20/06/2019 5:22 pm
-
-
-
โพสต์ใหม่ ทำความรู้จัก : REGRESSION TESTING & RE-TESTING
โดย pnut » 15/08/2016 4:19 pm » ใน Software testing - 0 ตอบกลับ
- 2937 แสดง
-
โพสต์ล่าสุด โดย pnut
15/08/2016 4:19 pm
-
-
- 0 ตอบกลับ
- 2495 แสดง
-
โพสต์ล่าสุด โดย nutapisit
28/06/2021 5:01 pm
-
- 0 ตอบกลับ
- 2038 แสดง
-
โพสต์ล่าสุด โดย jay_limm
07/06/2014 11:34 am
-
- 0 ตอบกลับ
- 2779 แสดง
-
โพสต์ล่าสุด โดย jay_limm
04/06/2014 3:52 pm
-
- 0 ตอบกลับ
- 2411 แสดง
-
โพสต์ล่าสุด โดย jay_limm
03/06/2014 2:35 pm
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 72