BDD (Behavior Driven Development) ??

BDD (Behavior Driven Development) คืออะไร ?

BDD คืออะไร ?

BDD คือ รูปแบบการพัฒนาซอฟต์แวร์ที่มีการสร้าง test ขึ้นมาก่อนการ coding เหมือนกับ TDD ครับ เพียงแต่จะมีการบิดมุมมองเพื่อที่จะแก้ปัญหาของ TDD บางประการ ได้แก่

– ไม่สามารถตอบคำถามได้ว่าควรเริ่ม test จาก case ไหนก่อน?

– Tester สร้าง test case ไม่ถูก/ไม่ครอบคลุม/มากเกินความจำเป็น เนื่องจากไม่รู้ Behavior(พฤติกรรม) ของผู้ใช้-   – ในการ test ครั้งหนึ่ง จะต้อง test ละเอียดขนาดไหน?1

– ชื่อ test case และ test script ของ TDD ยากแก่การเข้าใจ หากไม่ใช่ Tester/Programmer (เช่น stakeholders,      PM, BA, SME) เพราะภาษาที่ใช้มีความสอดคล้องกับ User story น้อย

– และเมื่อเกิดความผิดพลาด จะเข้าใจยากว่าทำไมผลถึงออกมาผิดพลาด

Dan North ซึ่งเป็นคนมองเห็นปัญหาเหล่านี้ ได้พยายาม ปรับ TDD ให้ดีและเข้ากับ Agile มากยิ่งขึ้น (จนบางคนมองว่า BDD ก็คือ TDD done well หรือ TDD ที่ทำออกมาได้ดีนั่นเอง) เค้ามองว่าทำไมเราถึงไม่เอา Acceptance Testing ซึ่งเป็นสิ่งที่ลูกค้าเข้าใจง่ายๆ อยู่แล้ว มารวมกับ Unit Testing ซะหล่ะ!! เพราะ Acceptance Testing จะเป็นตัวบอกอยู่แล้วว่าควรจะ test แค่ไหนลูกค้าถึงจะพอใจ และยอมปล่อย release แรกออกไปได้

ตัวอย่างการเขียน BDD

 

 

 

 

โดย User story ข้างต้น จะมีความหมายดังนี้

  • Storyเรื่องราวที่กำลังจะ test (อาจเขียนเป็น class)
  • Scenarioคำอธิบายรวมๆ ของ test  (method ที่กำลังจะ test)
  • Givenค่าที่กำหนดให้ (ส่วนใหญ่เป็นการ mock data หรือการสร้างข้อมูลจำลอง)
  • Whenเหตุการณ์หลักของ Scenario นั้น เช่น การที่ user กดบันทึก เป็นต้น
  • Thenผลของ Scenario นั้น หรือ user  ควรได้รับผลแบบไหน ซึ่งเราจะต้องทำการตรวจสอบ (Assert) ค่าว่าตรงตามที่ Scenario ได้กำหนดไว้หรือไม่

หากลองเอามาเขียนโค้ด ก็จะได้ประมาณนี้ (เขียนด้วย JBehave ซึ่งเป็น tool สำหรับทำ BDD ของ Java)

สำหรับสาย Front-end เราก็สามารถทำ BDD กับการเขียน JavaScriptได้เหมือนกันด้วย Jasmine รูปแบบของโค้ดจะมีหน้าตาประมาณนี้ครับ


Tanawit Butkod
at GlurGeek.Com
ชื่อ ธนวิชญ์ บุตรโคตร ภูมิลำเนา นนทบุรี
นักศึกษา มหาวิทยาลัย กรุงเทพ- รังสิต
การศึกษา ปีที่2 ภาค คอมพิวเตอร์
ชื่อเล่น ฟิล์ม สัญชาติไทย ศาสนา พุทธ
วันเกิด วัน พฤหัสบดี ที่ 11 เดือน พฤศจิกายน พ.ศ. 2536
ส่วนสูง/น้ำหนัก 178 Cm / 70 Kg
Email Tanawit.budk@bumail.net
นิสันส่วนตัว ร่าเริง แจ่มใส เป็นคนพูดมาก หรือ ประมาณว่า มีมนุษย์สัมพันธ์ดี เข้ากับคนได้ง่าย มาก( ลองดูได้นะ ถ้าไม่เชื่อ)
คติประจำใจ ไม่มีคำว่าอนาคต เพราะ ทุกวินาทีคืออนาคตทั้งสิ้น ครับ
ความใฝ่ฝัน ส้รางสรรค์ผลงานอะไรก็ได้
งานอดิเรก เล่นกีต่ร์ (เพราะมาก..55+) ร้องเพลง ฟังเพลง
กีฬาที่ชอบ ตระกร้อ ฟุตบอล ปิงปอง
ความชอบส่วนตัว
ดอกไม้ที่ชอบ ดอกบัว เพราะ บ้านที่ต่างจังหวัดมีเยอะมาก
ตั้นไม้ที่ชอบ ต้นมะขาม เพราะ ตอนเป็นเด็กปีนเล่นบ่อย
วิชาที่ชอบ สังคม เพราะ เรียนแล้ว รู้สึกอยากรู้เรื่องราว มากขึ้นเรื่อยๆ
อาหารที่ชอบ แกงสายบัว แกงขี้เหล็ก หรืออาหารไทย ทั่วๆไป เพราะ คุณยายของผม ชอบทำให้ทาน ตอนเป็นเด็ก (อร่อยมาก... ขอบอก)
หนังสือที่ชอบ รถยนต์ หนังสือเดินทาง และ แหล่งท่องเทียว
เพลงที่ชอบ ลูกทุ่ง เพื่อชีวิต ได้หมด
หนังที่ชอบดู หนังAction แนวชีวิต
สิ่งที่ทำยากสุดในชิวิต การวิเคราะห์
ศิลปินที่ชอบ วงแคลช

Leave a Reply

© 2022 GlurGeek.Com