Decision Table Testing

Decision Table Testing

วันนี้พลอยจะมาอธิบาย Black Box Testing Technique อีกวิธีนึงนั่นก็คือการใช้ Decision Table ค่ะ

Decision Table หรือที่เรียกกันว่าตารางตัดสินใจ คือ วิธีที่นำมาช่วยในการทดสอบการทำงานร่วมกันของเงื่อนไขที่มีหลายเงื่อนไข และการเลือกการกระทำที่จะเกิดขึ้นจากเงื่อนไขนั้นๆ โดยตารางจะประกอบด้วย Conditions และ Actions ค่ะ

Decision Table Testing

เพื่อความเข้าใจมากขึ้น พลอยมีตัวอย่างมาให้ดูค่ะ

ตัวอย่าง บริษัท ABC ต้องการที่จะหาวิธีจัดการ order ของลูกค้า
• Order ทั้งหมดของลูกค้าที่ไม่ใช่ลูกค้าประเภท Star-client และ ลูกค้าที่ credit ไม่ดี จะถูกปฎิเสธ order (reject)
• ถ้าสินค้าใน stock มีเพียงพอจะ accept order นอกเหนือจากนั้นจะ ให้รอ (waiting-list)

โดยเราเขียน Decision Diagram ได้ดังนี้

Decision Table Testing

จำนวนของ rules จะเท่ากับ จำนวนของ values(cond1) x … x จำนวนของ values(condN)
ซึ่งนั่นก็คือ 2 x 2 x 2 = 8 rules
จากนั้นเรามาเขียนตารางโดยกำหนด rules ไว้ 8 column(ที่คำนวนได้ข้างบน) และมี Conditions และ Actions แบบนี้ค่ะ

Decision Table Testing

และใส่เงื่อนไขและ Actions ต่างๆลงไป

Decision Table Testing

จากตารางที่ได้มานั้นจะเห็นได้ว่ามันใหญ่เกินไป และมีหลายกรณีที่เงื่อนไขบางเงื่อนไขไม่มีความหมาย ซ้ำซ้อน และให้ผลลัพธ์ออกมาเหมือนกัน ตัวอย่างเช่น ถ้ามี credit ดี และมีเงื่อนไขของ stock ก็เพียงพอต่อการที่จะเกิด Actions แล้ว client นั้นไม่ส่งผลต่อการตัดสินใจเลย

Decision Table Testing

เราจะทำตารางให้กะทัดรัด โดยลดเงื่อนไขที่ซ้ำซ้อนกันลง เงื่อนไขที่ไม่ได้ใช้เราจะเขียนแทนด้วยเครื่องหมาย “ - “ ในแถวตั้งที่ไม่จำเป็นเราจะยุบ column เหลือเพียง 1 column โดยเมื่อยุบแล้วจะได้ในรูปแบบนี้ค่ะ

Decision Table Testing

จาก Decision Table นี้ สรุปได้ดังนี้
R1: If credit = good And Stock = suf Then Handling = accept
R2: If credit = good And Stock = insuf Then Handling = wait
R3: If credit = bad And Clients = yes And Stock = suf Then Handling = accept
R4: If credit = bad And Clients = yes And Stock = insuf Then Handling = wait
R5: If credit = bad And Clients = no Then Handling = reject


เพียงเท่านี้เราก็จะสามารถทดสอบเงื่อนไขต่างๆ ที่ซับซ้อนได้อย่างถูกต้อง และเป็นอีกวิธีที่ช่วยในการออกแบบ test case อีกด้วย ไม่ยากใช่ไหมคะ ลองนำไปประยุกต์ใช้กันดูค่ะ :)


Related Posts

Comments