วิธีที่มีประโยชน์ในการประเมินความเป็นเลิศของแอปคือการเดิน ผ่านเวิร์กโฟลว์ในแอป และประเมินความราบรื่นและความปลอดภัย ประสบการณ์การใช้งานแอป
รายการตรวจสอบนี้จะระบุชุดเกณฑ์ด้านคุณภาพหลักและการทดสอบที่เกี่ยวข้องเพื่อช่วยคุณประเมิน คุณภาพแอปของคุณ เกณฑ์เหล่านี้บางข้ออาจผิดพลาดได้ง่าย และการทดสอบช่วยให้คุณจำได้ เพื่อรวมไว้ในแผนทดสอบ
รายการตรวจสอบจะไฮไลต์คุณภาพขั้นต่ำที่แอปทั้งหมดควรมีคุณสมบัติตรงตามหลักเกณฑ์ การทดสอบของคุณมีแนวโน้ม ทำได้มากกว่าที่อธิบายไว้ที่นี่
แต่ละรายการในรายการตรวจสอบคุณภาพจะมีรหัสที่ไม่ซ้ำกัน ซึ่งอาจเป็นประโยชน์ในการใช้เมื่อคุณ สื่อสารกับทีมของคุณ คุณยังสามารถดู ของหลักเกณฑ์เหล่านี้
ประสบการณ์การรับชม
แอปของคุณควรมีดีไซน์มาตรฐานของ Android และรูปแบบการโต้ตอบตามความเหมาะสม เพื่อให้มีความสม่ำเสมอและเข้าใจง่าย ประสบการณ์ของผู้ใช้
พื้นที่ | รหัส | การทดสอบ | คำอธิบาย |
---|---|---|---|
การไปยังรายการต่างๆ | VX-N1 | CR-3 | แอปรองรับการนำทางด้วยปุ่มย้อนกลับแบบมาตรฐานและไม่ได้ใช้ประโยชน์จาก "ปุ่มย้อนกลับ" ที่กำหนดเองใดๆ บนหน้าจอ |
VX-N2 | CR-3 | แอปรองรับการนำทางด้วยท่าทางสัมผัสสำหรับการย้อนกลับ / ไปที่หน้าจอหลัก | |
VX-N3 | CR-1 CR-3 CR-5 |
แอปจะเก็บรักษาและคืนค่าสถานะผู้ใช้หรือแอปอย่างถูกต้อง แอปจะเก็บสถานะผู้ใช้หรือแอปไว้เมื่อออกจากเบื้องหน้า และป้องกันข้อมูลสูญหายโดยไม่ตั้งใจเนื่องจากการนําทางย้อนกลับและการเปลี่ยนแปลงสถานะอื่นๆ เมื่อกลับไปที่เบื้องหน้า แอปควรคืนค่าสถานะที่สงวนไว้และธุรกรรมที่เก็บสถานะที่สำคัญทั้งหมดซึ่งรอดำเนินการอยู่ ตัวอย่างเช่น การเปลี่ยนแปลงช่องที่แก้ไขได้ ความคืบหน้าของเกม เมนู วิดีโอ และส่วนอื่นๆ ของแอปหรือเกม
|
|
การแจ้งเตือน | VX-S1 | CR-9 | การแจ้งเตือนจะเป็นไปตามหลักเกณฑ์การออกแบบ โดยเฉพาะอย่างยิ่ง:
|
VX-S2 | CR-9 | สำหรับแอปรับส่งข้อความ แอปโซเชียล และการสนทนา ให้ทำดังนี้
| |
UI และกราฟิก | VX-U1 | CR-5 | แอปรองรับการวางแนวตั้งและแนวนอน ตลอดจนอุปกรณ์ที่พับและกางออก รัฐ โดยพื้นฐานแล้ว การวางแนวและสถานะการพับจะแสดงคุณลักษณะและการทำงานที่เหมือนกัน และช่วยรักษาไว้ ความเท่าเทียมกันของฟังก์ชันการทำงาน |
VX-U2 | CR-5 | แอปแสดงเต็มหน้าต่างแอปทั้ง 2 ด้านและไม่มีแถบดำด้านบน-ล่างของภาพเนื่องจาก การเปลี่ยนแปลงการกำหนดค่า ซึ่งรวมถึงการพับและกางออกของอุปกรณ์ สามารถใช้แถบดำด้านบน-ล่างของภาพเพื่อชดเชยเรขาคณิตบนหน้าจอเล็กๆ น้อยๆ ได้ |
|
VX-U3 | CR-5 | แอปจัดการการเปลี่ยนอย่างรวดเร็วระหว่างการวางแนวจอแสดงผลและการพับอุปกรณ์ได้อย่างถูกต้อง สามารถกางออกได้โดยไม่มีปัญหาการแสดงภาพ และไม่สูญเสียสถานะ | |
คุณภาพของภาพ | VX-V1 | CR ทั้งหมด | แอปแสดงกราฟิก ข้อความ รูปภาพ และองค์ประกอบ UI อื่นๆ โดยไม่ทำให้บิดเบี้ยว เบลอ หรือแตกเป็นพิกเซลอย่างชัดเจน
|
VX-V2 | CR ทั้งหมด | แอปจะแสดงบล็อคข้อความและข้อความในลักษณะที่เป็นที่ยอมรับได้สำหรับภาษาที่สนับสนุนของแอปแต่ละภาษา
|
|
VX-V3 | CR ทั้งหมด | เนื้อหาของแอปและเนื้อหาเว็บทั้งหมดที่แอปอ้างถึงจะรองรับธีมมืด | |
การช่วยเหลือพิเศษ | VX-A1 | CR ทั้งหมด | เป้าหมายการสัมผัสควรมีขนาดอย่างน้อย 48dp ดูข้อมูลเพิ่มเติม |
VX-A2 | CR ทั้งหมด | ข้อความและเนื้อหาเบื้องหน้าของแอปควรมีอัตราส่วนคอนทราสต์ของสีสูงพอ เบื้องหลัง
ดูข้อมูลเพิ่มเติมเกี่ยวกับสีและคอนทราสต์ |
|
VX-A3 | CR ทั้งหมด | อธิบายองค์ประกอบ UI แต่ละรายการ
ยกเว้น TextView ซึ่งใช้ contentDescription |
ฟังก์ชันการทำงาน
แอปของคุณควรใช้ลักษณะการทำงานที่คาดหวัง
พื้นที่ | รหัส | การทดสอบ | คำอธิบาย |
---|---|---|---|
เสียง | FN-A1 | CR-1 CR-8 |
เสียงจะเล่นต่อเมื่อแอปกลับไปที่พื้นหน้า หรือแจ้งให้ผู้ใช้ทราบว่าการเล่นอยู่ในสถานะหยุดชั่วคราว |
FN-A2 | CR-1 CR-2 CR-8 |
หากการเล่นเสียงเป็นฟีเจอร์หลัก แอปก็ควรรองรับการเล่นขณะล็อกหน้าจอหรือขณะใช้แอปอื่น | |
FN-A3 | CR-0 | เมื่อผู้ใช้เริ่มเล่นเสียง แอปควรทำสิ่งใดสิ่งหนึ่งต่อไปนี้ภายใน 1 วินาที
|
|
FN-A4 | CR-0 | แอปควรขอโฟกัสเสียงเมื่อเสียงเริ่มเล่น และยกเลิกการโฟกัสเสียงเมื่อหยุดเล่น | |
FN-A5 | CR-0 | แอปควรจัดการคำขอการโฟกัสเสียงของแอปอื่นๆ เช่น แอปอาจลดระดับเสียงเมื่อแอปอื่นเล่นเสียง | |
สื่อ | FN-M1 | CR-0 CR-6 CR-8 |
หากแอปเล่นเสียงในเบื้องหลัง จะต้องสร้างการแจ้งเตือนสไตล์ด้วย MediaStyle |
FN-M2 | CR-0 | หากแอปเล่นวิดีโอ แอปควรรองรับการเล่นแบบการแสดงภาพซ้อนภาพ | |
FN-M3 | CR-0 | หากแอปเข้ารหัสวิดีโอ ควรดำเนินการโดยใช้มาตรฐานการบีบอัดวิดีโอ HEVC | |
การแชร์ | FN-S1 | CR-0 | แอปควรใช้ Sharesheet ของ Android เมื่อแชร์เนื้อหา ช่วยแนะนำเป้าหมายที่ใช้ไม่ได้กับโซลูชันที่กำหนดเอง |
บริการที่ทำงานอยู่เบื้องหลัง | FN-B1 | CR-6 | แอปหลีกเลี่ยงการเรียกใช้บริการแบบยาวโดยไม่จำเป็นในเบื้องหลัง ระบบจะรวมข้อจำกัดเกี่ยวกับบริการในเบื้องหลังหลายอย่างไว้เพื่อให้อุปกรณ์ของผู้ใช้ทำงานได้อย่างราบรื่น กรณีต่อไปนี้ไม่ถือว่าเป็นการใช้บริการในเบื้องหลังอย่างถูกต้อง
|
ประสิทธิภาพและความเสถียร
แอปควรให้ประสิทธิภาพ ความเสถียร ความเข้ากันได้ และ การตอบสนองที่จำเป็นสำหรับผู้ใช้
พื้นที่ | รหัส | การทดสอบ | คำอธิบาย |
---|---|---|---|
ความเสถียร | PS-S1 | CR-all SD-1 |
แอปไม่ขัดข้อง หรือ บล็อกชุดข้อความ UI ที่ทำให้เกิด ANR (Android ไม่ใช่ การตอบกลับ") ใช้ Google รายงานก่อนการเปิดตัวของ Play เพื่อระบุปัญหาที่อาจเกิดขึ้นกับความเสถียร หลังจากทำให้ใช้งานได้แล้ว ให้ชำระเงิน ไปที่หน้า Android Vitals ในแดชบอร์ด Play Developer Console |
ประสิทธิภาพ | PS-P1 | CR-all SD-1 |
แอปโหลดได้เร็วหรือแสดงความคิดเห็นบนหน้าจอแก่ผู้ใช้ (สัญญาณบอกสถานะความคืบหน้าหรือสัญลักษณ์ที่คล้ายกัน) ในกรณีที่แอปใช้เวลาโหลดนานกว่า 2 วินาที |
PS-P2 | CR-all SD-1 |
แอปควรแสดงผลเฟรมทุกๆ 16 มิลลิวินาทีเพื่อให้ได้ 60 เฟรมต่อวินาที นักพัฒนาแอปสามารถใช้ตัวเลือกการแสดงผล HWUI ในโปรไฟล์ในการทดสอบ หากมีปัญหา คุณสามารถใช้เครื่องมือเพื่อช่วยวินิจฉัยการแสดงผลช้า | |
PS-P3 | PM-1 | เมื่อเปิดใช้ StrictMode (ดูการทดสอบ StrictMode ด้านล่าง) ระบบจะไม่แสดงแฟลชสีแดง (คำเตือนด้านประสิทธิภาพจาก StrictMode) เมื่อทดสอบแอป ไฟกะพริบสีแดงบ่งบอกถึงลักษณะการทำงานที่ไม่ถูกต้องเกี่ยวกับพื้นที่เก็บข้อมูล การเข้าถึงเครือข่าย หรือการรั่วไหลของหน่วยความจำ | |
SDK | PS-T1 | CR-0 | แอปทำงานบนแพลตฟอร์ม Android เวอร์ชันล่าสุดที่เผยแพร่ต่อสาธารณะโดยไม่เกิดข้อขัดข้องหรือส่งผลกระทบต่อฟังก์ชันหลักอย่างมาก |
PS-T2 | SP-1 | แอปกำหนดเป้าหมาย Android SDK ล่าสุดที่จำเป็นเพื่อให้สอดคล้องกับข้อกำหนดของ Google Play โดยการตั้งค่า targetSdk |
|
PS-T3 | SP-1 | แอปนี้สร้างด้วย Android SDK ล่าสุดโดยตั้งค่า compileSdk |
|
PS-T4 | SP-2 SP-3 |
SDK ของ Google หรือบุคคลที่สามที่ใช้เป็นเวอร์ชันล่าสุด การปรับปรุง SDK เหล่านี้ เช่น ความเสถียร ความเข้ากันได้ หรือการรักษาความปลอดภัยควรพร้อมใช้งานสำหรับผู้ใช้อย่างทันท่วงที
สำหรับ Google SDK ให้พิจารณาใช้ SDK ที่ขับเคลื่อนโดยบริการ Google Play เมื่อมีให้ใช้งาน SDK เหล่านี้รองรับการใช้งานแบบย้อนหลัง รับการอัปเดตอัตโนมัติ ลดขนาดแพ็กเกจแอป และใช้งานทรัพยากรในอุปกรณ์ได้อย่างมีประสิทธิภาพ นักพัฒนาแอปมีหน้าที่รับผิดชอบต่อฐานของโค้ดทั้งแอป รวมถึง SDK ของบุคคลที่สามที่ใช้ |
|
PS-T5 | SP-3 | แอปไม่ได้ใช้อินเทอร์เฟซที่ไม่ใช่ SDK | |
PS-T6 | SP-2 | ไม่มีไลบรารีการแก้ไขข้อบกพร่องรวมอยู่ในแอปเวอร์ชันที่ใช้งานจริง ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพและด้านความปลอดภัยด้วย | |
แบตเตอรี่ | PS-B1 | BA-1 | แอปรองรับฟีเจอร์การจัดการพลังงานที่เปิดตัวใน Android 6.0 (Doze และ App Standby) อย่างเหมาะสม ในกรณีที่ฟังก์ชันหลักหยุดชะงักเนื่องจากการจัดการพลังงาน จะมีเพียงแอปที่เข้าเกณฑ์เท่านั้นที่ขอการยกเว้นได้ ดูการสนับสนุนสำหรับกรณีการใช้งานอื่นๆ ใน Doze และสแตนด์บายแอป
ในระหว่างการพัฒนา นักพัฒนาแอปสามารถทดสอบลักษณะการทำงานของแอปสแตนด์บายและ Doze โดยใช้คำสั่ง ADB เหล่านี้ได้ ในแง่ของการใช้งานแบตเตอรี่ นักพัฒนาแอปสามารถใช้เครื่องมือสร้างโปรไฟล์พลังงานของ Android Studio หรือเครื่องมือประวัติศาสตร์แบตเตอรี่ร่วมกับการทำงานในเบื้องหลังที่วางแผนไว้เพื่อวินิจฉัยการใช้งานแบตเตอรี่ที่ไม่คาดคิด |
ความเป็นส่วนตัวและความปลอดภัย
แอปของคุณควรจัดการข้อมูลผู้ใช้และข้อมูลส่วนบุคคลอย่างปลอดภัย โดยให้สิทธิ์ในระดับที่เหมาะสม
นอกเหนือจากรายการตรวจสอบนี้ แอปพลิเคชันที่เผยแพร่บน Google Play พื้นที่เก็บต้องเป็นไปตามข้อมูลผู้ใช้ นโยบายเพื่อปกป้องผู้ใช้ ความเป็นส่วนตัว
พื้นที่ | รหัส | การทดสอบ | คำอธิบาย |
---|---|---|---|
สิทธิ์ | SC-P1 | SC-4 | แอปจะขอเฉพาะจำนวนสิทธิ์ขั้นต่ำสัมบูรณ์ที่จำเป็นต่อการรองรับกรณีการใช้งานของแอปในขณะนี้ สำหรับสิทธิ์บางอย่าง เช่น ตำแหน่ง ให้ใช้ตำแหน่งคร่าวๆ แทนตำแหน่งอย่างละเอียด หากเป็นไปได้ |
SC-P2 |
แอปขอสิทธิ์ในการเข้าถึงข้อมูลที่ละเอียดอ่อน (เช่น SMS, บันทึกการโทร หรือ สถานที่ตั้ง) หรือบริการที่มีค่าใช้จ่าย (เช่น โปรแกรมโทรศัพท์หรือ SMS) เฉพาะในกรณีที่เกี่ยวข้องโดยตรงกับบริการหลัก ใช้งานแอปต่างๆ ได้ คุณควรเปิดเผยผลกระทบที่เกี่ยวข้องกับสิทธิ์เหล่านี้ให้ผู้ใช้ทราบอย่างชัดเจน อาจมี ทางเลือกอื่น เพื่อดำเนินการตาม Use Case ของแอปโดยไม่ต้องพึ่งการเข้าถึงข้อมูลที่ละเอียดอ่อน ตัวอย่างเช่น แทนที่จะแสดง การขอสิทธิ์ที่เกี่ยวข้องกับรายชื่อติดต่อของผู้ใช้ การขอสิทธิ์เข้าถึงอาจเหมาะสมกว่า โดยการใช้เจตนาโดยนัย |
||
SC-P3 | CR-0 | แอปจะขอสิทธิ์รันไทม์ในบริบทเมื่อมีการขอฟังก์ชันการทำงาน แทนที่จะขอสิทธิ์ล่วงหน้าในระหว่างการเริ่มต้นแอป | |
SC-P4 | CR-0 | แอปอธิบายอย่างชัดเจนถึงเหตุผลที่ต้องใช้สิทธิ์บางอย่างหรือทำตามขั้นตอนที่แนะนำเพื่อ อธิบายเหตุผลที่ต้องการสิทธิ์ |
|
SC-P5 | CR-0 | แอปควรลดระดับอย่างมีชั้นเชิงเมื่อ ผู้ใช้ปฏิเสธหรือเพิกถอนสิทธิ์ แอปไม่ควรป้องกันไม่ให้ผู้ใช้เข้าถึงแอปโดยสิ้นเชิง | |
ข้อมูลและ ไฟล์ | SC-DF1 | SC-1 | ข้อมูลที่ละเอียดอ่อนทั้งหมดจะเก็บไว้ในที่จัดเก็บข้อมูลภายในของแอป |
SC-DF2 | SC-10 | จะไม่มีการบันทึกข้อมูลส่วนบุคคลหรือข้อมูลที่ละเอียดอ่อนของผู้ใช้ในบันทึกของระบบหรือบันทึกเฉพาะแอป | |
SC-DF3 | แอปไม่ได้ใช้รหัสฮาร์ดแวร์ที่รีเซ็ตไม่ได้ เช่น IMEI เพื่อวัตถุประสงค์ในการระบุตัวตน | ||
ข้อมูลระบุตัวตน | รหัส SC1 | CR-0 | แอปมีคำแนะนำในการป้อนข้อมูลเข้าสู่ระบบของบัญชีและข้อมูลที่ละเอียดอ่อนอื่นๆ โดยอัตโนมัติ เช่น ข้อมูลบัตรเครดิต ที่อยู่จริง และหมายเลขโทรศัพท์ |
รหัส SC2 | CR-0 | ผสานรวมเครื่องมือจัดการข้อมูลเข้าสู่ระบบสำหรับ Android สำหรับ ประสบการณ์การลงชื่อเข้าใช้ที่ราบรื่นซึ่งรวมการสนับสนุนพาสคีย์ ข้อมูลประจำตัวแบบรวมศูนย์ และ รหัสผ่านปกติทั่วไป | |
รหัส SC3 | CR-0 | แอปรองรับการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกเพื่อปกป้องธุรกรรมทางการเงินหรือข้อมูลที่ละเอียดอ่อน เช่น เอกสารที่สำคัญของผู้ใช้ | |
คอมโพเนนต์ของแอป | SC-AC1 | SC-5 |
แอปจะตั้งค่าแอตทริบิวต์ ระบบจะส่งออกเฉพาะคอมโพเนนต์แอปพลิเคชันที่แชร์ข้อมูลกับแอปอื่นๆ หรือคอมโพเนนต์ที่แอปอื่นๆ ควรเรียกใช้เท่านั้น |
SC-AC2 | CR-0 SC-4 |
ความตั้งใจและการออกอากาศทั้งหมดเป็นไปตามแนวทางปฏิบัติแนะนำ ดังนี้
|
|
SC-AC3 | SC-3 | คอมโพเนนต์ทั้งหมดที่แชร์เนื้อหาระหว่างแอปจะใช้ android:protectionLevel="signature" สำหรับสิทธิ์ที่กำหนดเอง ซึ่งรวมถึงกิจกรรม บริการ เครื่องรับสัญญาณประกาศ และโดยเฉพาะอย่างยิ่งผู้ให้บริการเนื้อหา
แอปไม่ควรพึ่งพาการเข้าถึงรายการแพ็กเกจที่ติดตั้งไว้ การเข้าถึงถูกจำกัดตั้งแต่ Android 11 เป็นต้นไป |
|
เครือข่าย | SC-N1 | SC-9 | การจราจรของข้อมูลในเครือข่ายทั้งหมดจะส่งผ่าน SSL |
SC-N2 | SC-6 | แอปพลิเคชันจะประกาศการกำหนดค่าความปลอดภัยของเครือข่าย | |
SC-N3 | หากแอปพลิเคชันใช้บริการ Google Play ผู้ให้บริการการรักษาความปลอดภัยจะเริ่มต้นเมื่อแอปพลิเคชันเริ่มต้น | ||
WebView | SC-W1 | SC-6 | ห้ามใช้ setAllowUniversalAccessFromFileURLs() เพื่อเข้าถึงเนื้อหาในเครื่อง แต่ให้ใช้ WebViewAssetLoader แทน |
SC-W2 | SC-7 | WebView ไม่ควรใช้ addJavaScriptInterface() กับเนื้อหาที่ไม่น่าเชื่อถือ
ใน Android 6.0 ขึ้นไป ให้ใช้แชแนลข้อความ HTML แทน |
|
การลงมือปฏิบัติ | SC-E1 | แอปไม่ได้โหลดโค้ดแบบไดนามิกจากภายนอก APK ของแอป นักพัฒนาแอปควรใช้ Android App Bundle ซึ่งรวมถึงการนำส่งฟีเจอร์ Play และการนำส่งเนื้อหา Play
ตั้งแต่เดือนสิงหาคม 2021 เป็นต้นไป แอปใหม่ทั้งหมดใน Google จะต้องใช้ Android App Bundle Play Store |
|
วิทยาการเข้ารหัสลับ | SC-C | แอปนี้ใช้อัลกอริทึมการเข้ารหัสที่มีประสิทธิภาพที่แพลตฟอร์มมีให้และโปรแกรมสร้างหมายเลขสุ่ม และแอปไม่ได้ติดตั้งใช้งานอัลกอริทึมที่กำหนดเองด้วย |
Google Play
ตรวจสอบว่าแอปของคุณเผยแพร่ใน Google Play ได้
พื้นที่ | รหัส | การทดสอบ | คำอธิบาย |
---|---|---|---|
นโยบาย | GP-P1 | GP ทั้งหมด | แอปปฏิบัติตามข้อกำหนดของนโยบายเนื้อหาสำหรับนักพัฒนาซอฟต์แวร์ Google Play อย่างเคร่งครัดและไม่นำเสนอเนื้อหาที่ไม่เหมาะสม ไม่ใช้ทรัพย์สินทางปัญญาหรือแบรนด์ของผู้อื่น และอื่นๆ |
GP-P2 | GP-1 | ระดับวุฒิภาวะของผู้ใช้แอปได้รับการตั้งค่าอย่างเหมาะสมตามหลักเกณฑ์การจัดประเภทเนื้อหา | |
หน้ารายละเอียดแอป | GP-D1 | GP-1 GP-2 |
กราฟิกเด่นของแอปเป็นไปตามหลักเกณฑ์ที่ระบุไว้ใน บทความสนับสนุน ตรวจสอบว่าเป็นไปตามนี้
|
GP-D2 | GP-1 | ภาพหน้าจอและวิดีโอของแอปจะไม่แสดงหรืออ้างอิงถึงอุปกรณ์ที่ไม่ใช่ Android | |
GP-D3 | GP-1 | ภาพหน้าจอหรือวิดีโอของแอปไม่ได้แสดงเนื้อหาและประสบการณ์ของแอปในลักษณะที่ทำให้เข้าใจผิด | |
การสนับสนุนผู้ใช้ | GP-X1 | GP-1 | ข้อบกพร่องทั่วไปที่ผู้ใช้รายงานในแท็บรีวิวของหน้า Google Play จะได้รับการแก้ไขหากทำให้เกิดซ้ำได้และเกิดขึ้นในอุปกรณ์ที่แตกต่างกันจำนวนมาก หากข้อบกพร่องเกิดขึ้นในอุปกรณ์เพียงไม่กี่เครื่อง คุณควรแก้ไขข้อบกพร่องดังกล่าวหากอุปกรณ์ดังกล่าวได้รับความนิยมหรืออุปกรณ์ใหม่เป็นพิเศษ |
การตั้งค่าสภาพแวดล้อมการทดสอบ
เราขอแนะนำสิ่งต่อไปนี้สำหรับการตั้งค่าสภาพแวดล้อมการทดสอบสำหรับรายการตรวจสอบนี้
- เน้นการทดสอบโปรแกรมจำลอง - Android Emulator เป็นวิธีที่ยอดเยี่ยมในการทดสอบแอปภายใต้เวอร์ชัน Android และความละเอียดหน้าจอต่างๆ คุณควรตั้งค่าอุปกรณ์จำลอง (AVD) เพื่อแสดงรูปแบบของอุปกรณ์และชุดฮาร์ดแวร์/ซอฟต์แวร์ที่พบบ่อยที่สุดสำหรับฐานผู้ใช้เป้าหมาย นอกจากการทดสอบโทรศัพท์แล้ว เราขอแนะนำให้คุณทดสอบอุปกรณ์รูปแบบอื่นๆ โดยใช้โปรแกรมจำลองต่อไปนี้เป็นอย่างน้อย
- อุปกรณ์แบบพับได้ - หน้าจอขนาด 7.6 นิ้วพร้อมจอแสดงผลด้านนอก (แสดงอยู่ใต้โทรศัพท์ใน AVD Manager)
- แท็บเล็ต - Pixel C ขนาด 9.94 นิ้ว (2,560 x 1,800 พิกเซล)
- สำหรับการทดสอบการแจ้งเตือนของแอปบนอุปกรณ์เคลื่อนที่ ให้จับคู่อุปกรณ์เคลื่อนที่ / โปรแกรมจำลองกับโปรแกรมจำลอง Wear OS รอบที่ 1.84 ของ Wear OS
- อุปกรณ์ฮาร์ดแวร์ - สภาพแวดล้อมการทดสอบของคุณควรมีอุปกรณ์ฮาร์ดแวร์จริงจำนวนน้อยที่แสดงถึงรูปแบบของอุปกรณ์ที่สำคัญ และชุดฮาร์ดแวร์/ซอฟต์แวร์ที่ผู้บริโภคสามารถใช้งานได้ในปัจจุบัน คุณไม่จำเป็นต้องทดสอบบนอุปกรณ์ทุกเครื่องที่มีอยู่ในตลาด แต่ควรมุ่งเน้นไปที่อุปกรณ์ตัวอย่างเพียงไม่กี่เครื่อง แม้จะใช้อุปกรณ์ 1 หรือ 2 เครื่องต่อรูปแบบของอุปกรณ์ก็ตาม
- ห้องทดลองการทดสอบอุปกรณ์ - คุณยังใช้บริการของบุคคลที่สาม เช่น Firebase Test Lab เพื่อทดสอบแอปในอุปกรณ์ที่หลากหลายได้ด้วย
- ทดสอบด้วย Android เวอร์ชันล่าสุด - นอกเหนือจากการทดสอบเวอร์ชัน Android ที่เป็นตัวแทนสำหรับฐานผู้ใช้เป้าหมายแล้ว คุณควรทดสอบกับ Android เวอร์ชันล่าสุดเสมอ (ปัจจุบันคือ Android 14) วิธีนี้ช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงลักษณะการทำงานล่าสุดจะไม่ส่งผลเสียต่อประสบการณ์ของผู้ใช้
ดูคำแนะนำที่ครอบคลุมยิ่งขึ้นเกี่ยวกับการทดสอบ ซึ่งรวมถึงการทดสอบหน่วย การทดสอบการผสานรวม และการทดสอบ UI โปรดดูพื้นฐานการทดสอบ Android
ขั้นตอนการทดสอบ
ขั้นตอนการทดสอบเหล่านี้จะช่วยให้คุณค้นพบปัญหาด้านคุณภาพประเภทต่างๆ ใน แอปของคุณ คุณสามารถรวมการทดสอบหรือผสานรวมกลุ่มการทดสอบเข้าด้วยกันใน แผนการทดสอบของคุณเอง ดูข้อมูลอ้างอิงที่เกี่ยวข้องในส่วนด้านบน ด้วยขั้นตอนการทดสอบเหล่านี้
ประเภท | ทดสอบ | คำอธิบาย |
---|---|---|
ชุดโปรแกรมหลัก | CR-0 | ไปยังทุกส่วนของแอป ไม่ว่าจะเป็นหน้าจอ กล่องโต้ตอบ การตั้งค่า และขั้นตอนการดำเนินการของผู้ใช้ทั้งหมด
|
CR-1 | จากหน้าจอแอปแต่ละหน้า กดปุ่มหน้าแรกของอุปกรณ์หรือปัดขึ้นในการนำทางด้วยท่าทางสัมผัส จากนั้นเปิดแอปอีกครั้งจากหน้าจอแอปทั้งหมด | |
CR-2 | จากหน้าจอแอปแต่ละหน้า ให้สลับไปยังแอปอื่นที่ทำงานอยู่ แล้วกลับไปยังแอปที่กำลังทดสอบโดยใช้ตัวสลับแอปล่าสุด | |
CR-3 | จากหน้าจอแอปแต่ละรายการ (และกล่องโต้ตอบ) ให้กดปุ่ม "กลับ" หรือใช้ท่าทางสัมผัสการปัดกลับ | |
CR-5 | จากหน้าจอแอปแต่ละหน้า ให้หมุนอุปกรณ์ไปมาระหว่างแนวนอนและแนวตั้ง รวมถึงสถานะพับและกางออกอย่างน้อย 3 ครั้ง | |
CR-6 | เปลี่ยนไปใช้แอปอื่นเพื่อส่งแอปทดสอบไปทำงานในเบื้องหลัง ไปที่การตั้งค่าและตรวจสอบว่าแอปทดสอบมีบริการทำงานอยู่ในเบื้องหลังหรือไม่ ใน Android 4.0 ขึ้นไป ให้ไปที่หน้าจอแอปและค้นหาแอปใน "กำลังทำงาน" | |
CR-7 | กดปุ่มเปิด/ปิดเพื่อทำให้อุปกรณ์เข้าสู่โหมดสลีป จากนั้นกดปุ่มเปิด/ปิดอีกครั้งเพื่อปลุกหน้าจอ | |
CR-8 | ตั้งค่าการล็อกหน้าจอในอุปกรณ์ กดปุ่มเปิด/ปิดเพื่อให้อุปกรณ์เข้าสู่โหมดสลีป (ซึ่งจะล็อกอุปกรณ์) จากนั้นกดปุ่มเปิด/ปิดอีกครั้งเพื่อปลุกหน้าจอและปลดล็อกอุปกรณ์ | |
CR-9 | เรียกใช้และสังเกตการแจ้งเตือนทุกประเภทที่แอปสามารถแสดงได้ในลิ้นชักการแจ้งเตือน ขยายการแจ้งเตือน (หากมี) (Android 4.1 และสูงกว่า) แล้วแตะการดำเนินการที่ใช้ได้ทั้งหมด | |
CR-10 | ดูการสนับสนุนสำหรับ Use Case อื่นๆ ใน Doze และสแตนด์บายแอป | |
ติดตั้งในการ์ด SD | SD-1 | ทำซ้ำ Core Suite กับแอปที่ติดตั้งในการ์ด SD ของอุปกรณ์ (หากแอปรองรับวิธีการติดตั้งนี้)
หากต้องการย้ายแอปไปยังการ์ด SD คุณสามารถใช้การตั้งค่า > ข้อมูลแอป > ย้ายไปยังการ์ด SD |
ประสิทธิภาพและความเสถียร | SP-1 | ตรวจสอบไฟล์ Manifest ของ Android และการกำหนดค่าบิลด์เพื่อให้แน่ใจว่าแอปพลิเคชันสร้างขึ้นโดยใช้ SDK ล่าสุดที่พร้อมใช้งาน (targetSdk และ compileSdk )
|
SP-2 | ตรวจสอบไฟล์ build.gradle เพื่อหาทรัพยากร Dependency ที่ล้าสมัย |
|
SP-3 | ใช้เครื่องมือ Lint ของ Android Studio เพื่อตรวจหาการใช้อินเทอร์เฟซที่ไม่ใช่ SDK วิธีการทดสอบแบบอื่นๆ ก็มีเช่นกัน | |
การตรวจสอบประสิทธิภาพ | PM 1 | ทําซ้ำ Core Suite ที่เปิดใช้การทำโปรไฟล์ StrictMode
ใส่ใจเป็นพิเศษกับการเก็บขยะและผลกระทบต่อประสบการณ์ของผู้ใช้ |
แบตเตอรี่ | BA-1 | ทำซ้ำ Core Suite ในรอบ Doze และสแตนด์บายแอป
ให้ความสำคัญกับการปลุก ตัวจับเวลา การแจ้งเตือน การซิงค์ และอื่นๆ โปรดดูข้อกำหนดและหลักเกณฑ์ได้ที่การทดสอบด้วย Doze และสแตนด์บายแอป |
ความปลอดภัย | SC-1 | ตรวจสอบข้อมูลทั้งหมดที่จัดเก็บไว้ในที่จัดเก็บข้อมูลภายนอก |
SC-2 | ตรวจสอบวิธีจัดการและประมวลผลข้อมูลที่โหลดจากที่จัดเก็บข้อมูลภายนอก | |
SC-3 | ตรวจสอบผู้ให้บริการเนื้อหาทั้งหมดที่กำหนดไว้ในไฟล์ Manifest ของ Android ตรวจสอบว่าผู้ให้บริการแต่ละรายมีprotectionLevel ที่เหมาะสม
|
|
SC-4 | ตรวจสอบสิทธิ์ทั้งหมดที่แอปต้องการในไฟล์ Manifest, ขณะรันไทม์ และในหน้าจอการตั้งค่าแอป (การตั้งค่า > ข้อมูลแอป) ในอุปกรณ์ | |
SC-5 | ตรวจสอบคอมโพเนนต์แอปพลิเคชันทั้งหมดที่กำหนดไว้ในไฟล์ Manifest ของ Android เพื่อดูสถานะการส่งออกที่เหมาะสม ต้องตั้งค่าคุณสมบัติที่ส่งออกอย่างชัดเจนสำหรับคอมโพเนนต์ทั้งหมด | |
SC-6 | ตรวจสอบการกำหนดค่าความปลอดภัยของเครือข่ายของแอป เพื่อให้แน่ใจว่าไม่มีการตรวจสอบ Lint ในการกำหนดค่าล้มเหลว | |
SC-7 | สำหรับ WebView แต่ละรายการ ให้ไปที่หน้าที่ต้องใช้ JavaScript | |
SC-8 | ใน WebView แต่ละรายการ ให้ลองไปที่เว็บไซต์และเนื้อหาที่แอปไม่ได้โหลดโดยตรง | |
SC-9 | ประกาศการกำหนดค่าความปลอดภัยของเครือข่ายที่ปิดใช้การรับส่งข้อมูลข้อความธรรมดา จากนั้นทดสอบแอป | |
SC-10 | เรียกใช้แอปพลิเคชันและใช้ฟังก์ชันหลักทั้งหมด พร้อมกับสังเกตบันทึกของอุปกรณ์ ไม่ควรบันทึกข้อมูลส่วนตัวของผู้ใช้ | |
Google Play | GP-1 | ลงชื่อเข้าใช้ Google Play Developer Console เพื่อตรวจสอบโปรไฟล์นักพัฒนาซอฟต์แวร์ คำอธิบายแอป ภาพหน้าจอ กราฟิกเด่น การให้คะแนนเนื้อหา และความคิดเห็นของผู้ใช้ |
GP-2 | ดาวน์โหลดกราฟิกเด่นและภาพหน้าจอ แล้วปรับขนาดลงเพื่อให้ตรงกับขนาดการแสดงผลในอุปกรณ์และรูปแบบของอุปกรณ์ที่คุณกำหนดเป้าหมาย | |
GP-3 | ตรวจสอบเนื้อหากราฟิก สื่อ ข้อความ ไลบรารีโค้ด และเนื้อหาอื่นๆ ทั้งหมดที่รวมอยู่ในแอปหรือการดาวน์โหลดไฟล์สำหรับขยาย |
การทดสอบด้วย StrictMode
สำหรับการทดสอบประสิทธิภาพ เราขอแนะนำให้เปิดใช้ StrictMode
ใน
เพื่อใช้ติดตามการดำเนินการที่อาจส่งผลต่อประสิทธิภาพ การเข้าถึงเครือข่าย และไฟล์
อ่าน/เขียน และอื่นๆ มองหาการดำเนินการที่อาจเป็นปัญหาทั้งในเทรดหลักและใน
ชุดข้อความอื่นๆ
คุณตั้งค่านโยบายการตรวจสอบแบบต่อชุดข้อความได้โดยใช้
StrictMode.ThreadPolicy.Builder
และเปิดใช้การตรวจสอบที่รองรับทั้งหมดใน
ThreadPolicy
กำลังใช้
detectAll()
อย่าลืมเปิดใช้การแจ้งเตือนด้วยภาพเกี่ยวกับการละเมิดนโยบายใน
ThreadPolicy
กำลังใช้
penaltyFlashScreen()