ทดสอบหน้าจอและหน้าต่างขนาดต่างๆ

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

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

สิ่งที่จะทดสอบ

เมื่อพัฒนา UI สำหรับหน้าจอและหน้าต่างขนาดต่างๆ กัน จ่ายพิเศษ ความสนใจใน 2 ด้าน ได้แก่

  1. ลักษณะทางภาพของคอมโพเนนต์และเลย์เอาต์แตกต่างกันอย่างไร ในหน้าต่างขนาดต่างๆ
  2. วิธีเก็บรักษาสถานะในการเปลี่ยนแปลงการกำหนดค่า

แอตทริบิวต์ภาพ

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

วันที่
รูปที่ 1 ปุ่ม "สำหรับคุณ" หน้าจอของ Now In Android ในหน้าต่างขนาดต่างๆ

และแอปอาจไม่แสดงผลคอมโพเนนต์บางอย่างในระบบการออกแบบเป็น ควรคาดการณ์ไว้เมื่อมีการขยายข้อจำกัดด้านขนาด

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

การฟื้นฟูรัฐ

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

วันที่
รูปที่ 2 อุปกรณ์แบบพับได้แบบพับได้ กางออกราบเรียบ หมุนออกแนวราบเป็นแนวนอน และเปิดครึ่งหนึ่ง (บนโต๊ะ)

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

การทดสอบการเปลี่ยนแปลงการกำหนดค่าทำได้หลายวิธี แต่ในกรณีส่วนใหญ่จะมี มีวิธีการทดสอบ 2 วิธีดังนี้

  • ในการเขียน ให้ใช้ StateRestorationTester เพื่อจำลองการกำหนดค่า การเปลี่ยนแปลงอย่างมีประสิทธิภาพ โดยไม่ต้องรีสตาร์ทกิจกรรม โปรดดูข้อมูลต่อไปนี้ สำหรับข้อมูลเพิ่มเติม
  • ในการทดสอบ UI เช่น Espresso หรือ Compose ให้จำลองการเปลี่ยนแปลงการกำหนดค่าโดย กำลังโทรหา Activity.recreate()

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

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

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

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

ประเภทการทดสอบสำหรับหน้าจอและหน้าต่างขนาดต่างๆ

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

  • การทดสอบลักษณะการทำงานของ UI จะเปิดบางส่วนของ UI ของแอป เช่น หน้าจอแสดงผล ของกิจกรรม การทดสอบจะยืนยันว่าองค์ประกอบบางอย่างมีอยู่หรือ การทดสอบอาจดำเนินการจำลองการดำเนินการของผู้ใช้ (ไม่บังคับ) สำหรับ ให้ใช้ Espresso Jetpack Compose มีแอปของตัวเอง testing API ได้ การทดสอบลักษณะการทำงานของ UI จะใช้แบบมีการวัดหรือเป็นแบบในเครื่องก็ได้ การทดสอบที่มีเครื่องดนตรีจะทำงานบนอุปกรณ์หรือโปรแกรมจำลอง ขณะที่การทดสอบ UI ในเครื่องจะทำงานบน Robolectric ใน JVM

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

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

สุดท้าย คุณอาจต้องใช้การทดสอบ 1 หน่วย เพื่อทดสอบการทำงานของหน่วยของ ตรรกะที่ทํางานแตกต่างกันไปตามประเภทอุปกรณ์หรือขนาดหน้าต่าง แต่การทดสอบ 1 หน่วยจะไม่ค่อยพบในพื้นที่นี้

ขั้นตอนถัดไป

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