- วิธีที่ง่ายที่สุดในการทำ UI test ของแอปมือถือให้เป็นอัตโนมัติ
- มีความทนทานต่อความไม่เสถียรขององค์ประกอบ UI โดยธรรมชาติ
- องค์ประกอบ UI ไม่ได้อยู่ในตำแหน่งที่คาดไว้เสมอไป ดังนั้นการแตะหน้าจอจึงไม่ได้ทำงานเสมอ
- ออกแบบมาเพื่อรองรับและรับมือกับความไม่เสถียรของแอปมือถือและอุปกรณ์
- มีความทนทานต่อ delay โดยธรรมชาติ
- ไม่จำเป็นต้องใส่การเรียก
sleep() ในการทดสอบ
- เข้าใจว่าการโหลดคอนเทนต์ (เช่น ผ่านเครือข่าย) อาจใช้เวลา และจะรอให้อัตโนมัติ แต่จะไม่รอนานเกินความจำเป็น
- ทำงานแบบวนซ้ำได้รวดเร็วมาก
- การทดสอบถูกตีความและรันได้เลย จึงไม่ต้องคอมไพล์
- สามารถเฝ้าดูไฟล์ทดสอบอย่างต่อเนื่องและรันใหม่เมื่อมีการเปลี่ยนแปลง
- มีไวยากรณ์แบบประกาศที่ทรงพลัง
- ตั้งค่าได้ง่าย
- เป็นไบนารีไฟล์เดียวที่ทำงานได้ทุกที่
ความเห็นของ GN⁺
- Maestro เป็นเครื่องมือใหม่สำหรับการทำระบบอัตโนมัติในการทดสอบแอปมือถือ และมีเป้าหมายเพื่อก้าวข้ามข้อจำกัดของ Appium, Espresso, UIAutomator, XCTest และเครื่องมือเดิมอื่น ๆ โดยเฉพาะอย่างยิ่ง มันมีความทนทานต่อความไม่เสถียรขององค์ประกอบ UI และต่อความล่าช้าโดยธรรมชาติ จึงน่าจะช่วยลดปัญหาที่มักเกิดขึ้นเมื่อใช้เครื่องมือเดิมได้
- เนื่องจากใช้ไวยากรณ์เชิงประกาศบนพื้นฐาน YAML แม้แต่วิศวกร QA ที่ไม่ใช่นักพัฒนาก็น่าจะเขียน test case ได้ง่าย อย่างไรก็ตาม หากไม่คุ้นเคยกับไวยากรณ์ YAML ก็อาจมีต้นทุนในการเรียนรู้
- Appium เป็นเครื่องมือทดสอบอัตโนมัติสำหรับแอปมือถือที่มีการใช้งานอย่างแพร่หลาย จุดเด่นคือรองรับหลายแพลตฟอร์มมือถือและหลายภาษาโปรแกรม แต่ก็มีข้อเสียคือปัญหาด้านเสถียรภาพที่ทำให้อัตราการล้มเหลวของการทดสอบสูง จึงต้องติดตามว่า Maestro จะแก้ปัญหาเหล่านี้ของ Appium ได้มากเพียงใด
- ปัจจุบัน Maestro มีเอกสารที่ดีและมีชุมชน Slack ให้ใช้งานด้วย จึงเป็นตัวเลือกที่น่าพิจารณาสำหรับการนำมาใช้ อย่างไรก็ตาม เนื่องจากยังเป็นเวอร์ชันเริ่มต้น จึงควรตรวจสอบและทดสอบให้เพียงพอก่อนนำไปใช้ในสภาพแวดล้อมโปรดักชัน
4 ความคิดเห็น
ลองทำดูแล้วก็โอเคนะ ทำได้ค่อนข้างเร็วเลย (ตั้งแต่เซ็ตอัปไปจนถึงทำไฟล์ yaml สำหรับเทสต์แรก ใช้เวลาประมาณไม่เกิน 1 ชั่วโมง)
maestroเรียบง่ายและมีข้อดีหลายอย่างครับ/ค่ะ แต่ตอนนี้บน Android ยังมีปัญหาเรื่องการป้อนภาษาเกาหลีอยู่ครับ/ค่ะ https://github.com/mobile-dev-inc/maestro/issues/146อีกจุดที่น่าเสียดายคือเมื่อเทียบกับเครื่องมือทดสอบอื่น ๆ แล้ว มันไม่ได้รันได้เร็วเป็นพิเศษ โดยปกติแล้วเครื่องมือทดสอบมักจะทำงานเร็วมาก ต่างจากผู้ใช้จริง จนถ้าไม่ออกแบบ
waitให้ละเอียดพอก็มักมีปัญหาที่เทสต์ล้มเหลวแบบ flaky แต่maestroช้าจนทำให้รู้สึกเหมือนเลือกแก้ปัญหาด้วยการรอแบบช้า ๆ ไปเลย ^^;;;ในอีกด้านหนึ่ง แนวทางที่ใช้ 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 ตามที่คาดไว้หรือไม่ ซึ่งค่อนข้างยุ่งยากครับ
ขอบคุณสำหรับคอมเมนต์ที่เปี่ยมไปด้วยข้อมูลเชิงลึก