یکی از دغدغه های مهم در تست نرم افزار، اجرای تست بر روی تمامی پلاتفرمهای پشتیبانی شده است. کاری که به علت تکراری بودن تست و گسترگی اجرا میبایست به صورت اتوماتیک انجام شود. نرم افزارهای تحت وب به علت تنوع فراوان در محیطهای اجرا یکی از پیچیده ترین نرم افزارها برای تست به حساب میایند. این تنوع شامل موارد زیر میشود:
نرم افزار مرورگر مانند IE, Edge, FireFox, Opera, Safari, Chrome
نسخه مرورگر: با توجه به حجم توسعه بالا در زمینه وب مرورگرها مدام برای پشتیبانی از استاندارها و پروتکهای مختلف بروز میشوند. در موارد زیادی نخسه های جدیدتر رفتار نسخه های پیشین را ندارند. بطور مثال نسخه ای ممکن است فایلهای فلش را به صورت پیشفرض بارگذاری نکند با مثلا یه سری security header را نشناسد.
سیستم عامل: مهم است که مرورگر برای چه سیستم عاملی ( مثلا ویندوز، لینوکس، Mac OS، iOS یا اندروید) نوشته شده است
وضوح تصویر یا Resolution ی که قرار است برنامه وب در آن نمایش داده شود.
این تنوع یکی از چالشهای هر روز برنامه نویسان front-end و تست کننده هاست. هر چند امروز مرورگرهایی مانند Chrome میتوانند resolution های مختلف را شبیه سازی کنند ولی تست بروی مرورگرهای مختلف و مشکلتر از آن، سیستم عمل های مختلف همچنان چالشی بزرگ است.Emulator هایی مانند Android Emulator از گوگل یکی از راههای غلبه بر این پیچیدگی است ولی فراهم کردن سیستم عاملی مانند iOS یا Mac به صورت قانونی نیازمند خرید سخت افزار Apple است. این هزینه ها در صورت نیاز به پشتیبانی از نسخه های مختلف سیستم عامل ها یا تلفنهای همراه بالاتر هم میرود.
از آنچه گفته شد میتوان نتیجه گرفت تنوع محیط تست و هزینه راه اندازی و نگهداری از آن دو چالش اصلی در تست نرم افزارهای تحت وب است. در سالهای اخیر شرکتهای اینترنتی مختلفی اقدام به ارائه راه حلهایی آنلاین برای این مشکل داده اند:
آنهایی که مانند Screenfly تنها resolution مدلهای مختلف موبایل، تبلت و دسکتاپ را فراهم میکنند.
آنهایی که مانند Browserling نسخه های مختلف مرورگرها و سیستم عامل های مختلف را برای تست غیر اتوماتیک فراهم میکنند.
آنهایی که علاوه بر موارد بالا امکان تست اتوماتیک و یکپارچگی با Continuous Integration را نیز فراهم میکنند.
راه حل شرکت BrowserStack راه حلی است که جزو مورد سوم است. این شرکت که توسط مهندسان هندی در بمبئی (Mumbai) تاسیس شده است توانسته توجه شرکتهای بزرگی را به خود جلب کند. امکانات BrowserStack شامل:
تست دستی بر روی تقریباً تمامی مرورگرها و بر روی سیستم عاملهای مختلف
تست محلی یا local testing که امکان تست برنامه وب برروی سرورهای داخلی یا localhost را میدهد. این امکان کلیدی باعث میشود نرم افزار قبل از انتشار بروی سروی عمومی بر روی سرورهای تست و مهمتر از آن روی کامپیوتر خود فرد تست شود. به طور مثال میتوانید بعد از تغییری کوچک در کد جاوا اسکریپ وب و قبل از commit کردن، آن را روی localhost و بر روی نخسه های مختلف Chrome نصب شده بر نسخه های مختلف اندروید تست کنید.
پشتیبانی از تست اتوماتیک: در این حالت سرورهای BrowserStack به عنوان Selenium Server عمل کرده و کد تست نوشته شده بر روی کامپیوتر شما را بروی محیطهای دلخواه شما اجرا میکنند.
پشتیبانی از راه حلهای Continues Integration که این امکان را میدهد که تست های نوشته شده به طور اتوماتیک بعد از ارسال تغییرات در کد منبع اصلی (Main Repo) اجرا و بازخورد آن هرچه سریعتر به تیم داده شود.
امکان Online Collaboration و به اشتراک گذاری تست های انجان شده با سایر همکاران.
ضبط و آرشیو ویدئویی تست های اجرا شده جهت عیب یابی های
هرچند این راه حل برای برنامه نویسان و تست کنندهایی که سالهاست با مشکل تست بر روی محیطهای مختلف دست و پنجه نرم میکنند، به نوعی Dream comes true محسوب میشود ولی هزینه بالا یعنی 99 دلار در ماه به ازای هر نفر باعث میشود مدیران در انتخاب آن تردید زیادی داشته باشند.
برای امتحان کردن این سرویس میتوانید یک حساب رایگان باز کنید و بخصوص سری به قسمت Automate و کدهای نمونه Selenium آن بزنید.