Loop Testing

Software testing ความรู้ สำหรับ Tester ผู้ทดสอบ เป็นส่วนสำคัญในการ test โปรแกรม การ ทดสอบโปรแกรมมีความรู้แนะนำไว้ในหมวดนี้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jay_limm
PHP VIP Members
PHP VIP Members
โพสต์: 4935
ลงทะเบียนเมื่อ: 02/06/2014 9:58 am

Loop Testing

โพสต์โดย jay_limm » 07/06/2014 11:34 am

loop testing
loop : การที่โปรแกรมวนทำชุดคำสั่งซ้ำๆ

นี่เป็นคำศัพท์ที่ข้องและต้องทำความเข้าใจก่อนจะทดสอบการทำงานของ loop
loop count : จำนวนครั้งที่มีการวนทำซ้ำคำสั่งใน loop นั้น
Deterministic loop : loopที่เรารู้จำนวนครั้งในการวนซ้ำเมื่อเริ่ม loop นั้น
Non-deterministic loop : loop ที่เราไม่รู้จำนวนครั้งที่แน่นอนเมื่อเริ่มทำloop นั้น

08-1.PNG
08-1.PNG (14.36 KiB) เปิดดู 407 ครั้ง

Loop control node : node ที่มีทางออก 2 ทาง ทางแรกจะเป็นการรัน loop เดิม อีกทางคือออกจาก loop เช่น node หมายเลข 3 จากรูปด้านบน
Loop exit node : node ที่มีการแทนค่าความจริงอย่างน้อย 1 ค่า แล้วทำให้เกิดการออกจาก loop อาจจะมีมากกว่า 1 exit node ก็ได้ เช่น node หมายเลข 3 จากรูปด้านบน
Loop entry node : เป็น node เริ่มต้นของ loop อาจจะมีมากกว่า 1 entry node ก็ได้ เช่น node หมายเลข 1 จากรูปด้านบน
Loop control predicate : เงื่อนไขในการตรวจสอบ loop control node จะเป็นตัวกำหนดว่าจะทำการรัน loop หรือไม่ เช่น while(X<10) ผลลัพธ์ของ predicate จะเป็น true หรือ false
Loop control variable : คือตัวแปรที่อยู่ใน loop control predicate เช่น ตัวแปร X ซึ่งค่าของตัวแปรจะมีผลกระทบต่อค่าของ loop control predicate
Pretest loop : มีการตรวจสอบค่าของ loop control variable ก่อนจะเริ่ม รัน loop เช่น คำสั่ง while
Posttest loop : มีการตรวจสอบค่าของ loop control variable หลังจากที่รัน loopไปแล้ว เช่น คำสั่ง de...while
mix-test node : จะมีการทดสอบค่า loop control predicate ทั้งก่อนและหลังการรัน loop
nested loop : เป็น loop ที่ซับซ้อน อาจจะมี 2 loop ย่อยๆ หรือมากกว่า นั้นมาอยู่ใน loop เดียว

08-2.PNG
08-2.PNG (27.81 KiB) เปิดดู 407 ครั้ง

08-3.PNG
08-3.PNG (25.29 KiB) เปิดดู 407 ครั้ง

08-4.PNG
08-4.PNG (33.64 KiB) เปิดดู 407 ครั้ง

08-5.PNG
08-5.PNG (24.97 KiB) เปิดดู 407 ครั้ง


ในการออกแบบกรณีทดสอบของloop จะต้องพิจารณาค่าเหล่านี้่
bypass : ค่าที่ทำให้ออกจาก loop ทันที(ไม่ทำคำสั่งที่อยู่ใน loop แม้แต่รอบเดียว)เช่น 0 เป็นต้น
negative : ค่า loop control variable ที่เป็นลบ ต้องดูก่อนว่าค่า loop control variable เป็นลบได้หรือไม่ ถ้าเป็น
ไม่ได้ ให้ลองใส่ค่าที่เป็นลบลงไปเพื่อดูผลที่เกิดขึ้น
once : ค่าที่ทำให้เกิดการทำงานใน loop เพียงรอบเดียว
twice : ค่าที่ทำให้เกิดการทำงานใน loop 2 รอบ เพื่อดูว่าค่าใดบ้างที่ไม่มีการเปลี่ยนแปลงเมื่อมีการวน loop เพิ่ม
typical : ค่าจำนวนรอบใดๆอยู่ในช่วง [min,max]ของ loop แต่ต้องไม่ซ้ำซ้อนกับค่าที่ทดสอบไปแล้ว
max : ค่าจำนวนรอบสูงสุดที่รันloopได้
max+1 : ค่าจำนวนรอบสูงสุดที่รันloopได้ +1 เพื่อเป็นการป้องกันการเกิด loop control variable ไม่ให้เกินค่าสูงสุด
max-1: ค่าจำนวนรอบสูงสุดที่รันloopได้ -1 เพื่อดูผลลัพธ์ที่เกิดขึ้น
min : ค่าจำนวนรอบต่ำสุดที่รันloopได้
min+1 : ค่าจำนวนรอบต่ำสุดที่รันloopได้ +1 เพื่อดูผลลัพธ์ที่เกิดขึ้น
min -1 : ค่าจำนวนรอบต่ำสุดที่รันloopได้ -1 เพื่อดูว่ามีการป้องกันไม่ให้เข้าทำคำสั่งใน loop ได้หรือไม่
บางที Bug ก็ไม่มีเหตุผล และไม่ต้องการคำจำกัดความ

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 3 และ บุคคลทั่วไป 0 ท่าน