การทดสอบ UI อัตโนมัติ

การทดสอบการโต้ตอบของผู้ใช้ช่วยให้มั่นใจได้ว่าผู้ใช้จะไม่พบผลลัพธ์ที่ไม่คาดคิดหรือได้รับประสบการณ์การใช้งานที่แย่เมื่อโต้ตอบกับแอปของคุณ คุณควรสร้างนิสัยในการทดสอบอินเทอร์เฟซผู้ใช้ (UI) หากต้องการยืนยันว่า UI ของแอปทํางานได้อย่างถูกต้อง

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

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

เรียกใช้การทดสอบ UI

  • หากต้องการเรียกใช้การทดสอบ UI ที่มีเครื่องมือวัดโดยใช้ Android Studio ให้ใช้โค้ดทดสอบในโฟลเดอร์ทดสอบ Android แยกต่างหาก - src/androidTest/java ปลั๊กอิน Gradle ของ Android จะสร้างแอปทดสอบตามโค้ดทดสอบ จากนั้นจะโหลดแอปทดสอบในอุปกรณ์เดียวกับแอปเป้าหมาย ในโค้ดทดสอบ คุณสามารถใช้เฟรมเวิร์กการทดสอบ UI เพื่อจำลองการโต้ตอบของผู้ใช้ในแอปเป้าหมาย เพื่อทำการทดสอบที่ครอบคลุมสถานการณ์การใช้งานที่เฉพาะเจาะจง
  • นอกจากนี้ คุณยังใช้ Robolectric เพื่อเรียกใช้การทดสอบ UI ใน JVM ได้ด้วย

สถาปัตยกรรมและการตั้งค่าการทดสอบ

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

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

วิธีการที่แนะนำในการแทนที่ Dependency คือ "การแทรก Dependency" คุณสร้างระบบของคุณเองได้ด้วยตนเอง แต่เราขอแนะนำให้ใช้เฟรมเวิร์ก DI เช่น Hilt

เหตุผลที่ควรทดสอบ UI โดยอัตโนมัติ

แอป Android สามารถกำหนดเป้าหมายไปยังอุปกรณ์ต่างๆ หลายพันเครื่องใน API ระดับต่างๆ และรูปแบบต่างๆ และการปรับแต่งระดับสูงที่ระบบปฏิบัติการมอบให้แก่ผู้ใช้อาจทำให้แอปแสดงผลอย่างไม่ถูกต้องหรืออาจขัดข้องในอุปกรณ์บางเครื่อง

การทดสอบ UI ช่วยให้คุณทำการทดสอบความเข้ากันได้ ซึ่งจะยืนยันลักษณะการทํางานของแอปในบริบทต่างๆ คุณอาจต้องทำการทดสอบ UI ในอุปกรณ์ที่หลากหลายในลักษณะต่อไปนี้

  • ระดับ API: 21, 25 และ 30
  • ภาษา: อังกฤษ อาหรับ และจีน
  • การวางแนว: แนวตั้ง แนวนอน

นอกจากนี้ แอปควรตรวจสอบลักษณะการทํางานนอกเหนือจากโทรศัพท์ คุณควรทดสอบบนแท็บเล็ต อุปกรณ์แบบพับ และอุปกรณ์อื่นๆ อ่านเพิ่มเติมเกี่ยวกับการทดสอบหน้าจอขนาดต่างๆ

ประเภทการทดสอบ UI

ส่วนนี้จะกล่าวถึงการทดสอบ UI 2 ประเภท ได้แก่