کیفیت برنامه اصلی

آخرین به روز رسانی: 17 مه 2021

یک راه مفید برای ارزیابی برتری برنامه ، قدم زدن در جریان‌های کاری در برنامه و ارزیابی روان بودن و ایمنی تجربه برنامه است.

این چک لیست مجموعه ای از معیارهای کیفیت اصلی و تست های مرتبط را برای کمک به ارزیابی کیفیت برنامه خود تعریف می کند. برخی از این معیارها ممکن است به راحتی نادیده گرفته شوند، و تست‌ها به شما کمک می‌کنند آنها را در برنامه‌های آزمون خود بگنجانید.

چک لیست حداقل کیفیتی را که همه برنامه ها باید داشته باشند برجسته می کند. آزمایش شما احتمالاً فراتر از آنچه در اینجا توضیح داده شده است خواهد بود.

هر مورد در چک لیست کیفیت دارای یک شناسه منحصر به فرد است که ممکن است استفاده از آن هنگام برقراری ارتباط با تیم خود مفید باشد. شما همچنین می توانید نسخه قبلی این دستورالعمل ها را مشاهده کنید .

تجربه بصری

برنامه شما باید طراحی استاندارد بصری Android و الگوهای تعاملی را در صورت لزوم ارائه دهد تا تجربه کاربری ثابت و شهودی داشته باشد.

حوزه شناسه تست ها شرح
جهت یابی VX-N1 CR-3 این برنامه از پیمایش دکمه بازگشت استاندارد پشتیبانی می کند و از هیچ درخواست سفارشی «دکمه بازگشت» روی صفحه استفاده نمی کند.
VX-N2 CR-3 این برنامه از ناوبری اشاره ای برای بازگشت / رفتن به صفحه اصلی پشتیبانی می کند.
VX-N3 CR-1
CR-3
CR-5

برنامه به درستی وضعیت کاربر یا برنامه را حفظ و بازیابی می کند.

این برنامه هنگام خروج از پیش زمینه وضعیت کاربر یا برنامه را حفظ می کند و از از دست رفتن تصادفی داده ها به دلیل ناوبری برگشتی و سایر تغییرات وضعیت جلوگیری می کند.

هنگام بازگشت به پیش زمینه، برنامه باید حالت حفظ شده و هر تراکنش قابل توجهی را که در حالت تعلیق بود بازیابی کند. مثال‌ها عبارتند از: تغییرات در زمینه‌های قابل ویرایش، پیشرفت بازی، منوها، ویدیوها و بخش‌های دیگر برنامه یا بازی.

  1. هنگامی که برنامه از تغییر دهنده برنامه Recents از سر گرفته می شود، برنامه کاربر را به وضعیت دقیقی که آخرین بار در آن استفاده شده است برمی گرداند.
  2. هنگامی که برنامه پس از بیدار شدن دستگاه از حالت خواب (قفل) از سر گرفته می شود، برنامه کاربر را به وضعیت دقیقی که آخرین بار در آن استفاده شده است برمی گرداند.
  3. وقتی برنامه دوباره از صفحه اصلی یا همه برنامه ها راه اندازی می شود، بسته به مدت زمانی که از آخرین استفاده از آن گذشته است، باید یکی از کارهای زیر را انجام دهد:
    • اگر آخرین بار از برنامه کمی قبل (دقیقه) استفاده شده است، وضعیت برنامه را تا حد امکان به حالت قبلی خود بازیابی کنید.
    • اگر زمان بیشتری از آخرین استفاده از برنامه گذشته است، سعی کنید برنامه را تا حد امکان به حالت قبلی خود بازیابی کنید. یا آن را از صفحه اصلی یا حالت پیش فرض دیگری شروع کنید.
اطلاعیه VX-S1 CR-9

اعلان ها از دستورالعمل های طراحی پیروی می کنند. به خصوص:

  1. اعلان‌ها برای تبلیغات متقابل یا تبلیغ محصول دیگری استفاده نمی‌شوند، زیرا این امر توسط فروشگاه Play اکیداً ممنوع است.
  2. کانال‌های اعلان به جای ارائه همه اعلان‌ها از یک کانال، بر اساس بهترین شیوه‌ها تعریف می‌شوند.
  3. انتخاب اولویت اعلان صحیح
  4. اعلان‌های متعدد در صورت امکان در یک گروه اعلان قرار می‌گیرند.
  5. در صورت لزوم، زمان‌بندی اعلان‌ها را تنظیم کنید.
  6. اعلان‌ها فقط در صورت مرتبط بودن با رویدادهای جاری مانند پخش موسیقی یا تماس تلفنی پایدار هستند. برای اطلاعات بیشتر، بخش عملکرد را ببینید.
VX-S2 CR-9

برای برنامه های پیام رسانی، برنامه های اجتماعی و مکالمات:

  1. از اعلان‌های MessagingStyle برای مکالمات استفاده کنید.
  2. از اقدام پاسخ مستقیم پشتیبانی کنید.
  3. از میانبرهای مکالمه پشتیبانی کنید و بهترین روش ها را برای به دست آوردن بهترین رتبه بندی مستقیم به اشتراک بگذارید.
  4. حباب ها را پشتیبانی کنید.
رابط کاربری و گرافیک VX-U1 CR-5

این برنامه جهت گیری افقی و عمودی و حالت های دستگاه تا شده و باز شده را پشتیبانی می کند.

جهت گیری ها و حالت های فولد اساساً همان ویژگی ها و کنش ها را نشان می دهند و برابری عملکردی را حفظ می کنند.

VX-U2 CR-5

برنامه پنجره برنامه را در هر دو جهت پر می کند و به دلیل تغییرات پیکربندی، از جمله تا کردن و باز کردن دستگاه، جعبه نامه نمی شود.

جعبه نامه کوچک برای جبران تغییرات کوچک در هندسه صفحه نمایش قابل قبول است.

VX-U3 CR-5 این برنامه به درستی انتقال سریع بین جهت های نمایشگر و تا شدن و باز شدن دستگاه را بدون مشکل رندر نمایشگر و بدون از دست دادن حالت کنترل می کند.
کیفیت بصری VX-V1 CR-همه

این برنامه گرافیک، متن، تصاویر و سایر عناصر رابط کاربری را بدون اعوجاج، تاری یا پیکسل‌سازی قابل‌توجه نمایش می‌دهد.

  1. برنامه باید در صورت امکان از ترسیم‌های برداری استفاده کند.
  2. این برنامه گرافیکی با کیفیت بالا را برای تمام اندازه های صفحه نمایش و فاکتورهای فرم مورد نظر ارائه می دهد.
  3. هیچ نام مستعار در لبه‌های منوها، دکمه‌ها و سایر عناصر رابط کاربری قابل مشاهده نیست.
VX-V2 CR-همه

این برنامه بلوک های متن و متن را به شیوه ای قابل قبول برای هر یک از زبان های پشتیبانی شده برنامه نمایش می دهد.

  1. ترکیب در تمام فاکتورهای فرم پشتیبانی شده قابل قبول است.
  2. هیچ حروف قطع یا کلمه ای قابل مشاهده نیست.
  3. هیچ کلمه نامناسبی در داخل دکمه ها یا نمادها قابل مشاهده نیست.
  4. فاصله کافی بین متن و عناصر اطراف وجود دارد.
VX-V3 CR-همه محتوای برنامه و تمام محتوای وب که برنامه به آنها ارجاع می دهد، از تم تیره پشتیبانی می کند.
دسترسی VX-A1 CR-همه

اندازه اهداف لمسی باید حداقل 48dp باشد. بیشتر بدانید .

VX-A2 CR-همه

متن و محتوای پیش‌زمینه برنامه باید نسبت کنتراست رنگ کافی را با پس‌زمینه‌اش حفظ کند:

  • 3.0:1 برای متن / گرافیک بزرگ
  • 4.5:1 برای متن کوچک (متن کوچکتر از 18pt، یا اگر متن پررنگ و کوچکتر از 14pt باشد)

درباره رنگ و کنتراست بیشتر بدانید.

VX-A3 CR-همه هر عنصر رابط کاربری را به جز TextView با استفاده از contentDescription توصیف کنید.

عملکرد

برنامه شما باید رفتار عملکردی مورد انتظار را اجرا کند.

حوزه شناسه تست ها شرح
سمعی FN-A1 CR-1
CR-8
وقتی برنامه به پیش‌زمینه برمی‌گردد، یا به کاربر نشان می‌دهد که پخش در حالت توقف است، صدا از سر گرفته می‌شود.
FN-A2 CR-1
CR-2
CR-8
اگر پخش صدا یک ویژگی اصلی است، برنامه باید از پخش پس‌زمینه پشتیبانی کند.
FN-A3 CR-0

هنگامی که کاربر پخش صدا را شروع می کند، برنامه باید یکی از کارهای زیر را در عرض یک ثانیه انجام دهد:

  1. شروع به پخش صدا کنید.
  2. یک نشانگر بصری ارائه دهید که داده های صوتی در حال آماده شدن هستند.
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 این برنامه از اجرای خدمات طولانی غیر ضروری در پس زمینه جلوگیری می کند. برای اطمینان از اجرای روان دستگاه کاربر، سیستم محدودیت های مختلفی را بر روی خدمات پس زمینه اعمال می کند. این موارد استفاده خوب از خدمات پس زمینه در نظر گرفته نمی شوند:
  • حفظ اتصال شبکه برای اعلان ها
  • حفظ اتصال بلوتوث
  • روشن نگه داشتن GPS

نحوه انتخاب راه حل مناسب برای کار خود را بیاموزید.

عملکرد و ثبات

برنامه شما باید عملکرد، ثبات، سازگاری و پاسخگویی مورد انتظار کاربران را ارائه دهد.

حوزه شناسه تست ها شرح
ثبات PS-S1 CR-همه
SD-1
برنامه از کار نمی‌افتد یا رشته رابط کاربری را مسدود نمی‌کند و باعث ایجاد خطاهای ANR (Android Not Responding») می‌شود. از گزارش پیش از راه‌اندازی Google Play برای شناسایی مشکلات احتمالی ثبات استفاده کنید. پس از استقرار، به صفحه Android Vitals در کنسول توسعه دهنده Google Play توجه کنید.
کارایی PS-P1 CR-همه
SD-1
اگر بارگذاری برنامه بیش از دو ثانیه طول بکشد ، برنامه به سرعت بارگیری می شود یا بازخورد روی صفحه را به کاربر ارائه می دهد (نشانگر پیشرفت یا نشانه مشابه).
PS-P2 CR-همه
SD-1
برنامه‌ها باید هر 16 میلی‌ثانیه فریم‌ها را رندر کنند تا به 60 فریم در ثانیه برسند. توسعه دهندگان می توانند از گزینه نمایه HWUI رندر در آزمایش استفاده کنند. اگر مشکلی وجود دارد، ابزارهایی برای کمک به تشخیص رندر کند در دسترس هستند.
PS-P3 PM-1 با فعال بودن StrictMode ( به تست StrictMode ، در زیر مراجعه کنید)، هیچ چشمک قرمز (هشدارهای عملکرد از StrictMode) هنگام آزمایش برنامه قابل مشاهده نیست. هر چشمک قرمز نشان دهنده رفتارهای بد در مورد ذخیره سازی، دسترسی به شبکه یا نشت حافظه است.
SDK PS-T1 CR-0 این برنامه بر روی آخرین نسخه عمومی پلتفرم اندروید بدون خرابی یا تأثیر شدید بر عملکرد اصلی اجرا می شود.
PS-T2 SP-1 این برنامه با تنظیم مقدار targetSdk ، آخرین SDK اندروید مورد نیاز برای هماهنگی با الزامات Google Play را هدف قرار می دهد .
PS-T3 SP-1 این برنامه با جدیدترین Android SDK با تنظیم مقدار compileSdk ساخته شده است.
PS-T4 SP-2
SP-3
همه SDK های Google یا شخص ثالث استفاده شده به روز هستند . هر گونه بهبودی در این SDK ها، مانند ثبات، سازگاری یا امنیت، باید به موقع در دسترس کاربران قرار گیرد.

برای Google SDK، در صورت وجود، از کیت‌های توسعه نرم‌افزار ارائه‌شده توسط سرویس‌های Google Play استفاده کنید. این SDK ها با نسخه قبلی سازگار هستند، به روز رسانی های خودکار را دریافت می کنند، اندازه بسته برنامه شما را کاهش می دهند و از منابع موجود در دستگاه استفاده موثر می کنند.

توسعه‌دهنده پاسخگوی کل پایگاه کد برنامه، شامل هر SDK شخص ثالثی است که استفاده می‌شود.

PS-T5 SP-3 این برنامه از رابط های غیر SDK استفاده نمی کند.
PS-T6 SP-2 هیچ کتابخانه اشکال زدایی در برنامه تولید گنجانده نشده است. این می تواند باعث عملکرد و همچنین مشکلات امنیتی شود.
باتری PS-B1 BA-1 این برنامه به درستی از ویژگی های مدیریت انرژی که در اندروید 6.0 معرفی شده بود (Doze و App Standby) پشتیبانی می کند. در مواردی که عملکرد اصلی توسط مدیریت انرژی مختل شود، فقط برنامه‌های واجد شرایط می‌توانند درخواست معافیت کنند. به پشتیبانی از موارد استفاده دیگر در Doze و App Standby مراجعه کنید.

در طول توسعه، توسعه دهندگان می توانند با استفاده از این دستورات ADB رفتار آماده به کار و چرت زدن برنامه را آزمایش کنند.

از نظر مصرف باتری، توسعه‌دهندگان می‌توانند از نمایه‌ساز انرژی Android Studio یا ابزار Battery Historian ، همراه با کارهای پس‌زمینه برنامه‌ریزی‌شده، برای تشخیص مصرف غیرمنتظره باتری استفاده کنند.

حریم خصوصی و امنیت

برنامه شما باید داده های کاربر و اطلاعات شخصی را به صورت ایمن و با سطح مجوز مناسب مدیریت کند.

علاوه بر این چک لیست، برنامه های منتشر شده در فروشگاه Google Play نیز باید از سیاست های داده های کاربر برای محافظت از حریم خصوصی کاربران پیروی کنند.

حوزه شناسه تست ها شرح
مجوزها SC-P1 SC-4 این برنامه فقط حداقل تعداد مطلق مجوزهایی را که برای پشتیبانی از موارد استفاده در دسترس نیاز دارد درخواست می کند. برای برخی از مجوزها مانند موقعیت مکانی، در صورت امکان از مکان درشت به جای مکان مناسب استفاده کنید.
SC-P2

این برنامه فقط زمانی برای دسترسی به داده‌های حساس (مانند پیامک، گزارش تماس ، یا موقعیت مکانی ) یا خدماتی که هزینه‌ای دارند (مانند شماره‌گیر یا پیامک) مجوز درخواست می‌کند که مستقیماً به موارد استفاده اصلی برنامه‌ها مرتبط باشد. پیامدهای مربوط به این مجوزها باید به طور برجسته برای کاربر افشا شود.

بسته به نحوه استفاده شما از مجوزها، ممکن است یک راه جایگزین برای انجام موارد استفاده برنامه شما بدون تکیه بر دسترسی به اطلاعات حساس وجود داشته باشد. به عنوان مثال، به جای درخواست مجوزهای مربوط به مخاطبین یک کاربر، ممکن است درخواست دسترسی با استفاده از یک هدف ضمنی مناسب تر باشد.

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 Credential Manager برای Android را برای یک تجربه ورود یکپارچه که پشتیبانی از کلیدهای عبور، هویت فدرال و رمزهای عبور سنتی را یکپارچه می کند، ادغام کنید.
SC-ID3 CR-0 این برنامه از احراز هویت بیومتریک برای محافظت از تراکنش های مالی یا اطلاعات حساس مانند اسناد مهم کاربر پشتیبانی می کند.
اجزای برنامه SC-AC1 SC-5

این برنامه ویژگی android:exported به صراحت برای همه فعالیت‌ها ، خدمات ، گیرنده‌های پخش و به‌ویژه ارائه‌دهندگان محتوا تنظیم می‌کند.

فقط اجزای برنامه ای که داده ها را با سایر برنامه ها به اشتراک می گذارند یا مؤلفه هایی که باید توسط برنامه های دیگر فراخوانی شوند صادر می شوند.

SC-AC2 CR-0
SC-4

همه مقاصد و پخش ها از بهترین شیوه ها پیروی می کنند:

  1. اگر برنامه مقصد به خوبی تعریف شده باشد از مقاصد صریح استفاده کنید .
  2. از Intents برای به تعویق انداختن مجوزها به برنامه دیگری که قبلاً مجوز دارد، استفاده کنید.
  3. داده ها را به طور ایمن در بین برنامه ها به اشتراک بگذارید .
  4. مقاصد حاوی محموله قبل از استفاده تأیید می شوند.
  5. اگر نیاز دارید یک Intent را به برنامه دیگری ارسال کنید تا برنامه دریافت کننده بتواند در برنامه تماس گیرنده فراخوانی کند و انتظار پاسخگویی به آن را داشته باشد، یک intent تو در تو را در موارد اضافی وارد نکنید. از یک PendingIntent استفاده کنید.
  6. هنگام راه‌اندازی PendingIntent‌ها، به صراحت پرچم غیرقابل تغییر را در صورت لزوم تنظیم کنید.
SC-AC3 SC-3 همه اجزایی که محتوا را بین برنامه های شما به اشتراک می گذارند android:protectionLevel="signature" برای مجوزهای سفارشی استفاده می کنند. این شامل فعالیت ها , خدمات , گیرنده های پخش و به خصوص ارائه دهندگان محتوا می شود .

برنامه ها نباید به دسترسی به لیست بسته های نصب شده متکی باشند. دسترسی از ابتدا در اندروید 11 محدود شده است.

شبکه سازی SC-N1 SC-9 تمام ترافیک شبکه از طریق SSL ارسال می شود.
SC-N2 SC-6 برنامه یک پیکربندی امنیتی شبکه را اعلام می کند.
SC-N3 اگر برنامه از خدمات Google Play استفاده می‌کند، ارائه‌دهنده امنیت هنگام راه‌اندازی برنامه، مقداردهی اولیه می‌شود .
WebViews SC-W1 SC-6 از setAllowUniversalAccessFromFileURLs() برای دسترسی به محتوای محلی استفاده نکنید. در عوض، از WebViewAssetLoader استفاده کنید.
SC-W2 SC-7 WebViews نباید از addJavaScriptInterface() با محتوای نامعتبر استفاده کند .

در Android 6.0 و بالاتر، به جای آن از کانال های پیام HTML استفاده کنید.

اجرا SC-E1 برنامه به صورت پویا کد را از خارج از APK برنامه بارگیری نمی کند. برنامه‌نویسان باید از Android App Bundles استفاده کنند که شامل Play Feature Delivery و Play Asset Delivery می‌شود.

از آگوست 2021، استفاده از Android App Bundles برای همه برنامه‌های جدید در فروشگاه Google Play اجباری است.

رمزنگاری SC-C1 این برنامه از الگوریتم های رمزنگاری قوی و ارائه شده توسط پلتفرم و یک تولید کننده اعداد تصادفی استفاده می کند . همچنین، برنامه الگوریتم های سفارشی را پیاده سازی نمی کند.

گوگل پلی

مطمئن شوید که برنامه های شما می توانند در Google Play منتشر شوند.

حوزه شناسه تست ها شرح
سیاست های GP-P1 GP-همه این برنامه کاملاً از شرایط خط‌مشی محتوای برنامه‌نویس Google Play پیروی می‌کند و محتوای نامناسب ارائه نمی‌دهد، از مالکیت معنوی یا برند دیگران استفاده نمی‌کند و غیره.
GP-P2 GP-1 بر اساس دستورالعمل‌های رتبه‌بندی محتوا ، سطح بلوغ برنامه به‌طور مناسب تنظیم شده است.
صفحه جزئیات برنامه GP-D1 GP-1
GP-2

گرافیک ویژگی برنامه از دستورالعمل‌های ذکر شده در این مقاله پشتیبانی پیروی می‌کند. مطمئن شوید که:

  1. فهرست برنامه شامل یک گرافیک ویژگی با کیفیت بالا است.
  2. این ویژگی گرافیکی حاوی تصاویر دستگاه، عکس‌های صفحه یا متن کوچکی نیست که در صورت کوچک‌تر شدن و نمایش در کوچک‌ترین اندازه صفحه‌ای که برنامه شما هدف قرار داده است، ناخوانا باشد.
  3. گرافیک ویژگی شبیه تبلیغات نیست.
GP-D2 GP-1 اسکرین شات‌ها و ویدیوهای برنامه دستگاه‌های غیر اندرویدی را نشان نمی‌دهند یا به آن‌ها اشاره نمی‌کنند.
GP-D3 GP-1 اسکرین شات ها یا ویدیوهای برنامه، محتوا و تجربه برنامه شما را به شیوه ای گمراه کننده نشان نمی دهد.
پشتیبانی کاربر GP-X1 GP-1 اشکالات رایج گزارش شده توسط کاربر در برگه نظرات در صفحه Google Play اگر قابل تکرار باشند و در بسیاری از دستگاه های مختلف رخ دهند، برطرف می شوند. اگر یک اشکال فقط در چند دستگاه رخ دهد، اگر آن دستگاه‌ها به‌خصوص محبوب یا جدید هستند، همچنان باید آن را برطرف کنید.

راه اندازی محیط تست

به منظور تنظیم یک محیط تست برای این چک لیست، موارد زیر را توصیه می کنیم:

  • تمرکز بر تست شبیه ساز - شبیه ساز اندروید یک راه عالی برای آزمایش برنامه شما تحت نسخه های مختلف اندروید و وضوح صفحه نمایش است. شما باید دستگاه‌های شبیه‌سازی شده (AVD) را راه‌اندازی کنید تا متداول‌ترین عوامل شکل و ترکیب‌های سخت‌افزار/نرم‌افزار را برای پایگاه کاربر هدف خود نشان دهند. علاوه بر آزمایش برای تلفن‌ها، توصیه می‌کنیم حداقل فاکتورهای فرم دیگر را با استفاده از شبیه‌سازهای زیر آزمایش کنید:
    • تاشوها - تاشو 7.6 اینچی با نمایشگر بیرونی (این مورد در زیر تلفن‌ها در مدیریت AVD فهرست شده است).
    • رایانه لوحی - Pixel C 9.94 اینچی (2560 پیکسل × 1800 پیکسل).
    • برای آزمایش اعلان برنامه تلفن همراه، یک دستگاه تلفن همراه / شبیه ساز را با شبیه ساز Wear OS - Wear OS Round 1.84" جفت کنید.
  • دستگاه‌های سخت‌افزاری - محیط آزمایشی شما باید شامل تعداد کمی از دستگاه‌های سخت‌افزاری واقعی باشد که نشان‌دهنده عوامل کلیدی شکل و ترکیب‌های سخت‌افزار/نرم‌افزاری است که در حال حاضر در دسترس مصرف‌کنندگان است. تست کردن روی هر دستگاهی که در بازار وجود دارد ضروری نیست - بلکه باید روی تعداد کمی از دستگاه های نماینده تمرکز کنید، حتی از یک یا دو دستگاه در هر فرم فاکتور استفاده کنید.
  • آزمایشگاه‌های تست دستگاه - همچنین می‌توانید از خدمات شخص ثالث مانند Firebase Test Lab برای آزمایش برنامه خود در دستگاه‌های مختلف استفاده کنید.
  • تست با آخرین نسخه اندروید - علاوه بر آزمایش نسخه های اندرویدی نماینده برای پایگاه کاربر هدف خود، همیشه باید با آخرین نسخه اندروید (اندروید 14 فعلی) تست کنید. این تضمین می کند که آخرین تغییرات رفتاری تأثیر منفی بر تجربه کاربر شما ندارد.

برای راهنمایی جامع تر در مورد آزمایش از جمله تست واحد، تست یکپارچه سازی و تست UI، اصول تست اندروید را بررسی کنید.

مراحل تست

این روش‌های تست به شما کمک می‌کند انواع مختلفی از مشکلات کیفیت را در برنامه خود کشف کنید. می‌توانید تست‌ها را ترکیب کنید یا گروه‌هایی از آزمون‌ها را در برنامه‌های آزمایشی خود با هم ادغام کنید. برای مراجعی که معیارهایی را با این روش های آزمون مرتبط می کنند، به بخش های بالا مراجعه کنید.

تایپ کنید تست شرح
سوئیت هسته CR-0

به تمام بخش‌های برنامه بروید - همه صفحه‌ها، دیالوگ‌ها، تنظیمات و همه جریان‌های کاربر.

  1. اگر برنامه اجازه ویرایش یا ایجاد محتوا، پخش بازی یا پخش رسانه را می دهد، مطمئن شوید که این جریان ها را آزمایش کنید.
  2. هنگام آزمایش برنامه، وقفه‌هایی را از سایر برنامه‌ها مانند دریافت اعلان یا تماس تلفنی وارد کنید. و تغییرات گذرا را در ویژگی های دستگاه اعمال کنید، مانند اتصال به شبکه، عملکرد باتری، در دسترس بودن GPS و بار سیستم.
  3. همه جریان‌های خرید درون‌برنامه را وارد کرده و آزمایش کنید
CR-1 از هر صفحه برنامه، کلید صفحه اصلی دستگاه را فشار دهید یا در پیمایش اشاره‌ای انگشت خود را به سمت بالا بکشید، سپس برنامه را از صفحه همه برنامه‌ها دوباره راه‌اندازی کنید.
CR-2 از هر صفحه برنامه، به برنامه در حال اجرا دیگری بروید، و سپس با استفاده از تغییردهنده برنامه Recents به برنامه تحت آزمایش برگردید.
CR-3 از هر صفحه برنامه (و دیالوگ ها)، دکمه برگشت را فشار دهید یا از حرکت تند کشیدن به عقب استفاده کنید.
CR-5 از هر صفحه برنامه، دستگاه را حداقل سه بار بین جهت افقی و عمودی و حالت های تا شده و باز شده بچرخانید.
CR-6 برای ارسال برنامه آزمایشی به پس‌زمینه، به برنامه دیگری بروید. به تنظیمات بروید و بررسی کنید که آیا برنامه آزمایشی در پس‌زمینه خدماتی در حال اجرا دارد یا خیر. در اندروید 4.0 و بالاتر، به صفحه برنامه‌ها بروید و برنامه را در تب "در حال اجرا" پیدا کنید.
CR-7 دکمه روشن/خاموش را فشار دهید تا دستگاه در حالت خواب قرار گیرد، سپس دوباره دکمه روشن/خاموش را فشار دهید تا صفحه بیدار شود.
CR-8 قفل صفحه را روی دستگاه تنظیم کنید. دکمه پاور را فشار دهید تا دستگاه به حالت خوابیده (که دستگاه را قفل می کند). سپس، دوباره دکمه پاور را فشار دهید تا صفحه بیدار شود و قفل دستگاه باز شود.
CR-9 همه نوع اعلان‌هایی را که برنامه می‌تواند نمایش دهد، فعال کنید و در کشوی اعلان‌ها مشاهده کنید. اعلان‌ها را در صورت لزوم گسترش دهید (اندروید 4.1 و بالاتر)، و روی همه اقدامات موجود ضربه بزنید.
CR-10 پشتیبانی از موارد استفاده دیگر را در Doze و App Standby مرور کنید.
روی کارت SD نصب کنید SD-1 Core Suite را با برنامه نصب شده روی کارت SD دستگاه تکرار کنید (اگر برنامه از این روش نصب پشتیبانی می کند).

برای انتقال برنامه به کارت SD، می توانید از تنظیمات > اطلاعات برنامه > انتقال به کارت SD استفاده کنید.

عملکرد و ثبات SP-1 فایل مانیفست اندروید و پیکربندی ساخت را مرور کنید تا مطمئن شوید که برنامه بر اساس آخرین SDK موجود ( targetSdk و compileSdk ) ساخته شده است.
SP-2 فایل build.gradle را برای هرگونه وابستگی قدیمی بررسی کنید.
SP-3 از ابزار لینت اندروید استودیو برای تشخیص استفاده از رابط غیر SDK استفاده کنید. سایر روش‌های آزمایش جایگزین نیز وجود دارد.
نظارت بر عملکرد PM-1 تکرار Core Suite با فعال کردن پروفایل StrictMode .

به جمع آوری زباله و تأثیر آن بر تجربه کاربر توجه زیادی داشته باشید.

باتری BA-1 Core Suite را در چرخه‌های Doze و App Standby تکرار کنید.

به آلارم‌ها، تایمرها، اعلان‌ها، همگام‌سازی‌ها و غیره توجه زیادی داشته باشید. برای اطلاع از الزامات و دستورالعمل‌ها به تست با Doze و App Standby مراجعه کنید.

امنیت SC-1 تمام داده های ذخیره شده در حافظه خارجی را بررسی کنید.
SC-2 نحوه مدیریت و پردازش داده‌های بارگیری شده از حافظه خارجی را بررسی کنید.
SC-3 همه ارائه دهندگان محتوای تعریف شده در فایل مانیفست اندروید را مرور کنید. اطمینان حاصل کنید که هر ارائه دهنده دارای یک protectionLevel مناسب است.
SC-4 همه مجوزهایی را که برنامه شما نیاز دارد، در فایل مانیفست، در زمان اجرا و در صفحه تنظیمات برنامه (تنظیمات > اطلاعات برنامه) روی دستگاه مرور کنید.
SC-5 تمام اجزای برنامه تعریف شده در فایل مانیفست اندروید را برای وضعیت صادرات مناسب بررسی کنید. ویژگی صادراتی باید به صراحت برای همه اجزا تنظیم شود.
SC-6 پیکربندی امنیت شبکه برنامه را مرور کنید و مطمئن شوید که هیچ بررسی پرز روی پیکربندی انجام نمی‌شود.
SC-7 برای هر WebView، به صفحه ای بروید که به جاوا اسکریپت نیاز دارد.
SC-8 در هر WebView، سعی کنید به سایت‌ها و محتوایی بروید که مستقیماً توسط برنامه شما بارگیری نشده‌اند.
SC-9 یک پیکربندی امنیت شبکه که ترافیک متن شفاف را غیرفعال می‌کند ، اعلام کنید، سپس برنامه را آزمایش کنید.
SC-10 برنامه را اجرا کنید و تمام عملکردهای اصلی را اجرا کنید، در حالی که گزارش دستگاه را مشاهده می کنید . هیچ اطلاعات خصوصی کاربر نباید ثبت شود.
گوگل پلی GP-1 برای بررسی نمایه برنامه‌نویس، توضیحات برنامه، تصاویر صفحه، گرافیک ویژگی، رتبه‌بندی محتوا و بازخورد کاربر، وارد کنسول برنامه‌نویس Google Play شوید.
GP-2 گرافیک ویژگی و اسکرین شات های خود را دانلود کنید و آنها را برای مطابقت با اندازه نمایش در دستگاه ها و فاکتورهای شکلی که هدف قرار می دهید، کوچک کنید.
GP-3 همه دارایی‌های گرافیکی، رسانه‌ها، متن، کتابخانه‌های کد و سایر محتوایی که در برنامه یا دانلود فایل توسعه بسته‌بندی شده‌اند را مرور کنید.

تست با StrictMode

برای آزمایش عملکرد، توصیه می‌کنیم StrictMode در برنامه خود فعال کنید و از آن برای دریافت عملیاتی که می‌تواند بر عملکرد، دسترسی‌های شبکه، خواندن/نوشتن فایل‌ها و غیره تأثیر بگذارد استفاده کنید. به دنبال عملیات بالقوه مشکل ساز هم در رشته اصلی و هم در موضوعات دیگر باشید.

می توانید با استفاده از StrictMode.ThreadPolicy.Builder یک خط مشی نظارت بر هر رشته تنظیم کنید و تمام نظارت های پشتیبانی شده در ThreadPolicy را با استفاده از detectAll() فعال کنید.

مطمئن شوید که اعلان بصری نقض خط‌مشی را برای ThreadPolicy با استفاده از penaltyFlashScreen() فعال کنید.