تست موبایل
ملاحظات و چالش های خاص تست موبایل
1. انتظارات کاربر
کاربران انتظارات خاصی از اپلیکیشن های موبایل دارند. این انتظارات باعث شده است چالش هایی برای تست و تولید اپلیکیشن های موبایل فرآهم آید که در ادامه به بررسی آنها می پردازیم.
ارتباط کاربران در سطح جهانی
محلی کردن نیازمندی ها
بازخورد لحظه ای (رتبه بندی آنلاین)
انتظارات
رابط کاربری ملموس(Intuitive UI)
کارایی: 60 درصد از کاربران، برنامه یا سایت های موبایل که مدت بارگذاری آنها بالای 3 ثانیه باشد را کنار می گذارند.
یکپارچگی با دستگاه های مختلف
یکپارچگی با آپشن های اتصال مختلف همچون 3g,4g, Wi-Fi
امنیت
مصرف دیتا
مصرف انرژی
نصب و راه اندازی آسان
2. شبکه
وجود شبکه های متعدد
وجود استانداردهای جهانی متعدد
NMT)Nordic Mobile Telephony)
FDMA)Frequency Division Multiple Access)
GSM)Global System for Mobile Communications)
TDMA)Time Division Multiple Access)
FDMA)Frequency Division Multiple Access)
UMTS (3GSM)) Universal Mobile Telecommunications System)
W-CDMA)Wideband Code-Division Multiple Access)
IS-95 (CDMA one) / IS-2000)CDMA 2000)
CDMA )Code-Division Multiple Access)
WIMAX / LTE )Long Term Evolution)
OFDMA )Orthogonal Frequency Division Multiple Access)
وجود اپراتورهای تلفن همراه مختلف
شبکه
Cell to Cell Hopping
Roaming
Cell to Wi-F
3G to 4G, Edge to 3G, etc.
International Networks
ارتباط حوزه نزدیک یا NFC)near field communication): نوعی وسیله ارتباطی بیسیم بین دو دستگاه در مجاورت همدیگر است که در فاصلههای کوتاه (حداکثر چند سانتیمتر) کاربرد دارد. NFC جایگزینی برای انتقال اطلاعات و فایلها بین دو دستگاه موبایل توسط بلوتوث است که برخلاف بلوتوث نیازی به صرف زمان برای جستجوی دستگاههای نزدیک ندارد و به سادگی و با نزدیک کردن دستگاه دوم قابل استفاده است.
بلوتوث
پیاده سازی به گونه ای تغییرپذیر و موضوعات مربوط به آن
Tunneling: در شبکه به کاربر اجازه میدهد تا به سرویسهایی که در شبکهاش ارائه نمیشوند، دسترسی پیدا کند. یکی از استفادههای مهم پروتکلهای Tunneling اجرای یک پروتکل خارجی برروی شبکهای است که آن پروتکل را پشتیبانی نمیکند؛ برای مثال استفاده از IPv6 برروی شبکه مبتنی بر IPv4.
Web Proxies
limiting site connectivity
Transcoding
http header information filtering
تنوع پهنای باند و روش های ارتباطی
3. ذخیره سازی دیتا
ظرفیت کم
حریم خصوصی و به اشتراک گذاشتن دیتا
رمزنگاری دیتا (یا عدم آن)
ذخیره سازی ابری دیتا
منابع دیتای تقسیم شده
عکس ها
تقویم
ویدئو
ایمیل
پیام ها
اعلان ها
4. تنوع دستگاه ها و پلتفرم های متنوع سیستم عامل
یکپارچگی با App Store
API سیستم عامل
Fragmentation
سازگاری با نسل های پیشین(Backwards Compatibility)
عدم وجود استانداردهای صنعت گستر(Industry-wide)
قابلیت، ظرفیت و کارایی
وقفه ها و حوادثی که عملیات عادی را قطع می کنند.
وقفه های برنامه کاربردی
نصب، شروع به کار، اجرا، خروج، به روز شدن و حذف
وقفه های دستگاه/ سیستم عامل
تماس های ورودی
دریافت پیام ها
خاموش کردن دستگاه
بازگردانی به حالت اولیه دستگاه
درآوردن باتری
فعال شدن دوربین
قطع شدن ارتباط
بازیابی مجدد ارتباط
5. انتشارهای دائمی
با توجه به فاصله زمانی کم بین انتشار نسخه های سیستم عامل ها و برنامه های کاربردی موبایل، باید تست نیز در زمان مشخص انجام گیرد زیرا در برنامه های موبایل زمان ارائه برنامه به بازار بسیار اهمیت دارد. از جمله تست های مورد نیاز عبارتند از:
تست صحت عملکرد
تست کارایی
تست سهولت کاربری
تست امنیت
6. تست خودکار طرح بندی صفحات
بررسی نحوه بارگذاری صفحات و عکس ها در خروجی و مقایسه آن با خروجی مورد انتظار. این عمل باید در مرورگرها، نسخه های مختلف سیستم عامل و دستگاه های مختلف موبایل انجام شود و لذا نیاز به خودکارسازی این نوع تست می باشد.
7. چالش خودکارسازی تست با ابزارهای استاندارد نشده
خودکارسازی تست موبایل در حال تحول است و ابزارهای موجود در بازار تنوع زیادی دارند. خودکارسازی راهکارهایی که برروی همه پلتفرم ها، سیستم عامل ها و دستگاه ها اجرا شوند، نیاز امروزه صنعت است. انتخاب صحیح ابزار و ایجاد یک چارچوب قوی یکی از چالش های این زمینه است.
8. کوتاهی زمان تحویل به بازار
کوتاهی زمان تحویل به بازار باعث کوتاهی زمان موجود برای تست شده است.
9. تنوع برنامه های مختلف موبایل
برنامه های کاربردی سنتی(Traditional) تحت مرورگر
وب سایت های موبایلی
برنامه های وب موبایلی
برنامه های Native: برای خانواده های خاصی از موبایل ها طراحی شده اند. برای تست این برنامه ها نیاز به همان خانواده از دستگاه خاص و یا سیمولاتور آن دستگاه می باشد.
برنامه هایHybrid : این برنامه ها برای هندل کردن تفاوت های خاص پلتفرم ها از یک کتابخانه و یا چارچوب استفاده می کنند. قابلیت حمل آنها از برنامه های Native بیشتر است ولی همچنان به قابلیت های خاص دستگاه دسترسی دارند و اغلب به یک وب سرور وابسته هستند.
10. سخت افزار
وضوح صفحه
اندازه
شفافیت
افقی یا عمودی بودن (Portrait vs. Landscape)
بلوتوث / NFC
دوربین
میزان شارژ موجود باطری
بلندگو/ میکروفون
چراغ قوه
شتاب سنج(Accelerometer)
قطب نما
صفحه لمسی
ورودی تک لمسی
ورودی چند لمسی
صفحه کلید مجازی
ورودی های چندگانه هم زمان(Multiple Inputs Simultaneously)
ورودی های فیزیکی
Keypads
Track Ball
GPS / Location Services
مصرف انرژی
مصرف حافظه
راه اندازی، پس زمینه، رو زمینه و خروج(Launch, Background, Foreground, Exit)
برنامه های همزمان
Memory Sweeping
11. امنیت
رمزنگاری
دیتای موجود در موبایل (عکس، فیلم و ...)
روی دستگاه
روی سرورهای Middle-Tier
روی دیتابیس ها
محتویات Cache شده
دیتای در حال انتقال (مکالمات، پیام ها و ...)
حریم خصوصی
مجوزهای برنامه کاربردی
یکپارچگی با برنامه های کاربردی ثالث
تنظیمات امن قابل پیکربندی توسط کاربر
سیتم عامل ها
میان افزار
خطاهای بحرانی
منقضی شدن (به روز رسانی نشدن)
پشتیبانی
شبکه
عدم وجود Firewall ها
برخی از ابزارها، اتصالات اینترنتی را محدود می کنند.
کانال های ارتباطی نا امن
مد کشف بلوتوث
شبکه های نا امن
Modification های ناخواسته، Jail Breaking, Rooting
راه حل های رویارویی با چالش ها
1. راه حل رویارویی با چالش انتظارات کاربران
به منظور افزایش رضایت مشتریان کارهای زیر باید انجام شود:
اطلاعات کاربران را گردآوری کنید.
به مجموعه ای از اطلاعات کاربران اعم از جنسیت، بازه سنی، شغل و غیره که در طراحی رابط کاربری اپلیکیشن موثر هستند persona می گویند، persona ها را ایجاد کنید.
از persona ها هنگام تست استفاده کنید.
از مشتری ها برای تست سهولت کاربری کمک بگیرید.
با مشتری ها درباره محصولتان مصاحبه کنید.
از مشتری ها به عنوان تست کننده beta دعوت کنید.
نظرات app store ها (برای مثال Apple Store, Google Play) را کنترل کنید و از نظرات سازنده بهره بگیرید.
2. راه حل مواجه با چالش تنوع زیاد دستگاه های موبایل
یکی از راهکارهای مواجه با تنوع زیاد دستگاه های موبایل، دسته بندی کردن موبایل های مورد تست است. اگر دستگاه ها دسته بندی شوند از هر گروه میتوان تنها تعدادی (ا الی 3 مورد) را تست کرد که این امر از حجم کار تست میکاهد.
گروه اول (اولویت الف):
دستگاه های رده بالا
CPU حداقل چهار هسته ای
RAM بیشتر از 2.04 مگابایت
سایز صفحه نمایش بزرگتر از 5 اینچ
صفحه نمایش Full HD، Retina یا با کیفیت تر
آخرین سیستم عامل موجود برای دستگاه
گروه دوم (اولویت ب):
دستگاه های میان رده
CPU دو هسته ای
RAM کمتر از 2.04 مگابایت
سایز صفحه نمایش کوچکتر از 5 اینچ
بدون صفحه نمایش تمام HD، Retina
نرم افزار با کمتر از یک سال قدمت
گروه سوم (اولویت ج):
دستگاه های کند
CPU یک هسته ای
RAM کمتر از 1.024مگابایت
سایز صفحه نمایش کوچکتر از 4 اینچ
صفحه نمایش با رزولوشن پایین
سیستم عامل با بیش از یک سال قدمت
شما باید معیارهای هرگروه را به صورت دوره ای چک کرده تا از پوشش دهی هر گروه طبق نظرات مشتریان مطمئن باشید. به کمک دسته بندی، راحتتر می توان مشکل تنوع زیاد دستگاه های موبایل را حل نموده و دستگاه درست را برای تست کردن در اختیار داشت.
3. راه حل رویارویی با چالش های سخت افزاری ، سیستم عامل و تفاوت انواع برنامه های موبایل و امنیت
بر اساس پروژه برنامه موبایل ممکن است به تعداد زیادی دستگاه برای تست کردن نیاز داشت که البته تامین آن پرهزینه و زمان بر خواهد بود. یک راه حل خوب برای خریدن همهی دستگاه های تست مورد نیاز، اجاره کردن آنهاست. شما می توانید از آزمایشگاه های موبایل و یا دستگاه های ابری برای اجاره دستگاه های مورد نیاز تست خود استفاده کنید. قبل از اجاره کردن دستگاه های تست، دسته بندی آنها را مدنظر قرار داده تا از حجم دستگاه های مجازی و فیزیکی مورد نیاز تست کاسته شود.
سیمولاتور (شبیه ساز)
سیمولاتور برنامه ای است که برخی جنبه های دستگاه را شبیه سازی می کند. سیمولاتور از سخت افزار خود دستگاه تقلید نمی کند و ممکن است همه واکنش ها و فعالیت های دستگاه را شبیه سازی نکند. سیمولاتورها بعضی اوقات توسط کارخانه سازنده دستگاه به منظور کمک به توسعه دهندگان، در کار تست، تهیه می شوند. هنگامی که یک دستگاه محبوبیت داشته باشد و در نتیجه برنامه های کاربردی بیشتری داشته باشد، کارخانه سازنده علاقه بیشتری به تهیه یک سیمولاتور خوب برای آن خواهد داشت. سیمولاتورها ضرورتا خوب و قابل اعتماد نیستند و ممکن است عرضه کننده خوبی برای دستگاه واقعی نباشند.
استفاده از سیمولاتور برای تست بار و کارایی
سیمولاتورها اغلب به منظور تولید بار و سنجش کارایی مورد استفاده قرار می گیرند. زیرا سیمولاتورها بیشتر نرم افزار هستند تا سخت افزار. به همین دلیل می توان بدون صرف هزینه زیاد، تعداد زیادی از آنها تولید کرد و از آنها اجرا گرفت. طبق روال هر تست کارایی، تست کننده باید مطمئن باشد که فعالیت به ازای سیمولاتور برابر است با فعالیت به ازای دستگاه واقعی تا بتواند گزارش های کارایی و بار را تولید کند.
ایمولاتور (تقلید کننده)
ایمولاتورها به منظور تدارک دیدن نحوه کارکرد خود دستگاه شامل نرم افزار، سخت افزار و سیستم عامل مورد استفاده قرار می گیرند. این نکته برای بعضی برنامه های کاربردی خاص که ممکن است از مولفه های خاص دستگاه مانند دوربین یا کنترل های خاص صفحه نمایش استفاده کنند، ضروری است. ایمولاتورها معمولا توسط کارخانه سازنده دستگاه نوشته می شوند با این حال ممکن است از منابع دیگری هم قابل دسترس باشند. تست یک ایمولاتور به منظور کارکرد صحیح، بدون شناخت داخلی از دستگاه واقعی سخت است. اگر قرار است از یک ایمولاتور استفاده شود، تست کننده باید از قابل اعتماد بودن منبع تهیه آن و تست شدن آن مطمئن باشد.
ابر
تعدادی راه حل ابری (Cloud) نیز برای تست کردن برنامه های کاربردی موبایل وجود دارد که شامل موارد زیر است :
Cloud hosted appliances: دستگاه هایی در ابر وجود دارند که می توانند به صورت دستی یا خودکارسازی شده قابل دسترس باشند. بدین وسیله می توان به انواع مختلف دستگاه ها دسترسی پیدا کرد. این دستگاه ها برای تست های کارکردی، کارایی و سهولت کاربری میتوانند مورد استفاده قرار بگیرند.
Cloud hosted agents: نرم افزارها میتوانند در ابرهایی که کاربرانی از نقاط مختلف جهان را شبیه سازی می کنند اجرا شوند. این قابلیت به یک سایت اجازه سنجش اتفاقات رخ داده در پس زمینه را وقتی که تعداد زیادی از کاربران دستگاه های موبایل با انواع شبکه های مختلف از برنامه کاربردی استفاده می کنند، فراهم می سازد. این کار بعضی اوقات توسط سیمولاتورهای داخل ابر و بعضی وقت ها توسط دستگاه های واقعی داخل ابر انجام می شود.
Cloud network simulators: هنگام تست کردن در داخل ابر، سیمولاتورهای شبکه برای شبیه سازی پیکربندی های شبکه های گوناگون، سرعت و شرایط خطا مورد استفاده قرار می گیرند. این قابلیت امکان ایجاد یک محیط واقعی تست با شبکه های مختلف را فراهم می آورد.
Cloud protocol simulators: از آنجایی که دستگاه های مختلف ممکن است با پروتکل های متفاوتی با یکدیگر در ارتباط باشند، سیمولاتورهای پروتکل می توانند برای شبیه سازی این پروتکل ها استفاده شوند. این کار به یک سازمان اجازه تست برنامه های کاربردی با انواعی از پروتکل ها و یا تست کارایی در بین پروتکل های مختلف را فراهم می کند.
در هر راهکار ابری برای تست کردن باید قابلیت اعتماد محیط ابری، رئالیسم محیط و دسترسی پذیری در نظر گرفته شود. علاوه بر این برخی ملاحظات امنیتی برای استفاده از محیط ابری جهت تست کردن خصوصا برای تست برنامه های کاربردی نوآورانه و دستگاه ها، وجود دارد.
4. راه حل رویارویی با چالش انتشارهای دائمی
تست کننده های برنامه های موبایل بیش از هر چیزی با مشکل کمبود زمان برای تست کامل محصول در زمان مشخص شده مواجه هستند. تاخیر درزمان تحویل نرم افزار موجب از دست رفتن بازار و خسارات دیگری می شود. بنابراین برای تحویل به موقع محصول لازم است یا تست کننده کار بیشتری انجام دهد و یا منابع بیشتری به سیستم اضافه شود. بهترین راه حل رویارویی با چالش انتشارهای دائمی، خودکارسازی تست است. به کمک خودکار سازی تست می توان در زمان و هزینه صرفه جویی کرد. برای اطلاعات بیشتر در مورد ابزارهای خودکارسازی تست به بخش ابزارهای تست شرکت مهندس پیشگان مراجعه گردد.
5. راه حل رویارویی با چالش امنیت تست
جهت تست موثر و انتشار برنامه باید برنامه ریزی داشت. برای بررسی مسائل امنیتی برنامه های کاربردی و دستگاه ها، استفاده از ابرهای محرمانه امن تر از استفاده از ابرهای عمومی است. یک ابر خصوصی امن می تواند تمام دسترسی های لازم برای تیم تست را فراهم سازد طوریکه هیچ نقض داده ای صورت نگیرد.
6. معرفی ابزارهای تست برنامه های کاربردی موبایل
در جدول زیر اطلاعات کاملی از ابزارهای تست برنامه های موبایل ارائه شده است. برای اطلاعات بیشتر در مورد ابزارهای خودکار سازی تست، به بخش ابزارهای تست شرکت مهندس پیشگان گردد.
شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه تست موبایل ارائه می دهد:
تست عملکردی نرم افزارهای تحت موبایل
تست پرفورمنس (تست بار و فشار) نرم افزارهای تحت موبایل
تست امنیت و نفوذ برای نرم افزارهای تحت موبایل
برون سپاری تست نرم افزارهای تحت موبایل
ارائه مشاوره در حوزه تست موبایل
ارائه استاندارد، متدولوژی، ابزار و چک-لیست در حوزه تست موبایل
تهیه و آموزش ابزار Ranorex برای تست عملکردی برنامه های موبایل
تهیه و آموزش ابزار WPLT برای تست کارایی سمت سرور نرم افزارهای موبایل
تهیه و آموزش ابزار WebInspect برای تست نفوذ سمت سرور نرم افزارهای موبایل
بررسی کیفیت و امنیت برنامه های موبایل از طریق ابزارهای تحلیل ایستا (مرور سورس کد) همچون Checkmarx
مانیتور کردن سرویس دهنده های موبایل از طریق ابزارهای مدیریت کارایی همچون AppDynamics
نویسنده : شرکت مهندس پیشگان آزمون افزار یاس
مراجع
[1]-Henry Muccini, Antonio Di Francesco, Patrizio Esposito, Software testing of mobile applications: Challenges and future research directions, Automation of Software Test (AST), 2012 7th International Workshop on
[2]-Testing Strategies and Tactics for Mobile Applications
[3]- The art of application performance testing 2nd edition
[4]-MOBILE TEST AUTOMATION - RIGHT TOOLS AND RIGHT APPROACH
[5]-Tushar Pradhan, Mobile application testing, white paper, Copyright © 2011 Tata Consultancy Services Limited