من الطرق المفيدة لتقييم جودة التطبيق أن تتتبّع مسارات العمل في تطبيقك وتقيّم سلاسة تجربة التطبيق وأمانها.
تحدّد قائمة التحقّق هذه مجموعة من معايير الجودة الأساسية والاختبارات المرتبطة بها لمساعدتك في تقييم جودة تطبيقك. وقد يكون من السهل إغفال بعض هذه المعايير، وتساعدك الاختبارات في تذكُّر تضمينها في خطط الاختبار.
توضّح قائمة التحقّق الحدّ الأدنى من الجودة الذي يجب أن تستوفيه جميع التطبيقات. من المرجّح أن يتجاوز اختبارك ما هو موصوف هنا.
يحتوي كل عنصر في قائمة التحقّق من الجودة على معرّف فريد قد يكون مفيدًا عند التواصل مع فريقك. يمكنك أيضًا الاطّلاع على الإصدار السابق من هذه الإرشادات.
التجربة البصرية
يجب أن يوفّر تطبيقك تصميمًا مرئيًا وأنماط تفاعل عادية في 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 | بالنسبة إلى تطبيقات المراسلة وتطبيقات التواصل الاجتماعي والمحادثات:
| |
| واجهة المستخدم والرسومات | VX-U1 | CR-5 | يتوافق التطبيق مع الوضعَين الأفقي والعمودي وحالات الجهاز المطوي وغير المطوي. تعرض الاتجاهات وحالات الطي الميزات والإجراءات نفسها بشكل أساسي وتحافظ على التكافؤ الوظيفي. |
| VX-U2 | CR-5 | يملأ التطبيق نافذة التطبيق في كلا الاتجاهين ولا تظهر فيه أشرطة سوداء أفقية بسبب التغييرات في الإعدادات، بما في ذلك طي الجهاز وفتحه. يُسمح بوضع إطار أسود صغير لتعويض الاختلافات الطفيفة في شكل الشاشة. |
|
| VX-U3 | CR-5 | يتعامل التطبيق بشكل صحيح مع التحوّلات السريعة بين اتجاهات العرض وطي الجهاز وفتحه بدون حدوث مشاكل في عرض الشاشة وبدون فقدان الحالة. | |
| جودة المرئيات | VX-V1 | CR-all | يعرض التطبيق الرسومات والنصوص والصور وعناصر واجهة المستخدم الأخرى بدون تشويه أو تمويه أو تشويش ملحوظ.
|
| VX-V2 | CR-all | يعرض التطبيق النص وكتل النص بطريقة مقبولة لكل لغة من اللغات التي يتيحها التطبيق.
|
|
| VX-V3 | CR-all | يتوافق محتوى التطبيق وجميع محتويات الويب التي يشير إليها التطبيق مع المظهر الداكن. | |
| تسهيل الاستخدام | VX-A1 | CR-all | يجب أن يكون حجم مساحات اللمس 48 بكسل مستقل الكثافة على الأقل. مزيد من المعلومات |
| VX-A2 | CR-all | يجب أن يحافظ النص ومحتوى المقدّمة في التطبيق على نسبة تباين عالية بما يكفي بين الألوان والخلفية:
|
|
| VX-A3 | CR-all | صِف كل عنصر من عناصر واجهة المستخدم،
باستثناء TextView، باستخدام contentDescription. |
الوظائف
يجب أن يقدّم تطبيقك الوظائف المتوقّعة منه.
| المنطقة | رقم التعريف | الاختبارات | الوصف |
|---|---|---|---|
| الصوت | FN-A1 | CR-1 CR-8 |
يتم استئناف الصوت عند عودة التطبيق إلى المقدّمة، أو يتم إعلام المستخدم بأنّ التشغيل في حالة إيقاف مؤقت. |
| FN-A2 | CR-1 CR-2 CR-8 |
إذا كان تشغيل الصوت ميزة أساسية، يجب أن يتيح التطبيق التشغيل في الخلفية. | |
| FN-A3 | CR-0 | عندما يبدأ المستخدم تشغيل الصوت، يجب أن ينفّذ التطبيق أحد الإجراءات التالية في غضون ثانية واحدة:
|
|
| 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 | يجب أن يستخدم التطبيق ورقة المشاركة في Android عند مشاركة المحتوى. يمكن أن تقترح هذه الأداة استهدافات غير متاحة للحلول المخصّصة. |
| خدمة تعمل في الخلفية | FN-B1 | CR-6 | يتجنّب التطبيق تشغيل خدمات طويلة بشكل غير ضروري في الخلفية. لضمان تشغيل جهاز المستخدم بسلاسة، يفرض النظام قيودًا مختلفة على الخدمات التي تعمل في الخلفية. لا تُعدّ الحالات التالية من الاستخدامات الجيدة للخدمات التي تعمل في الخلفية:
|
الأداء والثبات
يجب أن يوفّر تطبيقك الأداء والثبات والتوافق وسرعة الاستجابة التي يتوقّعها المستخدمون.
| المنطقة | رقم التعريف | الاختبارات | الوصف |
|---|---|---|---|
| الثبات | PS-S1 | CR-all SD-1 |
لا يتعطّل التطبيق أو يحظر سلسلة واجهة المستخدم ما يؤدي إلى حدوث أخطاء ANR (أي "التطبيق لا يستجيب" على نظام Android). استخدِم تقرير الإطلاق التجريبي من Google Play لتحديد المشاكل المحتملة المتعلّقة بالثبات. بعد النشر، انتبه إلى صفحة مؤشرات Android الحيوية في Google Play Console. |
| الأداء | PS-P1 | CR-all SD-1 |
يتم تحميل التطبيق بسرعة أو يتم تقديم ملاحظات على الشاشة للمستخدم (مؤشر تقدُّم أو رمز مماثل) إذا استغرق تحميل التطبيق أكثر من ثانيتَين. |
| 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 | يستهدف التطبيق أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android اللازم للالتزام بمتطلبات Google Play من خلال ضبط القيمة targetSdk. |
|
| PS-T3 | SP-1 | تم إنشاء التطبيق باستخدام أحدث إصدار من حزمة تطوير البرامج (SDK) لنظام التشغيل Android من خلال ضبط القيمة compileSdk. |
|
| PS-T4 | SP-2 SP-3 |
أنّ جميع حِزم تطوير البرامج (SDK) من Google أو من جهات خارجية المستخدمة محدّثة يجب أن تتوفّر للمستخدمين في الوقت المناسب أي تحسينات على حِزم تطوير البرامج هذه، مثل الثبات أو التوافق أو الأمان.
بالنسبة إلى حِزم تطوير البرامج (SDK) من Google، ننصحك باستخدام حِزم تطوير البرامج (SDK) التي تستند إلى خدمات Google Play، إذا كانت متاحة. تتوافق حِزم تطوير البرامج هذه مع الإصدارات القديمة، وتتلقّى تحديثات تلقائية، وتقلّل من حجم حزمة تطبيقك، وتستفيد بشكل فعّال من الموارد المتوفّرة على الجهاز. يتحمّل المطوّر مسؤولية قاعدة الرموز البرمجية للتطبيق بالكامل، بما في ذلك أي حِزم SDK تابعة لجهات خارجية يتم استخدامها. |
|
| PS-T5 | SP-3 | لا يستخدم التطبيق واجهات غير متوفرة في حزمة SDK. | |
| PS-T6 | SP-2 | لا يتم تضمين أي مكتبات تصحيح أخطاء في تطبيق الإصدار العلني، ما قد يؤدي إلى حدوث مشاكل في الأداء والأمان. | |
| البطارية | PS-B1 | BA-1 | يتوافق التطبيق بشكل سليم مع ميزات إدارة الطاقة التي تم طرحها في الإصدار 6.0 من نظام التشغيل Android (وضع "السكون" و"وضع الاستعداد للتطبيق"). في حال تعذُّر تنفيذ الوظيفة الأساسية بسبب إدارة الطاقة، يمكن للتطبيقات المؤهَّلة فقط طلب إعفاء. اطّلِع على التوافق مع حالات الاستخدام الأخرى في ميزتَي "وضع الاستعداد أثناء النوم" و"وضع الاستعداد للتطبيقات".
أثناء التطوير، يمكن للمطوّرين اختبار سلوك وضع "استعداد التطبيق" و"وضع السكون" باستخدام أوامر ADB هذه. في ما يتعلّق باستهلاك البطارية، يمكن للمطوّرين استخدام أداة Power Profiler في "استوديو Android" أو أداة Battery Historian، بالإضافة إلى العمل المخطَّط له في الخلفية، لتشخيص الاستخدام غير المتوقّع للبطارية. |
الخصوصية والأمان
يجب أن يعالج تطبيقك بيانات المستخدمين ومعلوماتهم الشخصية بأمان، مع توفير مستوى الأذونات المناسب.
بالإضافة إلى قائمة التحقّق هذه، يجب أن تلتزم التطبيقات المنشورة على "متجر Google Play" أيضًا بسياسات بيانات المستخدمين لحماية خصوصية المستخدمين.
| المنطقة | رقم التعريف | الاختبارات | الوصف |
|---|---|---|---|
| الأذونات | SC-P1 | SC-4 | يطلب التطبيق الحدّ الأدنى المطلق من الأذونات اللازمة لدعم حالة الاستخدام الحالية. بالنسبة إلى بعض الأذونات، مثل إذن تحديد الموقع الجغرافي، استخدِم الموقع الجغرافي التقريبي بدلاً من الموقع الجغرافي الدقيق إذا أمكن ذلك. |
| SC-P2 |
يطلب التطبيق الإذن بالوصول إلى البيانات الحسّاسة (مثل الرسائل القصيرة أو سجلّ المكالمات أو الموقع الجغرافي) أو الخدمات التي تتطلّب دفع رسوم (مثل تطبيق "الهاتف" أو الرسائل القصيرة) فقط عندما يكون ذلك مرتبطًا بشكل مباشر بحالات الاستخدام الأساسية للتطبيقات. يجب الإفصاح بوضوح للمستخدم عن الآثار المترتبة على هذه الأذونات. استنادًا إلى طريقة استخدامك للأذونات، قد تتوفّر طريقة بديلة لتنفيذ حالة استخدام تطبيقك بدون الاعتماد على الوصول إلى المعلومات الحساسة. على سبيل المثال، بدلاً من طلب أذونات متعلقة بجهات اتصال المستخدم، قد يكون من الأنسب طلب الوصول باستخدام intent ضمني. |
||
| SC-P3 | CR-0 | يطلب التطبيق أذونات التشغيل في السياق، أي عندما تكون الوظيفة مطلوبة، بدلاً من طلبها مسبقًا أثناء بدء تشغيل التطبيق. | |
| SC-P4 | CR-0 | يوضّح التطبيق بوضوح سبب الحاجة إلى أذونات معيّنة أو يتّبع المسار المقترَح لتوضيح سبب الحاجة إلى إذن. |
|
| SC-P5 | CR-0 | يجب أن يتراجع التطبيق بشكل سلس عندما يرفض المستخدمون أحد الأذونات أو يبطلونه. يجب ألا يمنع التطبيق المستخدم من الوصول إليه نهائيًا. | |
| البيانات والملفات | SC-DF1 | SC-1 | يتم تخزين جميع البيانات الحسّاسة في وحدة التخزين الداخلية للتطبيق. |
| SC-DF2 | SC-10 | لا يتم تسجيل أي بيانات شخصية أو حساسة للمستخدمين في سجلّ النظام أو سجلّ خاص بالتطبيق. | |
| SC-DF3 | لا يستخدم التطبيق أي معرّفات أجهزة غير قابلة لإعادة الضبط، مثل IMEI، لأغراض التعريف. | ||
| إثبات الهوية | SC-ID1 | CR-0 | يقدّم التطبيق تلميحات لملء البيانات تلقائيًا، مثل بيانات اعتماد الحساب وغيرها من المعلومات الحساسة، مثل معلومات بطاقة الائتمان والعنوان ورقم الهاتف. |
| SC-ID2 | CR-0 | يمكنك دمج مدير بيانات الاعتماد على Android للحصول على تجربة تسجيل دخول سلسة توفّر إمكانية استخدام مفاتيح المرور والهوية الموحّدة وكلمات المرور التقليدية. | |
| SC-ID3 | CR-0 | يتيح التطبيق المصادقة باستخدام المقاييس الحيوية لحماية المعاملات المالية أو المعلومات الحسّاسة، مثل مستندات المستخدم المهمة. | |
| مكوّنات التطبيق | SC-AC1 | SC-5 |
يضبط التطبيق السمة يتم تصدير مكوّنات التطبيق التي تشارك البيانات مع تطبيقات أخرى أو المكوّنات التي يجب أن تستدعيها تطبيقات أخرى فقط. |
| SC-AC2 | CR-0 SC-4 |
تتّبع جميع الأهداف وعمليات البث أفضل الممارسات:
|
|
| SC-AC3 | SC-3 | تستخدم جميع المكوّنات التي تشارك المحتوى بين تطبيقاتك الإذن android:protectionLevel="signature" للأذونات المخصّصة. ويشمل ذلك الأنشطة والخدمات ومستقبِلات البث، وخاصةً موفّري المحتوى.
يجب ألا تعتمد التطبيقات على الوصول إلى قائمة الحِزم المثبَّتة. تم حظر الوصول إلى هذه البيانات بدءًا من الإصدار 11 من نظام التشغيل Android. |
|
| اتصال بالشبكات | SC-N1 | SC-9 | يتم إرسال جميع حركة بيانات الشبكة عبر طبقة المقابس الآمنة (SSL). |
| SC-N2 | SC-6 | يُعلن التطبيق عن إعداد أمان الشبكات. | |
| SC-N3 | إذا كان التطبيق يستخدم "خدمات Google Play"، يتم تهيئة موفّر الأمان عند بدء تشغيل التطبيق. | ||
| WebViews | SC-W1 | SC-6 | لا تستخدِم طريقة setAllowUniversalAccessFromFileURLs() للوصول إلى المحتوى المحلي. استخدِم WebViewAssetLoader بدلاً من ذلك. |
| SC-W2 | SC-7 | يجب ألا تستخدم مكوّنات WebView الدالة addJavaScriptInterface() مع المحتوى غير الموثوق به.
على الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، استخدِم قنوات رسائل HTML بدلاً من ذلك. |
|
| التنفيذ | SC-E1 | لا يحمّل التطبيق الرمز ديناميكيًا من خارج حزمة APK الخاصة بالتطبيق. على المطوّرين استخدام مجموعات حزمات تطبيق Android التي تتضمّن عرض الميزات في Play وعرض المواد في Play.
اعتبارًا من أغسطس 2021، أصبح استخدام "مجموعات حزمات تطبيق Android" إلزاميًا لجميع التطبيقات الجديدة في "متجر Google Play". |
|
| التشفير | SC-C1 | يجب أن يستخدم التطبيق خوارزميات تشفير قوية توفّرها المنصة وأداة إنشاء أرقام عشوائية. بالإضافة إلى ذلك، لا ينفّذ التطبيق خوارزميات مخصّصة. |
Google Play
تأكَّد من إمكانية نشر تطبيقاتك على Google Play.
| المنطقة | رقم التعريف | الاختبارات | الوصف |
|---|---|---|---|
| السياسات | GP-P1 | GP-all | يلتزم التطبيق بشكل صارم ببنود سياسة المطوّرين بشأن المحتوى على 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" طريقة رائعة لاختبار تطبيقك على إصدارات مختلفة من Android وبدقة شاشة مختلفة. عليك إعداد أجهزة محاكية (أجهزة Android الافتراضية) لتمثيل عوامل الشكل الأكثر شيوعًا ومجموعات الأجهزة/البرامج لقاعدة المستخدمين المستهدَفة. بالإضافة إلى اختبار التطبيق على الهواتف، ننصحك أيضًا باختباره على أشكال الأجهزة الأخرى باستخدام المحاكيات التالية كحدّ أدنى:
- الأجهزة القابلة للطي: شاشة داخلية قابلة للطي مقاس 7.6 بوصة مع شاشة خارجية (يتم إدراجها ضمن الهواتف في "مدير الأجهزة الافتراضية لنظام Android").
- جهاز لوحي - Pixel C 9.94 بوصة (2,560 بكسل × 1,800 بكسل)
- لاختبار إشعارات التطبيقات على الأجهزة الجوّالة، عليك إقران جهاز جوّال أو محاكي بمحاكي Wear OS Round 1.84".
- الأجهزة: يجب أن تتضمّن بيئة الاختبار عددًا قليلاً من الأجهزة الفعلية التي تمثّل أهم أشكال الأجهزة ومجموعات الأجهزة/البرامج المتاحة حاليًا للمستهلكين. ليس من الضروري إجراء الاختبار على كل الأجهزة المتوفّرة في السوق، بل يجب التركيز على عدد صغير من الأجهزة النموذجية، حتى باستخدام جهاز أو جهازَين لكل شكل من أشكال الأجهزة.
- مختبرات اختبار الأجهزة: يمكنك أيضًا استخدام خدمات تابعة لجهات خارجية، مثل مركز الاختبار الافتراضي لمنصة Firebase، لاختبار تطبيقك على مجموعة متنوعة من الأجهزة.
- الاختبار باستخدام أحدث إصدار من Android: بالإضافة إلى اختبار إصدارات Android النموذجية لقاعدة المستخدمين المستهدَفة، عليك دائمًا إجراء الاختبار على أحدث إصدار من Android (وهو Android 14 حاليًا). يضمن ذلك ألا تؤثّر آخر التغييرات في السلوك سلبًا في تجربة المستخدم.
للحصول على إرشادات أكثر شمولاً بشأن الاختبار، بما في ذلك اختبار الوحدات واختبار الدمج واختبار واجهة المستخدم، اطّلِع على أساسيات الاختبار على Android.
إجراءات الاختبار
تساعدك إجراءات الاختبار هذه في رصد أنواع مختلفة من المشاكل المتعلّقة بالجودة في تطبيقك. ويمكنك الجمع بين الاختبارات أو دمج مجموعات من الاختبارات معًا في خطط الاختبار الخاصة بك. راجِع الأقسام أعلاه للاطّلاع على مراجع تربط المعايير بإجراءات الاختبار هذه.
| النوع | الاختبار | الوصف |
|---|---|---|
| Core Suite | CR-0 | انتقِل إلى جميع أجزاء التطبيق، أي جميع الشاشات ومربّعات الحوار والإعدادات وجميع مسارات المستخدمين.
|
| CR-1 | من شاشة كل تطبيق، اضغط على مفتاح "الشاشة الرئيسية" بالجهاز أو مرِّر سريعًا للأعلى في وضع التنقّل بالإيماءات، ثم أعِد تشغيل التطبيق من شاشة "جميع التطبيقات". | |
| CR-2 | من شاشة كل تطبيق، انتقِل إلى تطبيق آخر قيد التشغيل، ثم ارجع إلى التطبيق قيد الاختبار باستخدام أداة التبديل بين التطبيقات المستخدَمة مؤخرًا. | |
| CR-3 | من كل شاشة تطبيق (ومربعات الحوار)، اضغط على زر "الرجوع" أو استخدِم إيماءة التمرير السريع للرجوع. | |
| CR-5 | من كل شاشة تطبيق، بدِّل اتجاه الجهاز بين الوضعَين الأفقي والعمودي وحالتَي الطي والفتح ثلاث مرات على الأقل. | |
| CR-6 | بدِّل إلى تطبيق آخر لإرسال تطبيق الاختبار إلى الخلفية. انتقِل إلى "الإعدادات" وتحقّق ممّا إذا كان تطبيق الاختبار يشغّل أي خدمات في الخلفية. في الإصدار 4.0 من نظام التشغيل Android والإصدارات الأحدث، انتقِل إلى شاشة "التطبيقات" وابحث عن التطبيق في علامة التبويب "قيد التشغيل". | |
| CR-7 | اضغط على زر التشغيل لوضع الجهاز في وضع السكون، ثم اضغط على زر التشغيل مرة أخرى لتنشيط الشاشة. | |
| CR-8 | إعداد قفل الشاشة على الجهاز اضغط على زر التشغيل لضبط الجهاز على وضع السكون (ما يؤدي إلى قفله). بعد ذلك، اضغط على زر التشغيل مرة أخرى لتنشيط الشاشة وفتح قفل الجهاز. | |
| CR-9 | تفعيل جميع أنواع الإشعارات التي يمكن للتطبيق عرضها ومراقبتها في لوحة الإشعارات وسِّع الإشعارات حيثما ينطبق ذلك (الإصدار 4.1 من نظام التشغيل Android والإصدارات الأحدث)، وانقر على جميع الإجراءات المتاحة. | |
| CR-10 | راجِع قسم "إتاحة حالات استخدام أخرى في وضعَي Doze و"وضع الاستعداد للتطبيق". | |
| التثبيت على بطاقة SD | SD-1 | كرِّر الخطوة Core Suite مع تثبيت التطبيق على بطاقة SD الخاصة بالجهاز (إذا كان التطبيق يتيح طريقة التثبيت هذه).
لنقل التطبيق إلى بطاقة SD، يمكنك استخدام "الإعدادات" > "معلومات التطبيق" > "النقل إلى بطاقة SD". |
| الأداء والثبات | SP-1 | راجِع ملف بيان Android وإعدادات الإصدار للتأكّد من أنّ التطبيق تم إنشاؤه باستخدام أحدث حزمة SDK متاحة (targetSdk وcompileSdk).
|
| SP-2 | راجِع ملف build.gradle بحثًا عن أي تبعيات قديمة. |
|
| SP-3 | استخدِم أداة lint في "استوديو Android" لرصد استخدام واجهات غير متوفرة في حزمة SDK. تتوفّر أيضًا طرق اختبار بديلة أخرى. | |
| مراقبة الأداء | PM-1 | كرِّر Core Suite مع تفعيل ميزة "التوصيف في وضع StrictMode".
يجب الانتباه جيدًا إلى عملية جمع البيانات غير المرغوب فيها وتأثيرها في تجربة المستخدم. |
| البطارية | BA-1 | كرِّر Core Suite خلال دورات "قيلولة" و"تطبيقات وضع الاستعداد".
انتبه جيدًا إلى المنبّهات والموقّتات والإشعارات والمزامنات وما إلى ذلك. راجِع الاختبار باستخدام ميزتَي "قيلولة" و"تطبيقات وضع الاستعداد" للاطّلاع على المتطلبات والإرشادات. |
| الأمان | SC-1 | راجِع جميع البيانات المخزّنة في وحدة التخزين الخارجية. |
| SC-2 | راجِع كيفية التعامل مع البيانات التي يتم تحميلها من وحدة تخزين خارجية ومعالجتها. | |
| SC-3 | راجِع جميع موفّري المحتوى المحدّدين في ملف بيان Android. تأكَّد من أنّ كل مقدّم خدمة لديه protectionLevel مناسب.
|
|
| SC-4 | راجِع جميع الأذونات التي يتطلّبها تطبيقك في ملف البيان وأثناء وقت التشغيل وفي شاشة إعدادات التطبيق (الإعدادات > معلومات التطبيق) على الجهاز. | |
| SC-5 | راجِع جميع مكوّنات التطبيق المحدّدة في ملف بيان Android للتأكّد من حالة التصدير المناسبة. يجب ضبط السمة التي تم تصديرها بشكلٍ صريح لجميع المكوّنات. | |
| SC-6 | راجِع إعدادات أمان الشبكة للتطبيق، وتأكَّد من عدم تعذُّر أي عمليات فحص باستخدام أداة Lint على الإعدادات. | |
| SC-7 | بالنسبة إلى كل WebView، انتقِل إلى صفحة تتطلّب JavaScript. | |
| SC-8 | في كل WebView، حاوِل الانتقال إلى المواقع الإلكترونية والمحتوى الذي لا يحمّله تطبيقك مباشرةً. | |
| SC-9 | عليك تحديد إعدادات أمان الشبكة التي توقف زيارات cleartext، ثم اختبار التطبيق. | |
| SC-10 | شغِّل التطبيق واستخدِم جميع وظائفه الأساسية، مع مراقبة سجلّ الجهاز. يجب عدم تسجيل أي معلومات خاصة بالمستخدمين. | |
| Google Play | GP-1 | سجِّل الدخول إلى Google Play Developer Console لمراجعة ملفك الشخصي كمطوِّر ووصف التطبيق ولقطات الشاشة ورسومات الميزات وتقييم المحتوى وملاحظات المستخدمين. |
| GP-2 | نزِّل الرسم المميز ولقطات الشاشة، ثم قلِّل حجمها لتتطابق مع أحجام العرض على الأجهزة وأشكال الأجهزة التي تستهدفها. | |
| GP-3 | راجِع جميع مواد العرض الرسومية والوسائط والنصوص ومكتبات الرموز البرمجية والمحتوى الآخر الذي يتم تجميعه في التطبيق أو تنزيل ملف البيانات الموسّعة. |
الاختبار باستخدام StrictMode
لاختبار الأداء، ننصحك بتفعيل StrictMode في تطبيقك واستخدامه لرصد العمليات التي قد تؤثّر في الأداء وعمليات الوصول إلى الشبكة وعمليات قراءة الملفات وكتابتها وما إلى ذلك. ابحث عن العمليات التي قد تتسبّب في حدوث مشاكل في سلسلة التعليمات الرئيسية وفي سلاسل التعليمات الأخرى.
يمكنك إعداد سياسة مراقبة لكل سلسلة محادثات باستخدام
StrictMode.ThreadPolicy.Builder
وتفعيل جميع عمليات المراقبة المتوافقة في
ThreadPolicy باستخدام
detectAll().
احرص على تفعيل الإشعار المرئي بشأن انتهاكات السياسة في ThreadPolicy باستخدام penaltyFlashScreen().