অ্যাপ টেস্ট করার এজেন্ট (Android)

অ্যাপ টেস্ট করার এজেন্ট হল টেস্ট কেস তৈরি, ম্যানেজ ও এক্সিকিউট করার এজেন্ট যা Firebase-এ Gemini দ্বারা পরিচালিত। আপনি ন্যাচারাল ল্যাঙ্গুয়েজে পরীক্ষার লক্ষ্য নির্ধারণ করেন, এবং এজেন্ট আপনার অ্যাপ বুঝতে ও নেভিগেট করতে, ব্যবহারকারীর ইন্টার‍্যাকশন সিমুলেট করতে এবং পরীক্ষার বিস্তারিত ফলাফল প্রদান করতে AI ব্যবহার করে।

অ্যাপ টেস্ট করার এজেন্ট কীভাবে আপনার ডেটা ব্যবহার করে

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

শুরু করার আগে

আপনি আগে থেকে করে না থাকলে, Firebase-এর সাথে আপনার অ্যাপ রেজিস্টার করুন।

আপনি অন্য কোনও Firebase প্রোডাক্ট ব্যবহার না করলে, আপনাকে শুধু একটি প্রোজেক্ট তৈরি করে আপনার অ্যাপ রেজিস্টার করতে হবে। আপনার অ্যাপে কোনও SDK যোগ করতে হবে না। তবে, ভবিষ্যতে আপনি অতিরিক্ত প্রোডাক্ট ব্যবহার করার সিদ্ধান্ত নিলে, Firebase কনসোল ব্যবহার করে Firebase যোগ করুন লিঙ্কে গিয়ে সবকটি ধাপ সম্পূর্ণ করতে ভুলবেন না।

একটি টেস্ট কেস তৈরি করুন

AI-নির্দেশিত টেস্ট রান করতে, অ্যাপ টেস্ট করার এজেন্ট আপনার অ্যাপের বিরুদ্ধে টেস্ট এক্সিকিউট করতে আপনার ন্যাচারাল ল্যাঙ্গুয়েজ টেস্ট কেস ব্যবহার করে।

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

দুটি উপায়ে টেস্ট কেস তৈরি করা যায়: YAML ফাইল ব্যবহার করে অথবা Firebase কনসোল ব্যবহার করে। YAML ফাইলের মাধ্যমে আপনি নিজেই টেস্ট কেস ম্যানেজ করতে পারবেন, সাধারণত ভার্সন করা সোর্স কোড রিপোজিটরিতে। বিকল্প হিসেবে, Firebase কনসোল আপনার অ্যাপ ডিস্ট্রিবিউশন ডেটার সাথে আপনার টেস্ট কেস রিমোটলি স্টোর করতে পারে।

YAML ফাইল ব্যবহার করা

নিম্নলিখিত উদাহরণে একটি 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 ব্যবহার করে সেই আইডি রেফারেন্স করে একটি পূর্বশর্ত টেস্ট কেস যোগ করতে পারেন।

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

এছাড়াও, আপনি Firebase কনসোলে আপনার টেস্ট কেস তৈরি ও ম্যানেজ করতে পারবেন। টেস্ট কেস তৈরি করতে, Firebase কনসোলের App Distribution পৃষ্ঠা খুলুন এবং নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. টেস্ট কেস ট্যাবে, নতুন টেস্ট কেস বিকল্পে ক্লিক করুন। আপনি নিজের টেস্ট কেস তৈরি করতে না চাইলে, প্রদান করা উদাহরণ টেস্ট কেস পরিবর্তন বা ব্যবহার করতে পারেন।
  2. টেস্ট কেস যোগ করুন ডায়ালগে, টেস্ট কেসের একটি নাম দিন। এটি টেস্ট শনাক্ত করতে ব্যবহার করা হয়, কিন্তু এজেন্ট এটি উপেক্ষা করে।
  3. (ঐচ্ছিক) একটি প্রয়োজনীয় টেস্ট কেস বেছে নিন যাতে মূল টেস্টের আগে রান করার জন্য সেট-আপের ধাপগুলি থাকে। প্রি-রিক্যুইজিট টেস্টে সমস্যা হলে, সম্পূর্ণ টেস্টটি ব্যর্থ হিসেবে চিহ্নিত করা হবে। টেস্টের ফলাফলে পূর্বপ্রয়োজনীয় ও মূল টেস্টের ধাপ ও ফলাফল একসাথে দেখানো হবে।
  4. অন্য একটি ধাপ যোগ করুন বোতামে ক্লিক করে, আপনার টেস্টকে একাধিক ধাপে ভাগ করার কথা বিবেচনা করুন।
  5. প্রতিটি ধাপের জন্য একটি করে লক্ষ্য সেট করুন, যাতে সেই ধাপে অ্যাপ টেস্ট করার এজেন্টকে কী করতে হবে তা বর্ণনা করা থাকে।
  6. (ঐচ্ছিক) অ্যাপ টেস্ট করার এজেন্টকে সেই ধাপ চলাকালীন আপনার অ্যাপ বুঝতে ও নেভিগেট করতে সাহায্য করার জন্য অতিরিক্ত তথ্য প্রদান করতে একটি ইঙ্গিত যোগ করুন।
  7. ধাপটি কখন সফলভাবে সম্পূর্ণ হয়েছে তা নির্ধারণ করতে অ্যাপ টেস্ট করার এজেন্টকে সাহায্য করার জন্য চূড়ান্ত স্ক্রিন অ্যাসার্শন যোগ করুন। এই অ্যাসারশন শুধুমাত্র স্ক্রিনে যা দেখা যাচ্ছে তার উল্লেখ করবে।
  8. আপনার টেস্ট কাস্টমাইজ করা হয়ে গেলে সেভ করুন বিকল্পে ক্লিক করুন।

টেস্ট কেসের উদাহরণ

অ্যাপ টেস্ট করার এজেন্ট ব্যবহার করে কীভাবে টেস্ট কেস তৈরি করতে হয় তার উদাহরণ নিচে দেওয়া হল:

পরীক্ষামূলক শীর্ষক

হোম পেজ লোড হওয়া

গোল

হোম পেজ লোড করুন

সংকেত

অনবোর্ডিং স্ক্রিন পেরিয়ে যান। যেকোনও পপ-আপ বাতিল করুন। সাইন-ইন করবেন না।

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

অ্যাপের মূল হোম পেজ স্ক্রিনে দেখা যাচ্ছে, সব ছবি লোড হয়ে গেছে এবং কোনও সমস্যা দেখা যাচ্ছে না।

টেস্ট রান করুন

আপনি কীভাবে টেস্ট কেস তৈরি ও ম্যানেজ করেন তার উপর নির্ভর করে আপনি কীভাবে টেস্ট রান করবেন। আপনি YAML ফাইল ব্যবহার করে টেস্ট কেস নির্ধারণ করলে, Firebase CLI ব্যবহার করে সেইসব টেস্ট চালাতে পারবেন। আপনি App Distribution কনসোলে টেস্ট কেস তৈরি করলে, সেগুলি কনসোল থেকে বা App Distribution CLI টুলের মাধ্যমে রান করতে হবে।

YAML ফাইল ব্যবহার করা

YAML ফাইলে উল্লেখ করা টেস্ট কেস Firebase CLI ব্যবহার করে এক্সিকিউট করা যেতে পারে।

  1. Firebase CLI-এর লেটেস্ট ভার্সন ইনস্টল বা আপডেট করুন। আপনার OS-এর জন্য নির্দিষ্ট CLI-এর জন্য স্ট্যান্ডঅ্যালোন বাইনারি ডাউনলোড করার সাজেশন আমরা দিই।
  2. সাইন-ইন করুন এবং আপনার প্রোজেক্ট অ্যাক্সেস করতে পারছেন কিনা তা পরীক্ষা করুন। মনে রাখবেন, আপনি CI এনভায়রনমেন্টে Firebase CLI ব্যবহার করলে, পরিষেবা অ্যাকাউন্ট বা login:ci ব্যবহার করেও যাচাইকরণ করতে পারবেন।
  3. apptesting:execute কমান্ড রান করুন। যেমন:

    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

প্রয়োজন: আপনার অ্যাপের Firebase অ্যাপ আইডি। আপনি Firebase কনসোলের সাধারণ সেটিংস পৃষ্ঠায় অ্যাপ আইডি খুঁজে পাবেন।

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

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

--test-devices বা
--test-devices-file

যেসব ডিভাইসে পরীক্ষা করা হবে।

আপনি সেমিকোলন দিয়ে আলাদা করা ডিভাইস স্পেসিফিকেশনের তালিকা হিসেবে টেস্ট ডিভাইস নির্দিষ্ট করতে পারেন:

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

অথবা, আপনি সেমিকোলন দিয়ে আলাদা করা ডিভাইসের স্পেসিফিকেশনের তালিকা সহ প্লেন টেক্সট ফাইলের পাথ উল্লেখ করতে পারেন:

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

আপনি gcloud CLI ব্যবহার করে উপলভ্য ডিভাইস মডেল দেখতে পারেন।

--test-username

টেস্ট চলাকালীন অটোমেটিক লগ-ইন করার জন্য ব্যবহারকারীর নাম।

--test-password বা
--test-password-file

টেস্ট চলাকালীন অটোমেটিক লগ-ইন করার জন্য পাসওয়ার্ড ব্যবহার করা হবে।

অথবা, আপনি পাসওয়ার্ড সহ প্লেন টেক্সট ফাইলের পাথ উল্লেখ করতে পারেন:

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

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

--results-bucket

একটি কাস্টম Google Cloud Storage (GCS) বাকেট যেখানে পরীক্ষার ফলাফল স্টোর করা হয়। ফাঁকা রাখলে, ডিফল্ট বাকেট ব্যবহার করা হয়। বিলিং চালু আছে এমন প্রোজেক্টের মালিকানায় বাকেট থাকতে হবে এবং বাকেট উল্লেখ করলে ব্যবহৃত স্টোরেজের জন্য বিলিং চার্জ করা হবে।

--test-file-pattern

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

--test-name-pattern

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

/path/to/app/binary

ঐচ্ছিক: আপনার অ্যাপের বাইনারির পাথ। বাদ দেওয়া হলে, এজেন্ট নির্দিষ্ট অ্যাপের জন্য App Distribution-এ আপলোড করা শেষ রিলিজ ব্যবহার করবে।

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

App Distribution-এ স্টোর করা টেস্ট কেস রান করতে, আপনি Firebase কনসোল, Firebase CLI অথবা App Distribution-এর Gradle বা fastlane প্লাগ-ইন ব্যবহার করতে পারবেন।

YAML ফাইলের মাধ্যমে টেস্ট কেস ইমপোর্ট ও এক্সপোর্ট করা

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

আপনার টেস্টের ফলাফল দেখুন

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

কোনও টেস্টে রিপ্লে করা অ্যাকশন থাকলে, আপনি আসল AI-গাইডেড টেস্ট রান দেখতে বা ক্যাশে মুছে দিতে পারবেন।

আপনার টেস্টের ফলাফল সম্পর্কে আরও জানতে, নিম্নলিখিত টেবিল ব্যবহার করুন:

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

আপনার টেস্টের ফলাফল ডিবাগ করুন

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

এছাড়াও, আপনার টেস্ট ফলাফলের জন্য সব ভিডিও, লগ ও অন্যান্য Cloud আর্টিফ্যাক্ট দেখতে, আপনি টেস্ট ফলাফল পৃষ্ঠায় আর্টিফ্যাক্ট দেখুন বোতাম ব্যবহার করতে পারেন।

পরিচিত সমস্যা ও সীমাবদ্ধতা

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

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

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

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

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

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