พฤติกรรมขับเคลื่อนการพัฒนา - บทนำ
Behavior Driven Development (BDD) เป็นกระบวนการพัฒนาซอฟต์แวร์ที่มาจาก Test Driven Development (TDD)
Dan North ผู้รับผิดชอบการวิวัฒนาการของ BDD กล่าวว่า“ BDD ใช้ตัวอย่างในหลายระดับเพื่อสร้างความเข้าใจร่วมกันและสร้างความไม่แน่นอนในการส่งมอบซอฟต์แวร์ที่มีความสำคัญ”
BDD ใช้ตัวอย่างเพื่อแสดงพฤติกรรมของระบบที่เขียนด้วยภาษาที่อ่านได้และเข้าใจได้สำหรับทุกคนที่เกี่ยวข้องกับการพัฒนา ตัวอย่างเหล่านี้ ได้แก่ -
แปลงเป็นข้อกำหนดปฏิบัติการ
ใช้เป็นการทดสอบการยอมรับ
BDD - คุณสมบัติที่สำคัญ
การพัฒนาพฤติกรรมมุ่งเน้นไปที่ -
จัดหากระบวนการและเครื่องมือที่ใช้ร่วมกันเพื่อส่งเสริมการสื่อสารให้กับนักพัฒนาซอฟต์แวร์นักวิเคราะห์ธุรกิจและผู้มีส่วนได้ส่วนเสียเพื่อร่วมมือกันในการพัฒนาซอฟต์แวร์โดยมีจุดมุ่งหมายเพื่อส่งมอบผลิตภัณฑ์ที่มีคุณค่าทางธุรกิจ
ระบบควรทำอย่างไรและไม่ควรนำไปใช้อย่างไร
ให้การอ่านและการมองเห็นที่ดีขึ้น
ไม่เพียง แต่ตรวจสอบการทำงานของซอฟต์แวร์เท่านั้น แต่ยังตรวจสอบว่าเป็นไปตามความคาดหวังของลูกค้าด้วย
ที่มาของ BDD
ค่าใช้จ่ายในการแก้ไขข้อบกพร่องจะเพิ่มขึ้นหลายเท่าหากตรวจไม่พบข้อบกพร่องในเวลาที่เหมาะสมและแก้ไขเมื่อตรวจพบ ลองพิจารณาตัวอย่างต่อไปนี้
สิ่งนี้แสดงให้เห็นว่าหากไม่ได้รับข้อกำหนดอย่างถูกต้องการแก้ไขข้อบกพร่องที่เกิดจากความเข้าใจผิดข้อกำหนดในระยะต่อมาจะมีราคาแพง นอกจากนี้ผลิตภัณฑ์สุดท้ายอาจไม่ตรงตามความคาดหวังของลูกค้า
ความต้องการของชั่วโมงเป็นแนวทางการพัฒนาที่ -
เป็นไปตามข้อกำหนด
มุ่งเน้นไปที่ข้อกำหนดตลอดการพัฒนา
ตรวจสอบให้แน่ใจว่าเป็นไปตามข้อกำหนด
แนวทางการพัฒนาที่สามารถดูแลข้อกำหนดดังกล่าวข้างต้นได้คือ BDD ดังนั้นพฤติกรรมที่ขับเคลื่อนการพัฒนา -
มาจากตัวอย่างของพฤติกรรมที่คาดหวังต่างๆของระบบ
เปิดใช้งานการเขียนตัวอย่างเป็นภาษาโดยใช้เงื่อนไขโดเมนธุรกิจเพื่อให้ทุกคนที่เกี่ยวข้องกับการพัฒนาเข้าใจง่ายรวมถึงลูกค้า
รับตัวอย่างที่ให้สัตยาบันกับลูกค้าเป็นครั้งคราวโดยวิธีการสนทนา
มุ่งเน้นไปที่ความต้องการของลูกค้า (ตัวอย่าง) ตลอดการพัฒนา
ใช้ตัวอย่างเป็นการทดสอบการยอมรับ
แนวทางปฏิบัติของ BDD
แนวทางปฏิบัติหลักสองประการของ BDD คือ -
ข้อกำหนดตามตัวอย่าง (SbE)
ทดสอบขับเคลื่อนการพัฒนา (TDD)
คุณสมบัติตามตัวอย่าง
Specification by Example (SbE) ใช้ตัวอย่างในการสนทนาเพื่อแสดงกฎทางธุรกิจและพฤติกรรมของซอฟต์แวร์ที่จะสร้างขึ้น
ข้อมูลจำเพาะตามตัวอย่างช่วยให้เจ้าของผลิตภัณฑ์นักวิเคราะห์ธุรกิจผู้ทดสอบและนักพัฒนาสามารถขจัดความเข้าใจผิดทั่วไปเกี่ยวกับข้อกำหนดทางธุรกิจได้
ทดสอบการขับเคลื่อนการพัฒนา
Test Driven Development ในบริบทของ BDD จะเปลี่ยนตัวอย่างให้เป็นข้อมูลจำเพาะที่มนุษย์อ่านได้และปฏิบัติการได้
นักพัฒนาใช้ข้อกำหนดเหล่านี้เป็นแนวทางในการใช้ฟังก์ชันใหม่ที่เพิ่มขึ้น ส่งผลให้เกิดโค้ดเบสแบบลีนและชุดการทดสอบการถดถอยอัตโนมัติที่ช่วยให้ค่าบำรุงรักษาต่ำตลอดอายุการใช้งานของซอฟต์แวร์
BDD ที่คล่องตัว
ในการพัฒนาซอฟต์แวร์ Agile จะใช้วิธี BDD เพื่อทำความเข้าใจร่วมกันเกี่ยวกับข้อกำหนดที่รอดำเนินการ
ขั้นตอนต่อไปนี้ดำเนินการใน Agile BDD -
นักพัฒนาและเจ้าของผลิตภัณฑ์ร่วมกันเขียนข้อกำหนดที่รอดำเนินการในโปรแกรมแก้ไขข้อความธรรมดา
เจ้าของผลิตภัณฑ์ระบุพฤติกรรมที่พวกเขาคาดหวังจากระบบ
นักพัฒนา
กรอกข้อมูลจำเพาะด้วยรายละเอียดพฤติกรรมเหล่านี้
ถามคำถามตามความเข้าใจในระบบ
พฤติกรรมของระบบในปัจจุบันจะพิจารณาเพื่อดูว่าคุณลักษณะใหม่จะทำลายคุณลักษณะที่มีอยู่หรือไม่
Agile Manifesto และ BDD
Agile Manifest เพื่อระบุสิ่งต่อไปนี้ -
เรากำลังเปิดเผยวิธีที่ดีกว่าในการพัฒนาซอฟต์แวร์โดยการทำและช่วยเหลือผู้อื่น ผ่านงานนี้เราได้มาถึงคุณค่า -
Individuals and interactions - ผ่านกระบวนการและเครื่องมือ
Working software - มากกว่าเอกสารที่ครอบคลุม
Customer collaboration - มากกว่าการเจรจาสัญญา
Responding to change - มากกว่าการทำตามแผน
นั่นคือในขณะที่มีค่าในรายการทางด้านขวาเราให้ความสำคัญกับรายการทางด้านซ้ายมากขึ้น
BDD จัดตัวเองให้เข้ากับ Agile manifesto ดังนี้ -
ประกาศ Agile | การจัดตำแหน่ง BDD |
---|---|
บุคคลและปฏิสัมพันธ์กับกระบวนการและเครื่องมือ | BDD เกี่ยวกับการสนทนา |
ซอฟต์แวร์ที่ใช้งานได้กับเอกสารที่ครอบคลุม | BDD มุ่งเน้นที่การสร้างซอฟต์แวร์ที่มีคุณค่าทางธุรกิจได้ง่าย |
การทำงานร่วมกันของลูกค้าในการเจรจาสัญญา | BDD มุ่งเน้นไปที่สถานการณ์ตามแนวคิดด้วยการสื่อสารอย่างต่อเนื่องกับลูกค้าเมื่อการพัฒนาดำเนินไป มันไม่ได้ขึ้นอยู่กับคำสัญญาใด ๆ |
การตอบสนองต่อการเปลี่ยนแปลงตามแผน | BDD มุ่งเน้นไปที่การสื่อสารและการทำงานร่วมกันอย่างต่อเนื่องซึ่งเอื้อให้เกิดการเปลี่ยนแปลง |