در مقایسه با سایر انواع برنامههای اندروید، یک برنامه Home API ملاحظات و چالشهای منحصر به فرد خود را دارد، از جمله وابستگی به دستگاههای فیزیکی خانه هوشمند، قابلیت اطمینان شبکه، امنیت و حریم خصوصی و قابلیت همکاری دستگاه و پروتکل. این تفاوتها بر آزمایش تأثیر میگذارند.
محیط آزمایش خود را تنظیم کنید
یک محیط تست قوی برای آزمایش یک برنامه Home API بسیار حیاتی است.
این یک استراتژی خوب است که دستگاههای تست Home API خود را در یک شبکه Wi-Fi اختصاصی ایزوله کنید. این کار از تداخل سایر دستگاهها جلوگیری میکند و به شما امکان میدهد شرایط مختلف شبکه مانند پهنای باند محدود را شبیهسازی کنید.
شما باید با استفاده از انواع دستگاههای خانه هوشمند، از تولیدکنندگان مختلف، آزمایش کنید. حتماً با دستگاههای واقعی و فیزیکی آزمایش کنید. دستگاههای مجازی و شبیهسازها جایگاه خود را دارند، اما نباید منحصراً به آنها تکیه کرد.
به همین ترتیب، آزمایش برنامه شما با انواع دستگاههای اندرویدی از تولیدکنندگان مختلف، با ابعاد صفحه نمایش متفاوت و اجرای نسخههای مختلف اندروید، به تأیید سازگاری گستردهتر کمک میکند.
ابزارهای خود را جمع کنید
ابزارهای زیر در آزمایش یک برنامه Home API مفید هستند:
| ابزار | توضیحات | 
|---|---|
| Google Home Plugin for Android Studio | دسترسی به Google Assistant Simulator ، نمایشگر نمودار خانگی، Google Cloud Logging و نمایشگر گزارشگیری پل اشکالزدایی اندروید (adb) را فراهم میکند. | 
| Google Home Playground | جایگزینی برای آزمایش با دستگاههای فیزیکی واقعی نیست، اما برای بسیاری از سناریوهای آزمایش ارزشمند است. | 
| Matter Virtual Device (MVD) | یکی دیگر از برنامههای شبیهسازی که میتواند هنگام آزمایش با دستگاههای Matter در یک برنامه Home API مفید باشد. | 
| اسپرسو | به شما امکان میدهد تست رابط کاربری را خودکار کنید. برای شبیهسازی تعاملات سختافزاری، باید API زیربنایی را شبیهسازی کنید. | 
| یک شبیهساز شبکه | به شما امکان میدهد شرایط مختلف شبکه و پاسخهای API را شبیهسازی کنید، که به ویژه اگر Home API شما از یک backend ابری استفاده میکند، مفید است. | 
| لاگکت اندروید استودیو | دادههای لاگ را مدیریت و تجزیه و تحلیل میکند. | 
رویکردها و استراتژیهای مختلف تست را به کار بگیرید
شما باید رویکردهای تست متنوعی را برای برنامه Home API خود اعمال کنید. برای اطلاعات کلی در مورد روشهای مختلف، به بخش تست برنامهها در اندروید مراجعه کنید. علاوه بر تست تجربه کاربری و امنیتی که انتظار میرود همه برنامههای اندروید تحت آن قرار گیرند، برخی از حوزههای تست به طور خاص برای برنامههای Home API مرتبط هستند و در بخشهای بعدی با جزئیات بیشتری برجسته شدهاند.
آزمایش عملکردی
بسته به قابلیتهای برنامهتان، ممکن است بخواهید به برخی از حوزههای زیر توجه ویژهای داشته باشید:
- کشف و جفتسازی دستگاه، شامل راهاندازی اولیه و جفتسازی با دستگاههای جدید، کشف مجدد دستگاههای موجود پس از راهاندازی مجدد برنامه، راهاندازی مجدد دستگاه یا تغییرات شبکه. همچنین سناریوهایی مانند دستگاههای غیرفعال یا ورود اطلاعات کاربری نادرست توسط کاربر را بررسی کنید.
 - همگامسازی وضعیت، اطمینان حاصل میکند که بهروزرسانیهای برنامه به موقع و دقیق وضعیت فعلی را منعکس میکنند.
 - نحوه مدیریت و اجرای مجوزها، به خصوص اگر برنامه شما از چندین کاربر یا دسترسی مشترک به خانه پشتیبانی میکند. این شامل تأیید این است که برنامه شما به درستی مجوزهای لغو شده را مدیریت میکند.
 - اگر برنامه شما از صحنههایی مانند صحنه «شب بخیر» که تمام چراغها را خاموش میکند، پشتیبانی میکند، ایجاد، اصلاح و اجرای صحنه را آزمایش کنید. اتوماسیونها، از جمله شروعکنندهها و اقدامات را آزمایش کنید.
 
تست عملکرد
تأیید کنید که برنامه شما پاسخگو است و هیچ تأخیر غیرضروری ایجاد نمیکند. در صورت امکان، با تعداد زیادی دستگاه آزمایش کنید تا مقیاسپذیری و نحوه عملکرد برنامه خود را تحت بار ارزیابی کنید. همچنین به میزان مصرف CPU، حافظه و باتری برنامه خود، به ویژه در هنگام ارتباط فعال دستگاه، توجه کنید تا ببینید آیا استفاده از منابع آن منطقی است یا خیر.
تست قابلیت اطمینان و پایداری
با توجه به وابستگی آنها به اتصال به شبکه، برنامههای Home API باید در برابر سناریوهای زیر آزمایش شوند:
-  نوسان شبکه
- قطع شدن وایفای، سیگنالهای ضعیف و سوئیچینگ شبکه را شبیهسازی کنید.
 - تأیید کنید که برنامه شما قطع و وصل شدنها را به خوبی مدیریت میکند.
 - بررسی کنید که دستورات هنگام برقراری مجدد اتصال در صف قرار گرفته و اجرا شوند، یا پیامهای خطای مناسبی ارائه دهید.
 - برنامه را نه فقط از شبکه خانگی، بلکه از شبکههای راه دور نیز آزمایش کنید.
 
 -  قطع اتصال دستگاه
- دستگاهها را به صورت فیزیکی از برق بکشید.
 - دستگاههای چرخه قدرت.
 
 -  عملیات همزمان
- ارسال سریع مجموعهای از دستورات.
 - از چندین کاربر بخواهید که همزمان یک دستگاه را کنترل کنند.
 - صحنهها و اتوماسیونهای دارای همپوشانی را آزمایش کنید.
 
 -  مدیریت خطا
- برای مثال، با شبیهسازی پاسخهای سرور ابری API، خطاهای API را اجباری کنید.
 - ورودی نامعتبر از کاربر را بررسی کنید.
 - تخریب مطلوب و پیامهای خطای آموزنده را تأیید کنید.
 
 - قابلیت اطمینان - برنامه و دستگاههای متصل را برای مدت طولانی اجرا کنید تا نشت حافظه یا مشکلات پایداری احتمالی را کشف کنید.