19 คะแนน โดย GN⁺ 2024-04-09 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • วิธีที่ง่ายที่สุดในการทำ UI test ของแอปมือถือให้เป็นอัตโนมัติ
  • มีความทนทานต่อความไม่เสถียรขององค์ประกอบ UI โดยธรรมชาติ
    • องค์ประกอบ UI ไม่ได้อยู่ในตำแหน่งที่คาดไว้เสมอไป ดังนั้นการแตะหน้าจอจึงไม่ได้ทำงานเสมอ
    • ออกแบบมาเพื่อรองรับและรับมือกับความไม่เสถียรของแอปมือถือและอุปกรณ์
  • มีความทนทานต่อ delay โดยธรรมชาติ
    • ไม่จำเป็นต้องใส่การเรียก sleep() ในการทดสอบ
    • เข้าใจว่าการโหลดคอนเทนต์ (เช่น ผ่านเครือข่าย) อาจใช้เวลา และจะรอให้อัตโนมัติ แต่จะไม่รอนานเกินความจำเป็น
  • ทำงานแบบวนซ้ำได้รวดเร็วมาก
    • การทดสอบถูกตีความและรันได้เลย จึงไม่ต้องคอมไพล์
    • สามารถเฝ้าดูไฟล์ทดสอบอย่างต่อเนื่องและรันใหม่เมื่อมีการเปลี่ยนแปลง
  • มีไวยากรณ์แบบประกาศที่ทรงพลัง
    • กำหนดการทดสอบในไฟล์ yaml
  • ตั้งค่าได้ง่าย
    • เป็นไบนารีไฟล์เดียวที่ทำงานได้ทุกที่

ความเห็นของ GN⁺

  • Maestro เป็นเครื่องมือใหม่สำหรับการทำระบบอัตโนมัติในการทดสอบแอปมือถือ และมีเป้าหมายเพื่อก้าวข้ามข้อจำกัดของ Appium, Espresso, UIAutomator, XCTest และเครื่องมือเดิมอื่น ๆ โดยเฉพาะอย่างยิ่ง มันมีความทนทานต่อความไม่เสถียรขององค์ประกอบ UI และต่อความล่าช้าโดยธรรมชาติ จึงน่าจะช่วยลดปัญหาที่มักเกิดขึ้นเมื่อใช้เครื่องมือเดิมได้
  • เนื่องจากใช้ไวยากรณ์เชิงประกาศบนพื้นฐาน YAML แม้แต่วิศวกร QA ที่ไม่ใช่นักพัฒนาก็น่าจะเขียน test case ได้ง่าย อย่างไรก็ตาม หากไม่คุ้นเคยกับไวยากรณ์ YAML ก็อาจมีต้นทุนในการเรียนรู้
  • Appium เป็นเครื่องมือทดสอบอัตโนมัติสำหรับแอปมือถือที่มีการใช้งานอย่างแพร่หลาย จุดเด่นคือรองรับหลายแพลตฟอร์มมือถือและหลายภาษาโปรแกรม แต่ก็มีข้อเสียคือปัญหาด้านเสถียรภาพที่ทำให้อัตราการล้มเหลวของการทดสอบสูง จึงต้องติดตามว่า Maestro จะแก้ปัญหาเหล่านี้ของ Appium ได้มากเพียงใด
  • ปัจจุบัน Maestro มีเอกสารที่ดีและมีชุมชน Slack ให้ใช้งานด้วย จึงเป็นตัวเลือกที่น่าพิจารณาสำหรับการนำมาใช้ อย่างไรก็ตาม เนื่องจากยังเป็นเวอร์ชันเริ่มต้น จึงควรตรวจสอบและทดสอบให้เพียงพอก่อนนำไปใช้ในสภาพแวดล้อมโปรดักชัน

4 ความคิดเห็น

 
laeyoung 2024-04-12

ลองทำดูแล้วก็โอเคนะ ทำได้ค่อนข้างเร็วเลย (ตั้งแต่เซ็ตอัปไปจนถึงทำไฟล์ yaml สำหรับเทสต์แรก ใช้เวลาประมาณไม่เกิน 1 ชั่วโมง)

 
rabolution 2024-04-09

maestro เรียบง่ายและมีข้อดีหลายอย่างครับ/ค่ะ แต่ตอนนี้บน Android ยังมีปัญหาเรื่องการป้อนภาษาเกาหลีอยู่ครับ/ค่ะ https://github.com/mobile-dev-inc/maestro/issues/146

อีกจุดที่น่าเสียดายคือเมื่อเทียบกับเครื่องมือทดสอบอื่น ๆ แล้ว มันไม่ได้รันได้เร็วเป็นพิเศษ โดยปกติแล้วเครื่องมือทดสอบมักจะทำงานเร็วมาก ต่างจากผู้ใช้จริง จนถ้าไม่ออกแบบ wait ให้ละเอียดพอก็มักมีปัญหาที่เทสต์ล้มเหลวแบบ flaky แต่ maestro ช้าจนทำให้รู้สึกเหมือนเลือกแก้ปัญหาด้วยการรอแบบช้า ๆ ไปเลย ^^;;;

 
rabolution 2024-04-09

ในอีกด้านหนึ่ง แนวทางที่ใช้ element ด้าน accessibility กำลังได้รับความนิยมใน web frontend testing และบนมือถือก็เช่นกัน (อ้างอิง: https://blog.banksalad.com/tech/test-in-banksalad-ios-2/)

Maestro เน้น text และ id เป็นหลัก เลยทำให้แยก role อย่าง link, button และ heading ของ "รายการสินค้า" ได้ค่อนข้างยากครับ และในฝั่ง web ก็ยังน่าเสียดายที่ส่วนที่ตรวจสอบได้ด้วย aria-checked, aria-expanded เป็นต้น แบบนั้นไม่มี

สำหรับผม เพื่อป้องกัน id ชนกัน จึงต้องใส่ prefix ให้กับ test-id และสุดท้ายก็ยังต้องทดสอบซ้ำอีกว่าที่ดึง element มาแบบนี้ render text ตามที่คาดไว้หรือไม่ ซึ่งค่อนข้างยุ่งยากครับ

 
smboy86 2024-04-09

ขอบคุณสำหรับคอมเมนต์ที่เปี่ยมไปด้วยข้อมูลเชิงลึก