Firebase Test Lab হল Google-এর একটি ক্লাউড সার্ভিস যা Google ডেটা সেন্টারে অবস্থিত বাস্তব ডিভাইসে মোবাইল অ্যাপ্লিকেশনের স্বয়ংক্রিয় পরীক্ষার জন্য। Test Lab আপনাকে Android এবং iOS-এর বিভিন্ন সংস্করণ সহ শত শত ডিভাইস কনফিগারেশনে ইন্সট্রুমেন্টেশন টেস্ট, স্ক্রিনশট টেস্ট এবং রোবট টেস্ট চালানোর অনুমতি দেয়, নিজের ডিভাইস ফার্ম রক্ষণাবেক্ষণের প্রয়োজন ছাড়াই। Firebase Documentation, 2026 অনুসারে, Firebase রোবট টেস্টিং স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনের সকল স্ক্রিনের মধ্য দিয়ে যায়, টেস্ট কোডের একটি লাইনও না লিখে ক্র্যাশ, ANR এবং UI সমস্যা সনাক্ত করে। সার্ভিসটি CI/CD সিস্টেমের সাথে ইন্টিগ্রেশন সমর্থন করে এবং ভিডিও ও লগ সহ বিস্তারিত রিপোর্ট প্রদান করে।
মূল পয়েন্ট
Firebase Test Lab হল Google-এর ক্লাউড ইনফ্রাস্ট্রাকচার যা Google-এর বিশ্বব্যাপী ডেটা সেন্টারে অবস্থিত ফিজিক্যাল ডিভাইসে মোবাইল অ্যাপ্লিকেশনের স্বয়ংক্রিয় পরীক্ষার জন্য। স্থানীয় মেশিনে ইমুলেটরের বিপরীতে, Test Lab বিভিন্ন অপারেটিং সিস্টেম সংস্করণ, স্ক্রিন রেজোলিউশন, RAM আকার এবং API স্তর সহ বাস্তব Android ডিভাইস এবং iOS ডিভাইসে পরীক্ষা চালায়। সার্ভিসটি স্বয়ংক্রিয়ভাবে পরীক্ষার ফলাফল প্রক্রিয়া করে, নির্বাহ ভিডিও, ধাপের স্ক্রিনশট এবং বিস্তারিত লগ প্রদান করে।
নিজের ডিভাইস ফার্ম রক্ষণাবেক্ষণের জন্য ফিজিক্যাল ডিভাইস ক্রয় এবং রক্ষণাবেক্ষণে উল্লেখযোগ্য মূলধন ব্যয় প্রয়োজন। Firebase Test Lab Spark প্ল্যানে বিনামূল্যের সীমা সহ পে-পার-ইউজ ভিত্তিতে হাজার হাজার ডিভাইসে অ্যাক্সেস প্রদান করে। Test Lab স্বয়ংক্রিয়ভাবে ডিভাইস পুলকে বর্তমান মডেলগুলিতে আপডেট করে, যার মধ্যে সর্বশেষ ফ্ল্যাগশিপ Google Pixel, Samsung Galaxy, Xiaomi এবং iPhone অন্তর্ভুক্ত। পরীক্ষাগুলি একাধিক ডিভাইসে সমান্তরালভাবে চলে, যা অ্যাপ্লিকেশন যাচাইয়ের মোট সময় কমিয়ে দেয়।
Android-এর জন্য, Test Lab API স্তর 21 থেকে সর্বশেষ স্থিতিশীল Android সংস্করণ পর্যন্ত ডিভাইসে পরীক্ষা সমর্থন করে। iOS সমর্থন-এর মধ্যে iOS সংস্করণ 15 থেকে সর্বশেষ স্থিতিশীল সংস্করণ পর্যন্ত বাস্তব iPhone এবং iPad ডিভাইস অন্তর্ভুক্ত। iOS-এর জন্য রোবট টেস্টিং এবং XCTest উপলব্ধ। প্রতিটি পরীক্ষা ফিজিক্যাল ডিভাইস বা ইমুলেটরে চালানো যেতে পারে — সবচেয়ে নির্ভুল ফলাফলের জন্য, Google ফিজিক্যাল ডিভাইস ব্যবহারের সুপারিশ করে কারণ তারা সেন্সর, ক্যামেরা এবং নেটওয়ার্ক ইন্টারফেসের সমস্যা প্রকাশ করে।
Firebase Test Lab বিভিন্ন ধরনের পরীক্ষা সমর্থন করে, প্রতিটি ডেভেলপমেন্ট চক্রে নিজস্ব কাজ সমাধান করে: দ্রুত স্থিতিশীলতা যাচাইয়ের জন্য রোবট টেস্ট, কার্যকরী যাচাইয়ের জন্য ইন্সট্রুমেন্টেশন টেস্ট এবং ভিজুয়াল রিগ্রেশন সনাক্ত করার জন্য স্ক্রিনশট টেস্ট। পরীক্ষার ধরনের পছন্দ ডেভেলপমেন্টের পর্যায় এবং নির্দিষ্ট রানের লক্ষ্যের উপর নির্ভর করে।
রোবট টেস্ট হল Firebase Test Lab-এর একটি অনন্য বৈশিষ্ট্য যার জন্য টেস্ট কোড লেখার প্রয়োজন হয় না। Firebase Crawler স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন অন্বেষণ করে: সমস্ত ইন্টারেক্টিভ UI এলিমেন্ট খুঁজে বের করে, সেগুলিতে ক্লিক করে, টেস্ট ডেটা দিয়ে ফর্ম পূরণ করে, স্ক্রিনের মধ্যে নেভিগেট করে এবং যেকোনো ব্যর্থতা (ক্র্যাশ, ANR, ব্যতিক্রম) রেকর্ড করে। রোবট টেস্ট টেস্ট কোডের একটি লাইন ছাড়াই 80% পর্যন্ত গুরুত্বপূর্ণ বাগ শনাক্ত করে, যা ডেভেলপমেন্টের প্রাথমিক পর্যায়ে অ্যাপ্লিকেশনের মৌলিক স্থিতিশীলতা মূল্যায়নের জন্য তাদের আদর্শ হাতিয়ার করে তোলে।
ইন্সট্রুমেন্টেশন টেস্ট হল ডেভেলপার দ্বারা Espresso (Android) বা XCTest (iOS) ফ্রেমওয়ার্ক ব্যবহার করে লেখা পরীক্ষা। Test Lab টার্গেট ডিভাইসে টেস্টসহ APK চালায় এবং নির্বাহের ফলাফল সংগ্রহ করে। পরীক্ষাগুলি সহজ (এলিমেন্ট ডিসপ্লে যাচাই) বা জটিল (এন্ড-টু-এন্ড দৃশ্যকল্প: লগইন, কার্টে যোগ, চেকআউট) হতে পারে। Firebase Test Lab একে অপরের থেকে পরীক্ষা আলাদা করার জন্য Android Test Orchestrator সমর্থন করে, যা একটি ব্যর্থ পরীক্ষাকে অন্যদের প্রভাবিত করতে বাধা দেয়।
স্ক্রিনশট টেস্ট অ্যাপ্লিকেশনে ভিজুয়াল রিগ্রেশন শনাক্ত করতে ব্যবহৃত হয়। Game loop একটি বিশেষ পরীক্ষার ধরন যা intent-এর মাধ্যমে অ্যাপ্লিকেশনে দৃশ্যকল্পের একটি তালিকা পাঠায়, এবং অ্যাপ্লিকেশনকে এই দৃশ্যকল্পগুলি নির্বাহ করতে হবে এবং মূল স্ক্রিনের স্ক্রিনশট নিতে হবে। Test Lab ম্যাট্রিক্সের সকল ডিভাইস থেকে স্ক্রিনশট সংগ্রহ করে এবং পার্থক্য শনাক্ত করতে রেফারেন্স ইমেজের সাথে তুলনা করার অনুমতি দেয়। এই পরীক্ষার ধরনটি বিভিন্ন GPU-তে রেন্ডারিং যাচাইয়ের জন্য গেমিং অ্যাপ্লিকেশনে বিশেষভাবে জনপ্রিয়।
| পরীক্ষার ধরন | কোড | কী যাচাই করে | কখন ব্যবহার করবেন |
|---|---|---|---|
| রোবট টেস্ট | প্রয়োজন নেই | ক্র্যাশ, ANR, ব্যতিক্রম | দ্রুত স্থিতিশীলতা যাচাই |
| ইন্সট্রুমেন্টেশন | Espresso / XCTest | দৃশ্যকল্প কার্যকারিতা | রিগ্রেশন টেস্টিং |
| স্ক্রিনশট টেস্ট | Game loop | ভিজুয়াল রিগ্রেশন | বিভিন্ন ডিভাইসে UI যাচাই |
টেস্টিং ম্যাট্রিক্স Firebase Test Lab-এ ডিভাইস কনফিগারেশনের একটি সেট যা নির্বাচিত পরীক্ষা নির্বাহ করা হয়। প্রতিটি কনফিগারেশনে ডিভাইস মডেল, OS সংস্করণ, স্ক্রিন ওরিয়েন্টেশন (পোর্ট্রেট/ল্যান্ডস্কেপ) এবং আঞ্চলিক সেটিংস (লোকেল, ভাষা) অন্তর্ভুক্ত। পরীক্ষাটি সমস্ত নির্বাচিত কনফিগারেশনে সমান্তরালভাবে চলে, যা প্রতিটি ডিভাইসে ক্রমিক নির্বাহের তুলনায় মোট নির্বাহের সময় উল্লেখযোগ্যভাবে হ্রাস করে।
Google ম্যাট্রিক্সে বিভিন্ন বৈশিষ্ট্যসহ ডিভাইস অন্তর্ভুক্ত করার সুপারিশ করে: একটি ফ্ল্যাগশিপ মডেল (Google Pixel, Samsung Galaxy S), একটি বাজেট ডিভাইস (Moto G, Xiaomi Redmi), অ্যাপ্লিকেশন দ্বারা সমর্থিত ন্যূনতম API সংস্করণসহ একটি ডিভাইস। একটি অনুকূল ম্যাট্রিক্স-এ 5–10 কনফিগারেশন অন্তর্ভুক্ত থাকে যা অ্যাপ্লিকেশন দ্বারা সমর্থিত সমস্ত OS সংস্করণ কভার করে। iOS-এর জন্য, বিভিন্ন প্রজন্মের iPhone এবং iPad মডেল নির্বাচন করা হয় (যেমন, iPhone SE, iPhone 14, iPad Air) বিভিন্ন iOS সংস্করণসহ।
Test Lab স্বয়ংক্রিয়ভাবে নির্বাচিত ডিভাইসগুলিতে পরীক্ষা বিতরণ করে, প্রতিটি কনফিগারেশনে প্রতিটি পরীক্ষা চালায়। সমগ্র ম্যাট্রিক্সের নির্বাহের সময় সবচেয়ে ধীর ডিভাইসে সবচেয়ে ধীর পরীক্ষার নির্বাহের সময়ের সমান — বাকি সবগুলি সমান্তরালভাবে চলে। যদি একটি পরীক্ষা সমস্ত ডিভাইসে ব্যর্থ হয়, Test Lab সম্পদ বাঁচাতে অবশিষ্ট কনফিগারেশনগুলিতে এর নির্বাহ বন্ধ করে দেয়। ফলাফল পরীক্ষা এবং ডিভাইস অনুযায়ী গ্রুপ করা হয়, যা দ্রুত সনাক্ত করতে দেয় যে একটি ত্রুটি নির্দিষ্ট কনফিগারেশনের জন্য বিশেষ কিনা।
রোবট টেস্টিং হল Firebase Test Lab-এর একটি ফ্ল্যাগশিপ বৈশিষ্ট্য যা আপনাকে একটি টেস্টও না লিখে স্বয়ংক্রিয়ভাবে একটি অ্যাপ্লিকেশন অন্বেষণ করতে দেয়। Firebase Crawler (রোবট) অ্যাপ্লিকেশনের UI হায়ারার্কি বিশ্লেষণ করে, সমস্ত ইন্টারেক্টিভ এলিমেন্ট (বাটন, টেক্সট ফিল্ড, তালিকা, মেনু) খুঁজে বের করে এবং বাস্তব ব্যবহারকারীর আচরণ অনুকরণ করে তাদের সাথে ইন্টারঅ্যাক্ট করে। রোবট টেস্টিং ডেভেলপমেন্টের প্রাথমিক পর্যায়ে বিশেষভাবে কার্যকর, যখন টেস্টগুলি এখনও লেখা হয়নি, বা লিগ্যাসি কোড যাচাইয়ের জন্য।
রোবট টেস্ট চালানোর জন্য, কেবল Firebase Console-এ APK বা IPA আপলোড করুন এবং Robo test অপশন নির্বাচন করুন। রোবট স্বয়ংক্রিয়ভাবে প্রমাণীকরণের পিছনে লুকানো স্ক্রিনে অ্যাক্সেসের জন্য পূর্ব-কনফিগার করা ক্রেডেনশিয়াল (লগইন/পাসওয়ার্ড) এর মাধ্যমে অ্যাপ্লিকেশনে লগ ইন করতে পারে। আপনি রোবটের ধাপের সংখ্যা সীমিত করতে অন্বেষণের গভীরতা (max depth) সেট করতে পারেন, বা নির্দিষ্ট এলিমেন্ট উল্লেখ করতে পারেন যাতে রোবট অগ্রাধিকার দিয়ে ক্লিক করে।
<!-- res/xml/robo_directives.xml -->
<!-- রোবট লগইন এবং পাসওয়ার্ড ফিল্ড পূরণ করবে -->
<?xml version="1.0" encoding="utf-8"?>
<robo-directives
xmlns:android="http://schemas.android.com/apk/res/android">
<directive
android:resourceName="@id/et_email"
android:inputValue="test@example.com" />
<directive
android:resourceName="@id/et_password"
android:inputValue="password123" />
<directive
android:resourceName="@id/btn_login"
android:clickAction="CLICK" />
</robo-directives>
রোবট টেস্ট জটিল দৃশ্যকল্পের জন্য ম্যানুয়াল টেস্টিং এবং লিখিত ইন্সট্রুমেন্টেশন টেস্ট প্রতিস্থাপন করে না। রোবট ব্যবসায়িক যুক্তি যাচাই করতে পারে না: এটি ক্রমান্বয়ে সমস্ত এলিমেন্টে ক্লিক করে, কিন্তু ফলাফল সঠিক কিনা জানে না। এছাড়াও, রোবট কাস্টম ভিউ-এর সাথে ইন্টারঅ্যাক্ট করতে পারে না যা স্ট্যান্ডার্ড ViewGroup থেকে উত্তরাধিকার সূত্রে প্রাপ্ত নয় এবং WebView হ্যান্ডেল করতে পারে না। এই ক্ষেত্রে, ইন্সট্রুমেন্টেশন টেস্ট বা Game loop ব্যবহার করা উচিত।
Firebase Test Lab-এর CI/CD সিস্টেমের সাথে ইন্টিগ্রেশন আপনাকে রিপোজিটরিতে প্রতিটি push-এর সাথে স্বয়ংক্রিয়ভাবে পরীক্ষা চালাতে দেয়। Test Lab Android-এর জন্য Gradle টাস্ক এবং উভয় প্ল্যাটফর্মের জন্য Fastlane সমর্থন করে। CI/CD পাইপলাইন সেটআপের মধ্যে অ্যাপ্লিকেশন বিল্ড করা, Google Cloud Storage-এ APK/IPA আপলোড করা, Firebase CLI-এর মাধ্যমে পরীক্ষা চালানো এবং বিল্ড অবস্থা প্রদর্শনের জন্য CI সিস্টেমে ফিরে রিপোর্ট পাওয়া অন্তর্ভুক্ত।
Google Gradle-এর জন্য gcloud-test-lab প্লাগইন প্রদান করে, যা পরীক্ষা আপলোড এবং নির্বাহ স্বয়ংক্রিয় করে। assembleAndroidTest টাস্ক টেস্টসহ APK বিল্ড করে, এবং gcloud টাস্কগুলি এটি Test Lab-এ আপলোড করে এবং ম্যাট্রিক্স চালায়। পরীক্ষার ফলাফল Gradle-এ pass/fail হিসেবে ফিরে আসে, যা Gradle সমর্থন করে এমন যেকোনো CI পাইপলাইনে Test Lab ইন্টিগ্রেশন অনুমতি দেয়। প্রমাণীকরণের জন্য Test Lab অনুমতিসহ Firebase সার্ভিস অ্যাকাউন্ট ব্যবহার করা হয়।
// build.gradle (module: app)
task runTestLab() {
exec {
commandLine "gcloud", "firebase", "test", "android", "run",
"--type", "robo",
"--app", "build/outputs/apk/debug/app-debug.apk",
"--device", "model=Pixel7,version=33",
"--device", "model=GalaxyS23,version=34",
"--device", "model=RedmiNote12,version=31",
"--timeout", "15m",
"--results-dir", "firebase/test-lab/robo"
}
}
Fastlane iOS এবং Android টেস্টের সাথে ইন্টিগ্রেশনের জন্য firebase_test_lab প্লাগইন প্রদান করে। Fastlane lane বিল্ড করে, পরীক্ষা চালায় এবং ফলাফল প্রক্রিয়া করে। iOS XCTest-এর জন্য, Test Lab-এ xctestrun ফাইল প্রয়োজন, যা টেস্ট টার্গেট বিল্ড করার সময় স্বয়ংক্রিয়ভাবে তৈরি হয়। Fastlane প্রতিটি রানের পরে টেস্টিং অবস্থা সম্পর্কে টিমকে জানাতে Slack বা অন্যান্য মেসেঞ্জারে পরীক্ষার ফলাফল আপলোড করতে পারে।
পরীক্ষা সম্পন্ন হওয়ার পরে, Firebase Test Lab Firebase Console এবং gcloud CLI-এর মাধ্যমে উপলব্ধ একটি ব্যাপক রিপোর্ট প্রদান করে। রিপোর্টে একটি সংক্ষিপ্ত সারাংশ (পাস, ফেল এবং স্কিপ করা পরীক্ষার সংখ্যা), প্রতিটি ডিভাইসে প্রতিটি পরীক্ষার জন্য বিস্তারিত তথ্য, নির্বাহ ভিডিও, মূল ধাপের স্ক্রিনশট এবং ডিভাইস লগ (Android-এর জন্য logcat, iOS-এর জন্য সিস্টেম লগ) অন্তর্ভুক্ত। ব্যর্থ পরীক্ষার জন্য, সঠিক ত্রুটি অবস্থানসহ stack trace উপলব্ধ।
রোবট টেস্টের জন্য, রিপোর্ট ইন্সট্রুমেন্টেশন টেস্ট থেকে ভিন্ন: প্রতি টেস্ট কেসে pass/fail-এর পরিবর্তে, রিপোর্ট অন্বেষণ পরিসংখ্যান দেখায়। মূল মেট্রিক্স — পাওয়া এবং পরিদর্শন করা স্ক্রিনের সংখ্যা, রোবট ইন্টারঅ্যাকশনের সংখ্যা (ক্লিক, সোয়াইপ, টেক্সট ইনপুট), শনাক্ত করা ক্র্যাশ এবং ANR, এবং অ্যাপ্লিকেশনের মধ্য দিয়ে অতিক্রান্ত পথ। রোবট নির্বাহ ভিডিও আপনাকে দৃশ্যমানভাবে মূল্যায়ন করতে দেয় কোন স্ক্রিনগুলি পরীক্ষা করা হয়েছে এবং কোনটি অপরীক্ষিত রয়েছে।
পরীক্ষার ফলাফল প্রকল্পের সাথে সম্পর্কিত বাকেটে Google Cloud Storage-এ সংরক্ষিত হয়। ডেটা এক্সপোর্ট এবং বাহ্যিক বিশ্লেষণ সিস্টেমের সাথে ইন্টিগ্রেশনের জন্য উপলব্ধ। রানের মধ্যে দীর্ঘমেয়াদী স্টোরেজ এবং ফলাফল তুলনার জন্য, BigQuery এক্সপোর্ট সেটআপ করার বা প্রোগ্রাম্যাটিকভাবে ফলাফল পাওয়ার জন্য Firebase Test Lab API ব্যবহার করার সুপারিশ করা হয়। Google প্রতিটি পরীক্ষা রানের জন্য ফলাফলের সম্পূর্ণ সেটসহ ZIP আর্কাইভ ডাউনলোড করার ক্ষমতা প্রদান করে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Spark প্ল্যান-এ প্রতিদিন 10টি Robo টেস্ট এবং মাসে 5 ঘন্টা ইন্সট্রুমেন্টেশন টেস্ট বিনামূল্যে অন্তর্ভুক্ত। Blaze প্ল্যান সময় অনুযায়ী বিল করে: Robo টেস্টের জন্য ~1 USD প্রতি ডিভাইস-ঘন্টা এবং ইন্সট্রুমেন্টেশন টেস্টের জন্য ~5 USD। সঠিক খরচ অঞ্চল এবং ডিভাইসের ধরনের উপর নির্ভর করে।
ফিজিক্যাল ডিভাইস বেশি নির্ভুল ফলাফল দেয়, যার মধ্যে সেন্সর, ক্যামেরা, GPS, ব্লুটুথ এবং বাস্তব পারফরম্যান্সের সমস্যা অন্তর্ভুক্ত। ইমুলেটর দ্রুত শুরু হয় এবং সস্তা, কিন্তু হার্ডওয়্যার বৈশিষ্ট্যসংক্রান্ত সমস্যা প্রকাশ করে না। Google রিলিজ-পূর্ব পরীক্ষার জন্য ফিজিক্যাল ডিভাইস সুপারিশ করে।
ইনপুট ফিল্ড (লগইন, পাসওয়ার্ড) এবং ক্লিক করার বাটনসহ একটি XML ফাইল robo_directives.xml তৈরি করুন। Firebase Console বা CLI-এর মাধ্যমে পরীক্ষা শুরু করার সময় ফাইলটি APK-সহ আপলোড করুন। রোবট অন্বেষণ শুরু করার আগে নির্দিষ্ট ক্রিয়া সম্পাদন করবে।
হ্যাঁ, Firebase Test Lab 2024 সাল থেকে iOS সমর্থন করে। বাস্তব iPhone এবং iPad ডিভাইসে Robo টেস্ট (স্বয়ংক্রিয় অন্বেষণ) এবং XCTest (ইন্সট্রুমেন্টেশন টেস্ট) উপলব্ধ। আপলোডের জন্য টেস্ট টার্গেটসহ IPA ফাইল প্রয়োজন।
GitHub Actions-এ Firebase CLI ব্যবহার করুন: Service Account JSON-এর মাধ্যমে প্রমাণীকরণ সেটআপ করুন, gcloud SDK ইনস্টল করুন, APK এবং কনফিগারেশনসহ firebase test android run কমান্ড চালান। পরীক্ষার ফলাফল Firebase Console বা gcloud CLI-এর মাধ্যমে উপলব্ধ।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন