تست پلتفرم اندروید

پروژه متن باز اندروید (AOSP) چندین ابزار و مجموعه آزمایشی برای آزمایش بخش های مختلف پیاده سازی شما ارائه می دهد. قبل از استفاده از صفحات این بخش، باید با اصطلاحات زیر آشنا باشید:

دستگاه سازگار با اندروید
دستگاهی که می تواند هر برنامه شخص ثالث نوشته شده توسط توسعه دهندگان شخص ثالث را با استفاده از Android SDK و NDK اجرا کند. دستگاه‌های سازگار با Android باید از الزامات سند تعریف سازگاری (CDD) پیروی کنند و مجموعه تست سازگاری (CTS) را بگذرانند. دستگاه‌های سازگار با Android واجد شرایط شرکت در اکوسیستم Android هستند، که شامل مجوز بالقوه Google Play، مجوز بالقوه مجموعه برنامه‌ها و APIهای سرویس‌های تلفن همراه Google (GMS) و استفاده از علامت تجاری Android است. هر کسی می‌تواند از کد منبع اندروید استفاده کند، اما برای اینکه بخشی از اکوسیستم اندروید در نظر گرفته شود، دستگاه باید با اندروید سازگار باشد.
مصنوع
گزارش مربوط به ساخت که عیب یابی محلی را امکان پذیر می کند.
سند تعریف سازگاری (CDD)
سندی که نرم‌افزار و سخت‌افزار مورد نیاز دستگاه‌های سازگار با Android را برمی‌شمارد.
مجموعه تست سازگاری (CTS)

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

تست‌های CTS و پلتفرم متقابلاً منحصر به فرد نیستند. در اینجا چند دستورالعمل کلی وجود دارد:

  • اگر آزمایشی صحت توابع یا رفتارهای API فریمورک را تأیید می‌کند و آزمایش باید در شرکای OEM اجرا شود، باید در CTS باشد.
  • اگر آزمایشی برای گرفتن رگرسیون ها در طول توسعه پلتفرم در نظر گرفته شده است و ممکن است برای انجام به مجوز ممتاز نیاز داشته باشد و ممکن است به جزئیات پیاده سازی وابسته باشد (همانطور که در AOSP منتشر شده است)، باید یک آزمایش پلت فرم باشد.
خدمات تلفن همراه گوگل (GMS)

مجموعه‌ای از برنامه‌ها و APIهای Google که می‌توانند از قبل روی دستگاه‌ها نصب شوند.

GoogleTest (GTest)

یک چارچوب تست و تمسخر ++C. باینری‌های GTest معمولاً به لایه‌های انتزاعی سطح پایین‌تر دسترسی دارند یا IPC خام را در برابر سرویس‌های مختلف سیستم انجام می‌دهند. رویکرد تست برای GTest معمولاً با سرویس در حال آزمایش همراه است. CTS شامل چارچوب GTest است.

تست ابزار دقیق

یک محیط اجرای آزمایشی ویژه که توسط دستور am instrument راه اندازی شده است، که در آن فرآیند برنامه هدفمند مجدداً راه اندازی شده و با زمینه اصلی برنامه شروع می شود و یک رشته ابزار دقیق در داخل ماشین مجازی فرآیند برنامه شروع می شود. CTS شامل تست های ابزار دقیق است.

Logcat

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

چوب بری

استفاده از گزارش برای پیگیری رویدادهای سیستم کامپیوتری، مانند خطاها. ورود به سیستم اندروید به دلیل ترکیبی از استانداردهای استفاده شده که در ابزار Logcat ترکیب شده اند، پیچیده است.

پس از ارسال آزمون

یک تست اندروید که زمانی انجام می شود که یک پچ جدید به یک شاخه هسته مشترک متعهد شود. با وارد کردن aosp_kernel به عنوان یک نام جزئی شاخه، می توانید لیستی از شاخه های هسته را با نتایج موجود مشاهده کنید. برای مثال، نتایج مربوط به android-mainline می‌توانید در https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid پیدا کنید.

آزمون را از پیش ارسال کنید

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

فدراسیون تجارت

Tradefed نیز نامیده می شود، یک چارچوب آزمایشی پیوسته که برای اجرای تست ها بر روی دستگاه های اندرویدی طراحی شده است. به عنوان مثال، Tradefed برای اجرای تست های Compatibility Test Suite و Vendor Test Suite استفاده می شود.

مجموعه تست فروشنده (VTS)

مجموعه ای از قابلیت های گسترده برای آزمایش اندروید، ترویج فرآیند توسعه مبتنی بر آزمایش، و خودکارسازی لایه انتزاعی سخت افزار (HAL) و آزمایش هسته سیستم عامل.

انواع تست پلت فرم

یک تست پلت فرم معمولاً با یک یا چند سرویس سیستم Android یا لایه‌های HAL تعامل دارد، عملکردهای موضوع مورد آزمایش را اعمال می‌کند و صحت نتیجه آزمایش را تأیید می‌کند. آزمایش پلت فرم ممکن است:

  • (نوع 1) APIهای فریمورک را با استفاده از فریم ورک اندروید تمرین کنید. API های خاص در حال اجرا می تواند شامل موارد زیر باشد:
    • API های عمومی در نظر گرفته شده برای برنامه های شخص ثالث
    • APIهای مخفی در نظر گرفته شده برای برنامه‌های دارای امتیاز، یعنی APIهای سیستم یا APIهای خصوصی ( @hide ، یا protected ، package private )
  • (نوع 2) خدمات سیستم اندروید را با استفاده از بایندر خام یا پروکسی های IPC به طور مستقیم فراخوانی کنید.
  • (نوع 3) با استفاده از API های سطح پایین یا رابط های IPC مستقیماً با HAL ها تعامل داشته باشید.

تست‌های نوع 1 و 2 معمولاً تست‌های ابزار دقیق هستند، در حالی که تست‌های نوع 3 معمولاً GTest هستند.

بعدش چی؟

در اینجا لیستی از اسناد وجود دارد که می توانید برای اطلاعات دقیق تر بخوانید: