คู่มือการทดสอบ Android 6.0

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

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

การทดสอบสิทธิ์

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

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

เคล็ดลับการทดสอบ

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

  • ระบุสิทธิ์ปัจจุบันของแอปและเส้นทางโค้ดที่เกี่ยวข้อง
  • ทดสอบโฟลว์ของผู้ใช้ในบริการและข้อมูลที่ได้รับการคุ้มครองสิทธิ์
  • ทดสอบด้วยชุดค่าผสมต่างๆ ของสิทธิ์ที่อนุญาต/เพิกถอน
  • ใช้เครื่องมือ adb เพื่อจัดการสิทธิ์จากบรรทัดคำสั่ง โดยทำดังนี้
    • แสดงรายการสิทธิ์และสถานะตามกลุ่ม:
      adb shell pm list permissions -d -g
    • ให้หรือเพิกถอนสิทธิ์อย่างน้อย 1 รายการโดยใช้ไวยากรณ์ต่อไปนี้
      adb shell pm [grant|revoke] <permission.name> ...
  • วิเคราะห์แอปเพื่อหาบริการที่ใช้สิทธิ์

กลยุทธ์การทดสอบ

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

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับลักษณะการทํางานของสิทธิ์รันไทม์ การทดสอบ และแนวทางปฏิบัติแนะนําได้ที่การทํางานกับสิทธิ์ของระบบสําหรับนักพัฒนาแอป

การทดสอบโหมด Doze และสแตนด์บายแอป

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

การทดสอบแอปด้วยโหมด Doze

วิธีทดสอบโหมดสลีปกับแอป

  1. กำหนดค่าอุปกรณ์ฮาร์ดแวร์หรืออุปกรณ์เสมือนด้วยภาพระบบ Android 7.0 (API ระดับ 24)
  2. เชื่อมต่ออุปกรณ์กับเครื่องสำหรับพัฒนาซอฟต์แวร์และติดตั้งแอป
  3. เรียกใช้แอปและปล่อยให้แอปทำงาน
  4. จำลองอุปกรณ์ที่เข้าสู่โหมดสลีปโดยเรียกใช้คำสั่งต่อไปนี้
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
  5. สังเกตลักษณะการทำงานของแอปเมื่ออุปกรณ์เปิดใช้งานอีกครั้ง ตรวจสอบว่าระบบกู้คืนได้อย่างราบรื่นเมื่ออุปกรณ์ออกจากโหมดสลีป

การทดสอบแอปโดยใช้สแตนด์บายแอป

วิธีทดสอบโหมดแอปรอดำเนินการกับแอป

  1. กำหนดค่าอุปกรณ์ฮาร์ดแวร์หรืออุปกรณ์เสมือนด้วยอิมเมจระบบ Android 7.0 (API ระดับ 24)
  2. เชื่อมต่ออุปกรณ์กับเครื่องสำหรับพัฒนาซอฟต์แวร์และติดตั้งแอป
  3. เรียกใช้แอปและเปิดไว้
  4. จำลองแอปที่เข้าสู่โหมดสแตนด์บายโดยเรียกใช้คำสั่งต่อไปนี้
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
  5. จำลองการปลุกแอปโดยใช้คำสั่งต่อไปนี้
    $ adb shell am set-idle <packageName> false
  6. สังเกตลักษณะการทํางานของแอปเมื่อระบบปลุกแอป ตรวจสอบว่าอุปกรณ์กลับมาทำงานได้ตามปกติจากโหมดสแตนด์บาย โดยเฉพาะอย่างยิ่ง คุณควรตรวจสอบว่าการแจ้งเตือนและงานในเบื้องหลังของแอปยังคงทำงานตามที่คาดไว้หรือไม่

การสำรองข้อมูลอัตโนมัติสำหรับแอปและตัวระบุเฉพาะอุปกรณ์

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