เครื่องมือทดสอบ Cucumber เผชิญการต่อต้านจากนักพัฒนาเนื่องจากคำสัญญาที่ผิดหวังเรื่องการทดสอบด้วยภาษาธรรมดา

ทีมชุมชน BigGo
เครื่องมือทดสอบ Cucumber เผชิญการต่อต้านจากนักพัฒนาเนื่องจากคำสัญญาที่ผิดหวังเรื่องการทดสอบด้วยภาษาธรรมดา

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

คำสัญญาที่ผิดหวังเรื่องการมีส่วนร่วมของคนที่ไม่มีความรู้ทางเทคนิค

ปัญหาพื้นฐานที่รบกวน Cucumber ไม่ใช่เรื่องเทคนิค แต่เป็นเรื่องของมนุษย์ แม้จะทำการตลาดว่าเป็นเครื่องมือที่ให้นักวิเคราะห์ธุรกิจ ผู้เชี่ยวชาญในสาขา และผู้มีส่วนได้ส่วนเสียอื่นๆ ที่ไม่มีความรู้ทางเทคนิคสามารถเขียนและตรวจสอบการทดสอบได้ แต่ความเป็นจริงกลับแตกต่างอย่างสิ้นเชิง นักพัฒนารายงานว่าผู้มีส่วนได้ส่วนเสียเหล่านี้ไม่ค่อยมีส่วนร่วมกับกระบวนการทดสอบอย่างมีความหมาย ทำให้วิศวกรต้องจัดการทั้งการเขียนข้อกำหนดและการแยกวิเคราะห์ที่ซับซ้อนด้วย regex ที่เชื่อมต่อภาษาธรรมดากับโค้ดทดสอบจริง

สิ่งนี้สร้างภาระสามขั้นตอนสำหรับนักพัฒนา: การเขียนข้อกำหนดในรูปแบบ Gherkin ของ Cucumber การสร้างตัวแยกวิเคราะห์เพื่อแปลข้อกำหนดเหล่านั้นให้เป็นออบเจ็กต์ทดสอบที่ใช้งานได้ และสุดท้ายคือการใช้งานการทดสอบจริง สิ่งที่ควรจะทำให้การทำงานร่วมกันง่ายขึ้น กลับเพิ่มชั้นของความซับซ้อนแทน

ความท้าทายในการใช้งาน Cucumber

หมวดหมู่ความท้าทาย ปัญหาเฉพาะ
การมีส่วนร่วมของผู้มีส่วนได้ส่วนเสีย สมาชิกทีมที่ไม่มีพื้นฐานทางเทคนิคไม่ค่อยเขียนหรือตรวจสอบการทดสอบ
ความซับซ้อนทางเทคนิค ระบบการแยกวิเคราะห์แบบ regex ต้องการการบำรุงรักษาอย่างต่อเนื่อง
ข้อจำกัดของข้อกำหนด ประสิทธิภาพต่ำเมื่อต้องจัดการกับสถานการณ์ทางธุรกิจที่ซับซ้อน
ภาระงานเพิ่มเติมของนักพัฒนา กระบวนการสามขั้นตอน: เขียนข้อกำหนด สร้างตัวแยกวิเคราะห์ และใช้งานการทดสอบ
ภาระการบำรุงรักษา โครงสร้างการทดสอบที่เปราะบางและไวต่อการเปลี่ยนแปลงภาษา

ข้อจำกัดทางเทคนิคทำให้ปัญหาซับซ้อนยิ่งขึ้น

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

ลักษณะที่ขับเคลื่อนด้วย regex ของระบบแยกวิเคราะห์ของ Cucumber เพิ่มชั้นความหงุดหงิดอีกหนึ่งชั้น วิศวกรต้องสร้าง regular expressions เพื่อจับคู่กับรูปแบบภาษาธรรมชาติ ทำให้เกิดโครงสร้างพื้นฐานการทดสอบที่เปราะบางและต้องการการบำรุงรักษาอย่างต่อเนื่อง การเปลี่ยนแปลงเล็กน้อยในการใช้คำสามารถทำลายชุดการทดสอบทั้งหมดได้ ทำให้คำสัญญาเรื่องภาษาธรรมดารู้สึกเหมือนกับดักมากกว่าฟีเจอร์

ผู้เชี่ยวชาญในอุตสาหกรรมแบ่งปันบทเรียนที่ได้จากประสบการณ์

นักพัฒนาที่มีประสบการณ์ซึ่งได้พยายามใช้งาน Cucumber ในหลายองค์กรรายงานรูปแบบที่สอดคล้องกันของความกระตือรือร้นในช่วงแรกตามด้วยการละทิ้งอย่างค่อยเป็นค่อยไป เครื่องมือนี้มีแนวโน้มที่จะดึงดูดวิศวกรที่เพิ่งเริ่มอาชีพซึ่งถูกดึงดูดด้วยวิสัยทัศน์ในอุดมคติของการทดสอบแบบประชาธิปไตย แต่ผู้เชี่ยวชาญที่มีประสบการณ์มักมองว่าเป็นชั้นนามธรรมที่ไม่จำเป็น

ปัญหาไม่ได้อยู่ที่ผู้เชี่ยวชาญในสาขาหรือคนทางธุรกิจไม่สนใจตรวจสอบการทดสอบเหล่านี้ ปัญหาคือภาษา cucumber นั้นไม่เหมาะสมอย่างมากสำหรับการเขียนสิ่งใดๆ ที่เกินกว่าข้อกำหนดพื้นฐานมาก

องค์กรบางแห่งในภาคส่วนที่มีงบประมาณการทดสอบมาก โดยเฉพาะในภาคส่วนสาธารณะ พบความสำเร็จอย่างจำกัดกับ Cucumber เมื่อนักวิเคราะห์ธุรกิจมีส่วนร่วมอย่างแข็งขันในการเขียนข้อกำหนดการทดสอบ อย่างไรก็ตาม เรื่องราวความสำเร็จเหล่านี้ยังคงเป็นข้อยกเว้นมากกว่าเป็นกฎ

รูปแบบการใช้งาน Cucumber ที่พบบ่อย

  • ดึงดูดผู้เริ่มต้นอาชีพ: เครื่องมือนี้ดึงดูดนักพัฒนาที่เพิ่งเริ่มต้นอาชีพและมีอุดมคติเกี่ยวกับ testing frameworks
  • กรณีความสำเร็จที่จำกัด: องค์กรภาครัฐบางแห่งที่มี business analysts เฉพาะทาง
  • ขั้นตอนการทำงานทั่วไป: นักพัฒนาต้องเขียนทั้งโค้ดสำหรับ specifications และ implementation
  • แนวทางทางเลือก: ทีมงานมักจะเลิกใช้ Cucumber และหันไปใช้ unit tests และ specs แบบดั้งเดิม
  • ความซับซ้อนของ Regex: ต้องใช้ matchers ที่ใช้ครั้งเดียวสำหรับ test scenarios ส่วนใหญ่

บริบทที่กว้างขึ้นของโซลูชัน No-Code

ความยากลำบากของ Cucumber สะท้อนถึงความท้าทายที่กว้างขึ้นที่เผชิญหน้ากับโซลูชัน no-code และ low-code ในการพัฒนาซอฟต์แวร์ เครื่องมือเหล่านี้มักสัญญาว่าจะขจัดความซับซ้อนของการเขียนโปรแกรมแบบดั้งเดิม แต่มักจะล้มเหลวในการคำนึงถึงความซับซ้อนที่จำเป็นซึ่งมีอยู่โดยธรรมชาติในระบบซอฟต์แวร์ โครงสร้างไวยากรณ์และความหมายที่เครื่องมือเหล่านี้พยายามทำให้เป็นนามธรรม มีจุดประสงค์สำคัญในการสร้างซอฟต์แวร์ที่แข็งแกร่งและบำรุงรักษาได้

ความยากลำบากของเฟรมเวิร์กการทดสอบเน้นย้ำถึงความตึงเครียดพื้นฐานในการพัฒนาซอฟต์แวร์: ความปรารถนาที่จะทำให้กระบวนการทางเทคนิคเข้าถึงได้สำหรับผู้มีส่วนได้ส่วนเสียที่ไม่มีความรู้ทางเทคนิค เทียบกับความเป็นจริงที่ว่าการพัฒนาซอฟต์แวร์ที่มีประสิทธิภาพต้องการความเข้าใจในระบบและความสัมพันธ์ที่ซับซ้อน

บทสรุป

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

อ้างอิง: Cucumber lets you write automated tests in plain language