ভেন্ডর টেস্ট স্যুট (VTS) এবং পরিকাঠামো

অ্যান্ড্রয়েড ভেন্ডর টেস্ট স্যুট (VTS) নিম্নলিখিত বিষয়গুলির উপর ব্যাপক পরীক্ষা প্রদান করে:

  • কার্নেল
  • হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)

VTS একটি ডেস্কটপ মেশিনে চলে এবং সংযুক্ত ডিভাইস বা এমুলেটরগুলিতে সরাসরি টেস্ট কেসগুলি সম্পাদন করে। CTS- এর মতোই, VTS হলো একটি স্বয়ংক্রিয় টেস্ট স্যুট যা নিম্নলিখিত প্রধান সফ্টওয়্যার উপাদানগুলি ব্যবহার করে:

  • VTS ট্রেড ফেডারেশন টেস্ট হারনেস আপনার হোস্ট মেশিনে চলে এবং টেস্ট এক্সিকিউশন পরিচালনা করে। এটি একাধিক ডিভাইস আন্ডার টেস্ট (DUTs)-এর মধ্যে শার্ডিং কনফিগার করার সুবিধা দেয়। এছাড়াও, আপনি সম্পূর্ণ টেস্ট স্যুটের পরিবর্তে শুধুমাত্র ব্যর্থ টেস্টগুলো পুনরায় চালানোর জন্য স্যুট রিট্রাই ফিচারটি ব্যবহার করতে পারেন, যা পুনরায় চালানোর সময়কে ব্যাপকভাবে কমিয়ে দেয়।
  • DUT-তে স্বতন্ত্র টেস্ট কেসগুলো চালানো হয়। এই টেস্ট কেসগুলো জাভায় লেখা GTest-স্টাইলের টেস্ট, কার্নেল টেস্ট, বা JUnit-স্টাইলের টেস্ট হতে পারে।

পরীক্ষার প্রকারভেদ

নিম্নলিখিত বিভাগগুলিতে বিভিন্ন ধরণের ভিটিএস পরীক্ষা বর্ণনা করা হয়েছে।

জিটেস্ট-স্টাইলের পরীক্ষাগুলি

VTS-এর বেশিরভাগ টেস্টই GTest-ধাঁচের, যা HAL ইমপ্লিমেন্টেশন পরীক্ষা করে। টেস্টটি C++ ভাষায় লেখা হয় এবং ডিভাইসে চলে। একটি সাধারণ VTS GTest একটি নির্দিষ্ট ইন্টারফেসের প্রতিটি ইনস্ট্যান্সের মধ্য দিয়ে যায় এবং সেটির বিপরীতে সমস্ত টেস্ট কেস চালায়। একটি উদাহরণের জন্য VtsHalHealthStorageV1_0TargetTest দেখুন।

লিনাক্স কার্নেল পরীক্ষা

  • Kselftest ( external/linux-kselftest ) হলো tools/testing/selftests এ অবস্থিত লিনাক্স কার্নেল রিপোজিটরির অন্তর্ভুক্ত পরীক্ষাগুলির একটি সংগ্রহ, যার মধ্যে ২৩টি ARM-এ চালানোর জন্য VTS-এ অন্তর্ভুক্ত করা হয়েছে।

  • লিনাক্স টেস্ট প্রজেক্ট ( external/ltp ) পরীক্ষাগুলো লিনাক্স কার্নেলের নির্ভরযোগ্যতা, দৃঢ়তা এবং স্থিতিশীলতা যাচাই করে।

JUnit-শৈলীর পরীক্ষা

VTS-এর অল্প কিছু হোস্ট-ড্রাইভেন টেস্ট হলো JUnit-স্টাইলের টেস্ট, যেমন, KernelApiSysfsTest । জাভা টেস্টগুলো BaseHostJUnit4Test হিসেবে ইমপ্লিমেন্ট করা হয়, যা একটি টেস্ট ডিভাইসের সাথে যুক্ত থাকে এবং ভ্যালিডেশন করার জন্য শেল কমান্ড চালাতে পারে।

স্বতন্ত্র পাইথন৩ পরীক্ষা

কিছু VTS টেস্ট, যেমন vts_treble_sys_prop_test , Python3-এ লেখা হয়েছে। এই পাইথন-ভিত্তিক টেস্টগুলো unittest.TestCase হিসেবে প্রয়োগ করা হয় এবং প্রতিটি টেস্ট কেস শেল কমান্ডের মাধ্যমে ডিভাইসের সাথে যোগাযোগ করতে পারে।