অ্যাপ টেস্টিং এজেন্ট (অ্যান্ড্রয়েড)

অ্যাপ টেস্টিং এজেন্ট হলো Firebase -এর জেমিনি দ্বারা চালিত একটি টেস্ট কেস তৈরি, পরিচালনা এবং সম্পাদনকারী এজেন্ট। আপনি স্বাভাবিক ভাষায় পরীক্ষার লক্ষ্য নির্ধারণ করেন এবং এজেন্টটি কৃত্রিম বুদ্ধিমত্তা (AI) ব্যবহার করে আপনার অ্যাপটি বুঝতে ও পরিচালনা করতে, ব্যবহারকারীর মিথস্ক্রিয়া অনুকরণ করতে এবং বিস্তারিত পরীক্ষার ফলাফল প্রদান করতে পারে।

How App Testing agent uses your data

অ্যাপ টেস্টিং এজেন্ট Gemini in Firebase দ্বারা সরবরাহ করা হয় এবং এটি একই শর্তাবলীর অধীনে পরিচালিত হয়। Gemini in Firebase কীভাবে আপনার ডেটা ব্যবহার করে সে সম্পর্কে আরও তথ্যের জন্য, “Gemini in Firebase কীভাবে আপনার ডেটা ব্যবহার করে” দেখুন।

শুরু করার আগে

যদি আগে থেকে না করে থাকেন, তাহলে Firebase-এ আপনার অ্যাপটি নিবন্ধন করুন

আপনি যদি অন্য কোনো Firebase প্রোডাক্ট ব্যবহার না করেন, তাহলে আপনাকে শুধু একটি প্রজেক্ট তৈরি করে আপনার অ্যাপটি রেজিস্টার করতে হবে। আপনার অ্যাপে কোনো SDK যোগ করার প্রয়োজন নেই। তবে, ভবিষ্যতে যদি আপনি অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নেন, তাহলে Firebase কনসোল ব্যবহার করে ‘Add Firebase’- এর সমস্ত ধাপ অবশ্যই সম্পন্ন করবেন।

Create a test case

To run AI-guided tests, the App Testing agent uses your natural language test cases to execute tests against your app.

প্রতিটি টেস্ট কেসকে কয়েকটি ধাপে ভাগ করা হয়, যেগুলো ক্রমানুসারে সম্পাদিত হবে। ধাপগুলো আপনাকে আপনার টেস্ট কেসকে বিভিন্ন পর্যায়ে ভাগ করার সুযোগ দেয়, যার প্রতিটির নিজস্ব অ্যাসারশন থাকে। এজেন্ট যেকোনো একটি ধাপ চলাকালীন একাধিক পদক্ষেপ নিতে পারে।

টেস্ট কেস তৈরি করার দুটি উপায় আছে: একটি YAML ফাইল ব্যবহার করে অথবা ফায়ারবেস কনসোল ব্যবহার করে। YAML ফাইল আপনাকে টেস্ট কেসগুলো নিজে পরিচালনা করার সুযোগ দেয়, যা সাধারণত একটি ভার্সনযুক্ত সোর্স কোড রিপোজিটরিতে করা হয়। অন্যদিকে, ফায়ারবেস কনসোল আপনার অ্যাপ ডিস্ট্রিবিউশন ডেটার সাথে টেস্ট কেসগুলো দূরবর্তী স্থানে সংরক্ষণ করতে পারে।

Using YAML files

নিম্নলিখিত উদাহরণে একটি YAML ফাইল দেখানো হয়েছে যা দুটি টেস্ট কেস সংজ্ঞায়িত করে:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

আপনি টেস্টের গ্রুপগুলোকে একটি ফাইলে সাজাতে পারেন এবং এই টেস্ট স্যুটগুলোকে একাধিক ফাইলে আলাদা করতে পারেন। আপনি টেস্টে একটি আইডি যোগ করে এবং তারপর prerequisiteTestCaseId ব্যবহার করে সেই আইডিটিকে রেফারেন্স করে একটি প্রি-রিকুইজিট টেস্ট কেস যোগ করতে পারেন।

Using the App Distribution console

বিকল্পভাবে, আপনি ফায়ারবেস কনসোলে আপনার টেস্ট কেস তৈরি এবং পরিচালনা করতে পারেন। একটি টেস্ট কেস তৈরি করতে, Firebase কনসোলের App Distribution পৃষ্ঠাটি খুলুন এবং নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:

  1. টেস্ট কেস ট্যাবে, নতুন টেস্ট কেস- এ ক্লিক করুন। আপনি যদি নিজের টেস্ট কেস তৈরি করতে না চান, তবে প্রদত্ত উদাহরণ টেস্ট কেসটি পরিবর্তন বা ব্যবহার করতে পারেন।
  2. In the Add test case dialog, give the test case a name. This is used to identify the test, but is ignored by the agent.
  3. (ঐচ্ছিক) একটি পূর্বশর্ত টেস্ট কেস নির্বাচন করুন, যাতে মূল টেস্টের আগে চালানোর জন্য প্রস্তুতিমূলক ধাপগুলো অন্তর্ভুক্ত থাকে। যদি পূর্বশর্ত টেস্টটি ব্যর্থ হয়, তবে সম্পূর্ণ টেস্টটি ব্যর্থ হিসেবে চিহ্নিত করা হবে। পূর্বশর্ত এবং মূল টেস্টের ধাপ ও ফলাফলগুলো টেস্টের ফলাফলে একসাথে দেখানো হবে।
  4. Consider breaking your test into multiple steps, by clicking the Add another step button.
  5. প্রতিটি ধাপের জন্য একটি লক্ষ্য নির্ধারণ করুন, যা বর্ণনা করবে যে সেই ধাপে অ্যাপ টেস্টিং এজেন্টকে কী করতে হবে।
  6. (ঐচ্ছিক) একটি ইঙ্গিত যোগ করুন যা অতিরিক্ত তথ্য প্রদান করবে এবং অ্যাপ টেস্টিং এজেন্টকে ঐ ধাপে আপনার অ্যাপটি বুঝতে ও পরিচালনা করতে সাহায্য করবে।
  7. Add Final screen assertion to help the App Testing agent determine when the step has been successfully completed. This assertion should only refer to what's visible on the screen.
  8. Click Save once you're done customizing your test.

Example test case

The following is an example of how to create a test case using the App Testing agent:

Test title

Home page loads

লক্ষ্য

Load the home page

ইঙ্গিত

Navigate past any onboarding screens. Dismiss any popups. Don't sign in.

চূড়ান্ত স্ক্রিন অ্যাসারশন

The main app home page is visible on screen, all images have loaded, and no errors are displayed.

Run a test

আপনি কীভাবে আপনার টেস্টগুলো চালাবেন, তা নির্ভর করে আপনি কীভাবে আপনার টেস্ট কেসগুলো তৈরি ও পরিচালনা করেন তার ওপর। যদি আপনি YAML ফাইল ব্যবহার করে টেস্ট কেসগুলো সংজ্ঞায়িত করেন, তাহলে আপনি Firebase CLI ব্যবহার করে সেই টেস্টগুলো চালাবেন। যদি আপনি অ্যাপ ডিস্ট্রিবিউশন কনসোলে আপনার টেস্ট কেসগুলো তৈরি করেন, তাহলে আপনি সেগুলো কনসোল থেকে অথবা অ্যাপ ডিস্ট্রিবিউশন CLI টুলগুলোর কোনো একটির মাধ্যমে চালাবেন।

Using YAML files

Test cases defined in YAML files can be executed using the Firebase CLI.

  1. Install or update to the latest version of the Firebase CLI . We recommend downloading the standalone binary for the CLI specific to your OS.
  2. Sign in and test that you can access your projects. Note that if you're using the Firebase CLI in a CI environment, you can also authenticate with a service account or by using login:ci .
  3. Run the apptesting:execute command. For example:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

Required: Your app's Firebase App ID. You can find the App ID in the Firebase console, on the General Settings page.

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

যে ডিরেক্টরিতে টেস্ট কেস YAML ফাইলগুলো থাকে, তার পাথ। কমান্ডটি এই ডিরেক্টরির অধীনে রিকার্সিভলি অনুসন্ধান করবে, তাই ফাইলগুলোকে ঐচ্ছিকভাবে সাবডিরেক্টরিতে সাজানো যেতে পারে। সেট না করা থাকলে, ডিফল্টরূপে "./tests" ব্যবহৃত হয়।

--test-devices or
--test-devices-file

The devices to execute the tests on.

আপনি সেমিকোলন দ্বারা পৃথক করা ডিভাইসের স্পেসিফিকেশনের একটি তালিকা হিসাবে পরীক্ষার ডিভাইসগুলি নির্দিষ্ট করতে পারেন:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

Or, you can specify the path to a plain text file containing a semicolon-separated list of device specifications:

--test-devices-file "/path/to/test-devices.txt"

You can look up the available device models using the gcloud CLI .

--test-username

The username for automatic login to be used during the tests.

--test-password or
--test-password-file

The password for automatic login to be used during the tests.

অথবা, আপনি পাসওয়ার্ড সম্বলিত একটি প্লেইন টেক্সট ফাইলের পাথ নির্দিষ্ট করে দিতে পারেন:

--test-password-file: "/path/to/test-password.txt"
--test-non-blocking

যদি এটি সেট করা থাকে, তাহলে কমান্ডটি টেস্টগুলো শুরু করবে এবং সেগুলো সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে সাথে সাথেই রিটার্ন করবে। টেস্টের ফলাফল দেখতে, ফায়ারবেস কনসোলে যান। যদি এই ফ্ল্যাগটি সেট করা না থাকে, তাহলে টেস্টগুলো সম্পূর্ণ না হওয়া পর্যন্ত কমান্ডটি ব্লক হয়ে থাকবে এবং কোনো টেস্ট ব্যর্থ হলে একটি ফেইলর কোড দিয়ে এক্সিট করবে।

--test-file-pattern

A regular expression pattern. Only tests contained in files that match this pattern will be executed.

--test-name-pattern

একটি রেগুলার এক্সপ্রেশন প্যাটার্ন। শুধুমাত্র সেইসব টেস্টই চালানো হবে, যেগুলোর ডিসপ্লে নেম এই প্যাটার্নের সাথে মিলবে।

/path/to/app/binary

Optional: The path to your app's binary. If omitted, the agent will use the last release uploaded to App Distribution for the specified app.

App Distribution কনসোল ব্যবহার করে

To run test cases stored in App Distribution, you can use the Firebase console, the Firebase CLI, or App Distribution 's Gradle or fastlane plugins.

YAML ফাইল সহ টেস্ট কেস আমদানি ও রপ্তানি করুন

যখন আপনি Firebase কনসোলের বাইরে টেস্ট কেস পরিচালনা করতে চান, তখন YAML ফাইল থেকে টেস্ট কেস ইম্পোর্ট করা বেশ কার্যকর। প্রজেক্টের মধ্যে টেস্ট কেস স্থানান্তর করার জন্য এক্সপোর্ট করাও দরকারি হতে পারে। আপনি বিদ্যমান টেস্ট কেস পরিমার্জন করতে বা নতুন টেস্ট কেস তৈরি করতে একটি LLM ব্যবহার করতে পারেন। আপনি Firebase কনসোলের টেস্ট কেস পেজ থেকে অথবা ফায়ারবেস CLI ব্যবহার করে প্রোগ্রাম্যাটিকভাবে টেস্ট কেস ইম্পোর্ট এবং এক্সপোর্ট করতে পারেন। একটি YAML টেস্ট কেসের উদাহরণের জন্য, "একটি YAML টেস্ট কেস তৈরি করুন" দেখুন।

আপনার পরীক্ষার ফলাফল দেখুন

আপনি একটি রিলিজের অ্যাপ টেস্টিং এজেন্ট ট্যাবের রিলিজ পেজ থেকে আপনার পরীক্ষার ফলাফল দেখতে পারেন। ‘ভিউ ডিটেইলস’ বোতামটি টেস্ট রেজাল্টস ডায়ালগ খুলবে এবং আপনাকে যেকোনো সমস্যা, অ্যাপের স্ক্রিনশট এবং পরীক্ষা চলাকালীন জেমিনির নেওয়া পদক্ষেপগুলো দেখাবে।

যদি কোনো টেস্টে পুনরায় চালানো অ্যাকশন অন্তর্ভুক্ত থাকে, তাহলে আপনি মূল এআই-নির্দেশিত টেস্ট রানটি দেখতে পারেন অথবা ক্যাশে পরিষ্কার করতে পারেন।

আপনার পরীক্ষার ফলাফল সম্পর্কে আরও জানতে নিচের সারণিটি ব্যবহার করুন:

আইকন নাম বর্ণনা
স্ফুলিঙ্গ এআই অ্যাকশন এটি নির্দেশ করে যে অ্যাপ টেস্টিং এজেন্ট কোনো পদক্ষেপ নিতে বা ধাপটি শেষ করতে জেমিনি ব্যবহার করেছেন।
পুনরায় প্লে করুন পুনরায় দেখানো অ্যাকশন এটি নির্দেশ করে যে অ্যাপ টেস্টিং এজেন্ট পরীক্ষার পূর্ববর্তী একটি সফল রান থেকে কোনো একটি অ্যাকশন পুনরায় চালিয়েছে।
স্ফুলিঙ্গ এআই দাবি এটি নির্দেশ করে যে, অ্যাপ টেস্টিং এজেন্ট একই পরীক্ষার পূর্ববর্তী একটি সফল রানের অ্যাকশনগুলো পুনরায় চালানোর পর, একটি চূড়ান্ত স্ক্রিন অ্যাসারশন যাচাই করার জন্য জেমিনি ব্যবহার করেছে।

আপনার পরীক্ষার ফলাফল ডিবাগ করুন

আপনার পরীক্ষার ফলাফল প্রত্যাশার চেয়ে ভিন্ন হলে, আপনি 'টেস্ট রেজাল্টস' পৃষ্ঠার ' ভিউ ডিটেইলস' -এর অধীনে থাকা 'শো এজেন্ট ভিউ' টগলটি ব্যবহার করে আপনার পরীক্ষাটি ডিবাগ করতে পারেন। এজেন্ট ভিউ আপনাকে স্ক্রিনের সেইসব উপাদান দেখায়, যা অ্যাপের অ্যাক্সেসিবিলিটি তথ্য ব্যবহার করে অ্যাপ টেস্টিং এজেন্ট শনাক্ত করতে সক্ষম হয়েছে। এজেন্ট কী দেখেছে তা যদি আপনি আরও ভালোভাবে দেখতে চান, তবে আপনি অ্যাকশন ওভারফ্লো মেনু থেকে সেই তথ্য ডাউনলোড করতে পারেন।

এছাড়াও, আপনার পরীক্ষার ফলাফলের সমস্ত ভিডিও, লগ এবং অন্যান্য ক্লাউড আর্টিফ্যাক্ট দেখার জন্য আপনি টেস্ট রেজাল্টস পেজে থাকা ‘ভিউ আর্টিফ্যাক্টস’ বাটনটি ব্যবহার করতে পারেন।

জ্ঞাত সমস্যা এবং সীমাবদ্ধতা

অ্যাপ টেস্টিং এজেন্ট প্রিভিউটির কিছু জ্ঞাত সীমাবদ্ধতা রয়েছে:

  • এআই-নির্দেশিত টেস্টগুলোর জন্য ৫ মিনিটের একটি টাইমআউট থাকে। টেস্ট শুরু হওয়ার পর সেটিকে অবশ্যই এই সময়ের মধ্যে সফল হতে হবে, অন্যথায় এটি সময়ের আগেই শেষ হয়ে যাবে এবং টেস্টটি ব্যর্থ হিসেবে গণ্য হবে।
  • যেহেতু অ্যাপ টেস্টিং এজেন্ট আপনার অ্যাপ পরীক্ষা করার জন্য জেনারেটিভ এআই ব্যবহার করে, তাই এটি একই নির্দেশাবলী অনুসরণ করার পরেও মাঝে মাঝে ভিন্ন ভিন্ন পদক্ষেপ নিতে পারে।
  • অ্যাপ টেস্টিং এজেন্ট শুধুমাত্র নিম্নলিখিত অ্যাকশনগুলো সমর্থন করে: ট্যাপ, টেক্সট প্রবেশ করানো, উপরে/নিচে/বামে/ডানে সোয়াইপ করা, লং প্রেস, ড্র্যাগ-অ্যান্ড-ড্রপ, ব্যাক এবং অপেক্ষা করা।
  • অ্যাপ টেস্টিং এজেন্ট এমন টেস্ট সম্পাদন করতে সমস্যায় পড়ে, যেগুলিতে কেবল একটি ধাপ থাকে এবং তা সম্পন্ন করতে অনেকগুলো পদক্ষেপ নিতে হয়। জটিল কাজগুলোকে একাধিক ছোট ছোট ধাপে ভাগ করে নিলে এটি আরও ভালোভাবে কাজ করে।
  • অ্যাপ টেস্টিং এজেন্ট মাঝে মাঝে স্ক্রিনের বাইরের অন্যান্য এলিমেন্ট দেখানোর জন্য স্ক্রল করে না। যখন স্ক্রল করার যোগ্যতার কোনো ভিজ্যুয়াল ইঙ্গিত থাকে না, তখন এটি প্রায়শই ঘটে। এর একটি বিকল্প সমাধান হিসেবে, স্ক্রল করার পরামর্শ দিতে 'হিন্টস' ফিল্ডটি ব্যবহার করা যেতে পারে।
  • অ্যাপ টেস্টিং এজেন্টের মাঝে মাঝে গণনা করতে সমস্যা হয়, যেমন কোনো একটি কাজ একটি নির্দিষ্ট সংখ্যক বার সম্পাদন করার ক্ষেত্রে।
  • FLAG_SECURE সক্রিয় থাকলে অ্যাপ টেস্টিং এজেন্ট আপনার অ্যাপে নেভিগেট করতে পারবে না। আপনার অ্যাপের স্ক্রিনশটের পরিবর্তে, এটি কেবল একটি ফাঁকা স্ক্রিন দেখতে পাবে।

পরীক্ষার কোটা

প্রিভিউ চলাকালীন, একটি কোটা সীমার মধ্যে এআই-নির্দেশিত পরীক্ষাগুলো বিনামূল্যে করার সুযোগ দেওয়া হবে। প্রতিটি ফায়ারবেস প্রজেক্টের জন্য প্রতি মাসে ডিফল্ট কোটা সীমা হলো ২০০টি পরীক্ষা।

মনে রাখবেন, আপনি যদি একাধিক ডিভাইসে একাধিক টেস্ট কেস বা একই টেস্ট কেস চালান, তবে তা একাধিক টেস্ট হিসেবে গণ্য হবে। উদাহরণস্বরূপ, আপনি যদি ২টি ডিভাইসে ২টি টেস্ট কেস চালান, তবে তা মোট ৪টি টেস্ট হিসেবে গণ্য হবে।

ডিফল্ট সীমার উপরে আপনার কোটা বাড়াতে, আপনার ব্যবহারের ক্ষেত্রটি উল্লেখ করে ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করুন।