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

Cucumber เป็นเครื่องมือที่รองรับข้อมูลจำเพาะของ Executable Test automation และ Living documentation

การพัฒนาพฤติกรรมที่ขับเคลื่อนขยายไปตามข้อกำหนดตามตัวอย่าง นอกจากนี้ยังกำหนดแนวทางปฏิบัติที่ดีที่สุดของ Test-Driven Development โดยเฉพาะอย่างยิ่งมุมมองของการทำงานจากภายนอกใน งานพัฒนาเป็นไปตามข้อกำหนดที่ปฏิบัติการได้

key features ของข้อกำหนดที่สามารถปฏิบัติการได้มีดังนี้ -

  • ข้อมูลจำเพาะที่ปฏิบัติการได้คือ -

    • มาจากตัวอย่างที่แสดงถึงพฤติกรรมของระบบ

    • เขียนด้วยความร่วมมือของทุกฝ่ายที่เกี่ยวข้องในการพัฒนารวมถึงธุรกิจและผู้มีส่วนได้ส่วนเสีย

    • ขึ้นอยู่กับเกณฑ์การยอมรับ

  • การทดสอบการยอมรับที่เป็นไปตามข้อกำหนดปฏิบัติการเป็นไปโดยอัตโนมัติ

  • ภาษาที่ใช้ร่วมกันและแพร่หลายถูกใช้เพื่อเขียนข้อกำหนดที่สามารถปฏิบัติการได้และการทดสอบอัตโนมัติดังกล่าว -

    • มีการใช้คำศัพท์เฉพาะโดเมนตลอดการพัฒนา

    • ทุกคนรวมถึงลูกค้าและผู้มีส่วนได้ส่วนเสียพูดถึงระบบข้อกำหนดและการนำไปใช้ในลักษณะเดียวกัน

    • คำศัพท์เดียวกันนี้ใช้เพื่อหารือเกี่ยวกับระบบที่มีอยู่ในข้อกำหนดเอกสารการออกแบบรหัสการทดสอบ ฯลฯ

    • ทุกคนสามารถอ่านและทำความเข้าใจข้อกำหนดและวิธีสร้างข้อกำหนดเพิ่มเติมได้

    • การเปลี่ยนแปลงสามารถแก้ไขได้ง่าย

    • เอกสารสดได้รับการดูแล

แตงกวาช่วยในกระบวนการนี้เนื่องจากเชื่อมโยงข้อมูลจำเพาะที่ปฏิบัติการได้กับรหัสจริงของระบบและการทดสอบการยอมรับอัตโนมัติ

วิธีนี้ได้รับการออกแบบมาเพื่อให้ลูกค้าและนักพัฒนาทำงานร่วมกัน เมื่อการทดสอบการยอมรับผ่านไปหมายความว่าข้อกำหนดของลักษณะการทำงานของระบบที่แสดงนั้นได้รับการปรับใช้อย่างถูกต้อง

การทดสอบการยอมรับแตงกวาโดยทั่วไป

ลองพิจารณาตัวอย่างต่อไปนี้

Feature − Sign up

  • การลงทะเบียนควรรวดเร็วและเป็นมิตร

  • สถานการณ์ - ลงทะเบียนสำเร็จ

    • New ผู้ใช้ควรได้รับอีเมลยืนยันและได้รับการต้อนรับเป็นการส่วนตัว

    • Given ฉันได้เลือกที่จะลงทะเบียน

    • When ฉันลงทะเบียนด้วยรายละเอียดที่ถูกต้อง

    • Then ฉันควรได้รับอีเมลยืนยัน

    • And ฉันควรเห็นข้อความทักทายส่วนตัว

จากตัวอย่างนี้เราจะเห็นว่า -

  • การทดสอบการยอมรับอ้างถึง Features.

  • คุณสมบัติอธิบายโดย Scenarios.

  • สถานการณ์ประกอบด้วย Steps.

ข้อกำหนดนี้เขียนด้วยภาษาธรรมชาติในไฟล์ข้อความธรรมดา แต่สามารถเรียกใช้งานได้

การทำงานของแตงกวา

Cucumber เป็นเครื่องมือบรรทัดคำสั่งที่ประมวลผลไฟล์ข้อความที่มีคุณลักษณะที่กำลังมองหาสถานการณ์ที่สามารถดำเนินการกับระบบของคุณได้ ให้เราเข้าใจว่าแตงกวาทำงานอย่างไร

  • ใช้ประโยชน์จากข้อตกลงมากมายเกี่ยวกับวิธีการตั้งชื่อไฟล์และตำแหน่งที่อยู่ (โฟลเดอร์ที่เกี่ยวข้อง) เพื่อให้ง่ายต่อการเริ่มต้น

  • แตงกวาช่วยให้คุณเก็บข้อมูลจำเพาะการทดสอบอัตโนมัติและเอกสารไว้ในที่เดียวกัน

  • แต่ละสถานการณ์คือรายการของขั้นตอนที่อธิบายถึงเงื่อนไขก่อนการดำเนินการและหลังเงื่อนไขของสถานการณ์ หากแต่ละขั้นตอนดำเนินการโดยไม่มีข้อผิดพลาดสถานการณ์จะถูกทำเครื่องหมายว่าผ่าน

  • เมื่อสิ้นสุดการวิ่งแตงกวาจะรายงานจำนวนสถานการณ์ที่ผ่านไป

  • หากมีบางอย่างล้มเหลวจะให้ข้อมูลเกี่ยวกับสิ่งที่ล้มเหลวเพื่อให้นักพัฒนาสามารถดำเนินการต่อได้

ในแตงกวา Features, Scenariosและขั้นตอนจะเขียนด้วยภาษาที่เรียกว่า Gherkin.

Gherkin เป็นภาษาอังกฤษแบบข้อความธรรมดา (หรือหนึ่งในกว่า 60 ภาษาอื่น ๆ ) ที่มีโครงสร้าง Gherkin เรียนรู้ได้ง่ายและโครงสร้างของมันช่วยให้คุณสามารถเขียนตัวอย่างได้อย่างกระชับ

  • แตงกวาดำเนินการไฟล์ของคุณที่มีข้อกำหนดปฏิบัติการที่เขียนด้วย Gherkin

  • แตงกวาต้องการคำจำกัดความของขั้นตอนเพื่อแปล Gherkin Steps ข้อความธรรมดาเป็นการกระทำที่จะโต้ตอบกับระบบ

  • เมื่อแตงกวาดำเนินการขั้นตอนในสถานการณ์จำลองจะมองหาคำจำกัดความของขั้นตอนที่ตรงกันเพื่อดำเนินการ

  • Step Definition คือโค้ดชิ้นเล็ก ๆ ที่มีรูปแบบติดอยู่

  • รูปแบบนี้ใช้เพื่อเชื่อมโยง Step Definition กับขั้นตอนที่ตรงกันทั้งหมดและโค้ดคือสิ่งที่ Cucumber จะดำเนินการเมื่อเห็นขั้นตอน Gherkin

  • แต่ละขั้นตอนจะมาพร้อมกับคำจำกัดความของขั้นตอน

  • ขั้นตอนส่วนใหญ่จะรวบรวมข้อมูลเข้าจากนั้นมอบหมายให้กับเฟรมเวิร์กที่เฉพาะเจาะจงสำหรับโดเมนแอปพลิเคชันของคุณเพื่อทำการโทรบนเฟรมเวิร์กของคุณ

Cucumber รองรับแพลตฟอร์มซอฟต์แวร์ที่แตกต่างกันมากกว่าโหล คุณสามารถเลือกการใช้งานแตงกวาที่เหมาะกับคุณได้ ทุกการใช้งาน Cucumber มีฟังก์ชันการทำงานโดยรวมเหมือนกันและยังมีขั้นตอนการติดตั้งและฟังก์ชันเฉพาะแพลตฟอร์มของตัวเองอีกด้วย

ขั้นตอนการทำแผนที่และคำจำกัดความของขั้นตอน

กุญแจสำคัญของแตงกวาคือการจับคู่ระหว่างขั้นตอนและคำจำกัดความขั้นตอน

การใช้แตงกวา

ด้านล่างนี้คือการใช้แตงกวา

ทับทิม / JRuby
JRuby (ใช้ Cucumber-JVM)
Java
Groovy
.NET (ใช้ SpecFlow)
JavaScript
JavaScript (ใช้ Cucumber-JVM และ Rhino)
Clojure
โกซู
ลัวะ
PHP (ใช้ Behat)
Jython
C ++
Tcl

การรวมกรอบ

ด้านล่างนี้คือการใช้งาน Framework

ทับทิมบนราง
ซีลีเนียม
PicoContainer
กรอบสปริง
Watir