พฤติกรรมขับเคลื่อนการพัฒนา - บทนำ

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 มุ่งเน้นไปที่การสื่อสารและการทำงานร่วมกันอย่างต่อเนื่องซึ่งเอื้อให้เกิดการเปลี่ยนแปลง