পরীক্ষা অ্যাপ ডেভেলপমেন্ট প্রক্রিয়ার একটি অবিচ্ছেদ্য অংশ। আপনি সাধারণত একটি এমুলেটর বা ডিভাইসে অ্যাপ্লিকেশনগুলি চালান যাতে আপনার কোডটি প্রত্যাশিতভাবে কাজ করে তা ম্যানুয়ালি যাচাই করতে। যাইহোক, ম্যানুয়াল টেস্টিং সময়সাপেক্ষ, ত্রুটির জন্য সংবেদনশীল এবং প্রায়শই বিভিন্ন আকারের স্ক্রীন এবং ডিভাইসে চলা অ্যাপগুলির জন্য নিয়ন্ত্রণ করা যায় না। ম্যানুয়াল পরীক্ষার সমস্যাগুলি প্রায়শই বিকাশের জন্য একটি একক ডিভাইস ব্যবহারের ফলাফল। ফলস্বরূপ, বিভিন্ন ফর্ম ফ্যাক্টর সহ অন্যান্য ডিভাইসে ত্রুটিগুলি অলক্ষিত হতে পারে৷
বিভিন্ন উইন্ডো এবং স্ক্রিনের আকারে রিগ্রেশন সনাক্ত করতে, আপনার অ্যাপের আচরণ এবং চেহারা বিভিন্ন ফর্মের কারণগুলির মধ্যে সামঞ্জস্যপূর্ণ তা যাচাই করতে স্বয়ংক্রিয় পরীক্ষাগুলি প্রয়োগ করুন৷ স্বয়ংক্রিয় পরীক্ষাগুলি প্রথম দিকে সমস্যাগুলি সনাক্ত করে, ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করে এমন সমস্যার ঝুঁকি হ্রাস করে।
কি পরীক্ষা করতে হবে
বিভিন্ন স্ক্রীন এবং উইন্ডো আকারের জন্য তৈরি UI তৈরি করার সময়, দুটি দিকে বিশেষ মনোযোগ দিন:
- বিভিন্ন আকারের উইন্ডোতে উপাদান এবং লেআউটগুলির ভিজ্যুয়াল বৈশিষ্ট্যগুলি কীভাবে আলাদা
- কনফিগারেশন পরিবর্তন জুড়ে রাষ্ট্র কিভাবে সংরক্ষিত হয়
চাক্ষুষ বৈশিষ্ট্য
আপনি বিভিন্ন উইন্ডো আকারের জন্য UI কাস্টমাইজ করুন বা না করুন, আপনার যাচাই করা উচিত যে UI গুলি সঠিকভাবে প্রদর্শিত হয়েছে৷ কমপ্যাক্ট, মাঝারি এবং প্রসারিত প্রস্থ এবং উচ্চতা বিবেচনা করুন। প্রস্তাবিত ব্রেকপয়েন্টগুলির জন্য উইন্ডো আকারের ক্লাসগুলি দেখুন।
![](https://developer.android.com/static/images/training/testing/different-screens/nia_sizes.png?authuser=4&hl=bn)
এছাড়াও, আপনার অ্যাপটি আপনার ডিজাইন সিস্টেমে কিছু উপাদান রেন্ডার নাও করতে পারে যখন তাদের আকারের সীমাবদ্ধতা প্রসারিত হয়।
যদি আপনার অ্যাপে বিভিন্ন উইন্ডো আকারের জন্য অভিযোজিত বিন্যাস থাকে, তাহলে রিগ্রেশন প্রতিরোধ করতে আপনার স্বয়ংক্রিয় পরীক্ষা থাকা উচিত। উদাহরণস্বরূপ, একটি ফোনে একটি মার্জিন ঠিক করার ফলে একটি ট্যাবলেটে লেআউটের অসঙ্গতি দেখা দিতে পারে৷ আপনার লেআউট এবং উপাদানগুলির আচরণ যাচাই করতে UI পরীক্ষা তৈরি করুন, বা লেআউটগুলি দৃশ্যত যাচাই করতে স্ক্রিনশট পরীক্ষা তৈরি করুন।
রাষ্ট্র পুনরুদ্ধার
ট্যাবলেটের মতো ডিভাইসে চলমান অ্যাপগুলি ফোনে থাকা অ্যাপের তুলনায় অনেক বেশি ঘন ঘন ঘোরানো হয় এবং আকার পরিবর্তন করা হয়। এছাড়াও, ফোল্ডেবলগুলি নতুন ডিসপ্লে ক্ষমতা প্রবর্তন করে, যেমন ভাঁজ করা এবং প্রকাশ করা, যা কনফিগারেশন পরিবর্তনগুলিকে ট্রিগার করতে পারে। এই কনফিগারেশন পরিবর্তনগুলি ঘটলে আপনার অ্যাপ্লিকেশানটিকে স্থিতি পুনরুদ্ধার করতে সক্ষম হতে হবে৷ তারপরে আপনাকে পরীক্ষাগুলি লিখতে হবে যা নিশ্চিত করে যে আপনার অ্যাপটি সঠিকভাবে পুনরুদ্ধার করে।
![](https://developer.android.com/static/images/training/testing/different-screens/foldable_multiple_postures.png?authuser=4&hl=bn)
প্রথমে পরীক্ষা করুন যে কনফিগারেশন পরিবর্তন ঘটলে আপনার অ্যাপটি ক্র্যাশ না হয়। নিশ্চিত করুন যে আপনার অ্যাপের প্রতিটি UI ঘূর্ণন, আকার পরিবর্তন বা ভাঁজ করার যে কোনো সমন্বয় পরিচালনা করতে পারে। যেহেতু কনফিগারেশন পরিবর্তনগুলি ডিফল্টরূপে ক্রিয়াকলাপটিকে পুনরায় তৈরি করে, কিছু ক্র্যাশ ঘটবে ক্রিয়াকলাপ স্থায়ীত্বের অনুমানের কারণে।
কনফিগারেশন পরিবর্তনগুলি পরীক্ষা করার একাধিক উপায় রয়েছে, তবে বেশিরভাগ ক্ষেত্রে, পরীক্ষা করার দুটি উপায় রয়েছে:
- রচনায়, কার্যকলাপ পুনরায় আরম্ভ না করে একটি দক্ষ উপায়ে একটি কনফিগারেশন পরিবর্তন অনুকরণ করতে
StateRestorationTester
ব্যবহার করুন। আরও তথ্যের জন্য নিম্নলিখিত বিভাগগুলি দেখুন। - যেকোন UI পরীক্ষায় যেমন Espresso বা Compose,
Activity.recreate()
কল করে একটি কনফিগারেশন পরিবর্তন অনুকরণ করুন।
কনফিগারেশন পরিবর্তনের প্রতিক্রিয়ায় স্টেট রিস্টোরেশন পরীক্ষা করার জন্য আপনাকে সাধারণত বিভিন্ন ডিভাইস ব্যবহার করতে হবে না। এর কারণ হল সমস্ত কনফিগারেশন পরিবর্তন যা ক্রিয়াকলাপটিকে পুনরায় তৈরি করে তার একই রকম প্রতিক্রিয়া রয়েছে। যাইহোক, কিছু কনফিগারেশন পরিবর্তন নির্দিষ্ট ডিভাইসে বিভিন্ন স্টেট রিস্টোরেশন মেকানিজম ট্রিগার করতে পারে।
উদাহরণস্বরূপ, যখন একজন ব্যবহারকারী একটি খোলা ফোল্ডেবলে একটি তালিকা-বিশদ UI দেখেন এবং তারা সামনের ডিসপ্লেতে স্যুইচ করার জন্য ডিভাইসটিকে ভাঁজ করে, তখন UI সাধারণত বিশদ পৃষ্ঠায় স্যুইচ করে। একটি স্বয়ংক্রিয় পরীক্ষায় নেভিগেশন অবস্থা সহ UI অবস্থার এই পুনরুদ্ধারকে কভার করা উচিত।
এক ডিসপ্লে থেকে অন্য ডিসপ্লেতে যাওয়া বা মাল্টি-উইন্ডো মোডে প্রবেশ করা ডিভাইসগুলিতে ঘটে যাওয়া কনফিগারেশন পরিবর্তনগুলি পরীক্ষা করতে, আপনার কাছে একাধিক বিকল্প রয়েছে:
- যেকোনো ডিভাইস ব্যবহার করে, পরীক্ষার সময় স্ক্রীনের আকার পরিবর্তন করুন। বেশিরভাগ ক্ষেত্রে, এটি সমস্ত রাজ্য পুনরুদ্ধার প্রক্রিয়াগুলিকে ট্রিগার করে যা আপনাকে যাচাই করতে হবে। যাইহোক, এই পরীক্ষাটি এমন যুক্তির জন্য কাজ করবে না যা ফোল্ডেবলে নির্দিষ্ট ভঙ্গি সনাক্ত করে, কারণ ভঙ্গি পরিবর্তন কনফিগারেশন পরিবর্তনকে ট্রিগার করে না।
- আপনি যে বৈশিষ্ট্যগুলি পরীক্ষা করতে চান তা সমর্থন করে এমন একটি ডিভাইস বা এমুলেটর ব্যবহার করে, সম্পর্কিত কনফিগারেশন পরিবর্তনগুলি ট্রিগার করুন৷ উদাহরণস্বরূপ, ভাঁজযোগ্য বা ট্যাবলেটকে ল্যান্ডস্কেপে ভাঁজ থেকে খোলা ফ্ল্যাটে সরানোর জন্য এসপ্রেসো ডিভাইস ব্যবহার করে নিয়ন্ত্রণ করা যেতে পারে। উদাহরণের জন্য বিভিন্ন স্ক্রীন মাপ পরীক্ষা করার জন্য লাইব্রেরি এবং টুলগুলির এসপ্রেসো ডিভাইস বিভাগটি দেখুন।
বিভিন্ন স্ক্রীন এবং উইন্ডো আকারের জন্য পরীক্ষার প্রকার
পরীক্ষাটি বিভিন্ন ফর্ম ফ্যাক্টর জুড়ে সঠিকভাবে কাজ করছে তা যাচাই করতে প্রতিটি ব্যবহারের ক্ষেত্রে উপযুক্ত ধরনের পরীক্ষা ব্যবহার করুন:
UI আচরণ পরীক্ষাগুলি অ্যাপ UI এর কিছু অংশ চালু করে, যেমন একটি কার্যকলাপ প্রদর্শন। পরীক্ষাগুলি যাচাই করে যে কিছু উপাদান বিদ্যমান বা নির্দিষ্ট বৈশিষ্ট্য রয়েছে। পরীক্ষাগুলি ঐচ্ছিকভাবে সিমুলেটেড ব্যবহারকারীর ক্রিয়া সম্পাদন করতে পারে। দেখার জন্য, Espresso ব্যবহার করুন। জেটপ্যাক কম্পোজ এর নিজস্ব টেস্টিং API আছে। UI আচরণ পরীক্ষা যন্ত্রযুক্ত বা স্থানীয় হতে পারে। ইন্সট্রুমেন্টেড পরীক্ষাগুলি ডিভাইস বা এমুলেটরগুলিতে চালিত হয়, যখন স্থানীয় UI পরীক্ষাগুলি JVM-এ Robolectric- এ চলে।
একটি অ্যাপের নেভিগেশন বাস্তবায়ন সঠিক কিনা তা যাচাই করতে UI আচরণ পরীক্ষা ব্যবহার করুন। পরীক্ষাগুলি ক্লিক এবং সোয়াইপের মতো ক্রিয়া সম্পাদন করে। UI আচরণ পরীক্ষাগুলি নির্দিষ্ট উপাদান বা বৈশিষ্ট্যের অস্তিত্বও পরীক্ষা করে। আরও তথ্যের জন্য, স্বয়ংক্রিয় UI পরীক্ষা দেখুন।
স্ক্রিনশট পরীক্ষাগুলি একটি UI বা উপাদানের একটি স্ক্রিনশট নেয় এবং পূর্বে অনুমোদিত স্ক্রিনশটের সাথে চিত্রটির তুলনা করে। এটি রিগ্রেশন থেকে রক্ষা করার একটি খুব কার্যকর উপায়, কারণ একটি একক স্ক্রিনশট প্রচুর পরিমাণে উপাদান এবং এর ভিজ্যুয়াল বৈশিষ্ট্যগুলিকে কভার করতে পারে। আপনি JVM বা ডিভাইসে স্ক্রিনশট পরীক্ষা চালাতে পারেন। একাধিক স্ক্রিনশট পরীক্ষার ফ্রেমওয়ার্ক উপলব্ধ।
অবশেষে, ডিভাইস বা উইন্ডোর আকারের উপর নির্ভর করে ভিন্নভাবে আচরণ করে এমন যুক্তিবিদ্যার ইউনিটগুলির কার্যকারিতা পরীক্ষা করার জন্য আপনাকে ইউনিট পরীক্ষার প্রয়োজন হতে পারে, তবে ইউনিট পরীক্ষাগুলি এই ক্ষেত্রে কম সাধারণ।
পরবর্তী পদক্ষেপ
এই নথিতে থাকা চেকগুলি কীভাবে বাস্তবায়ন করবেন সে সম্পর্কে আরও তথ্যের জন্য, লাইব্রেরি এবং সরঞ্জামগুলি দেখুন।