Android Compatibility Program, Android नेटवर्क के लिए सकारात्मक प्रतिक्रिया पाने में अहम भूमिका निभाता है. CTS, बड़े पैमाने पर यह पक्का करने वाला मुख्य टूल है कि डिवाइस पर सुविधा काम करती है या नहीं. Android टीम, CTS टूल को लगातार बेहतर बना रही है. साथ ही, टेस्ट कवरेज को भी बेहतर बना रही है. टेस्ट केस को नियमित तौर पर जोड़ने से, साथ काम करने वाले डिवाइसों की क्वालिटी में काफ़ी सुधार हुआ है.
सामान्य सवाल
इस सेक्शन में, सीटीएस के बारे में अक्सर पूछे जाने वाले सामान्य सवालों के जवाब दिए गए हैं.
CTS किस तरह की चीज़ों की जांच करता है?
सीटीएस, यह जांच करता है कि Android के साथ काम करने वाले सभी स्ट्रॉन्ग-टाइप्ड एपीआई मौजूद हैं और सही तरीके से काम कर रहे हैं. सीटीएस, एपीआई के अलावा सिस्टम के अन्य व्यवहारों की भी जांच करता है. जैसे, ऐप्लिकेशन का लाइफ़साइकल और परफ़ॉर्मेंस.
CTS को किस तरह का लाइसेंस मिला है?
सीटीएस को उसी Apache Software License 2.0 के तहत लाइसेंस दिया गया है जिसका इस्तेमाल Android के ज़्यादातर हिस्सों में किया जाता है.
क्या कोडेक की पुष्टि CTS करता है?
हां. सभी ज़रूरी कोडेक की पुष्टि, CTS करता है.
परीक्षा से जुड़े सवाल
इस सेक्शन में, अक्सर पूछे जाने वाले ऐसे सवाल दिए गए हैं जिनसे सीटीएस टेस्ट को ज़्यादा असरदार तरीके से चलाने में मदद मिलती है.
सीटीएस शार्डिंग और टीएफ़ शार्डिंग में क्या अंतर है?
CTS Sharding और TF Sharding, दोनों अलग-अलग टेस्ट प्लान हैं. ये अलग-अलग टेस्ट इंफ़्रास्ट्रक्चर कोडबेस पर काम करते हैं. अलग-अलग वर्शन में रन कमांड एक जैसी होती है, लेकिन शार्डिंग का नतीजा अलग-अलग होता है. सीटीएस शार्डिंग, टेस्ट किए जा रहे डिवाइसों (डीयूटी) को टेस्ट केस इस तरह असाइन करता है:
- कमांड: run cts
- Android 8.1 और इससे पहले के वर्शन के लिए कॉन्फ़िगरेशन: /tools/cts-tradefed/res/config/cts.xml
TF Sharding, उपलब्ध DUT को टेस्ट केस इस तरह से डाइनैमिक तौर पर असाइन करता है:
- कमांड: run cts
- Android 9 के लिए कॉन्फ़िगरेशन: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
एक से ज़्यादा एबीआई के साथ काम करने वाले डिवाइस से क्या उम्मीद की जाती है?
डिवाइस को हर एबीआई मोड के लिए, सभी सीटीएस और सीटीएस वेरिफ़ायर टेस्ट पास करने होंगे. इसलिए, किसी खास ABI के लिए ऐप्लिकेशन को एक्ज़ीक्यूट करना ज़रूरी है. एक से ज़्यादा एबीआइ के लिए दिशा-निर्देश यहां दिए गए हैं:
- सीटीएस और सीटीएस वेरिफ़ायर के लिए, हर आर्किटेक्चर के लिए ARM और x86 रिलीज़ उपलब्ध हैं. इनमें से हर एक, 32-बिट या 64-बिट मोड के साथ काम कर सकता है.
- अगर कोई डिवाइस ARM और x86, दोनों को सपोर्ट करता है, तो उसे CTS टेस्ट के लिए, ARM और x86, दोनों को रन करना होगा और पास करना होगा.
CDD 3.3.1 देखें. ऐप्लिकेशन बाइनरी इंटरफ़ेस के लिए, सीडीडी की ज़रूरी शर्तों के बारे में जानकारी दी गई है.
क्या टेस्ट को सिर्फ़ प्राइमरी एबीआई (उदाहरण के लिए, 64 बिट) पर चलाने से, टेस्ट को पूरा होने में लगने वाला समय कम हो जाता है?
नहीं. Android ऐप्लिकेशन, अपने 32-बिट या 64-बिट रनटाइम पर चलता है. मशीन कोड, कोड पाथ, और स्थिति, 32 और 64 के बीच अलग-अलग होती है. किसी एक मोड को स्किप करने पर, डिवाइस के एबीआई का सिर्फ़ 50% हिस्सा कवर होता है.
इतने सारे टेस्ट केस को 'लागू नहीं किया गया' के तौर पर क्यों रिपोर्ट किया गया है?
आपको Module Done नंबर देखना चाहिए, न कि Not Executed नंबर.
पिछले वर्शन में, CTS मॉड्यूल के पूरा होने से पहले ही उन्हें Module Done के तौर पर रिपोर्ट किया जाता था. इसलिए, कुछ डिवाइसों में समस्याएं होने के बावजूद, सभी टेस्ट केस पूरे न होने पर भी पूरे किए गए मॉड्यूल की संख्या रिपोर्ट की गई. नया टेस्ट हार्नेस ज़्यादा सुरक्षित है. साथ ही, समस्या होने पर लागू नहीं किया गया टेस्ट की ज़्यादा संख्या रिपोर्ट करता है.
मॉड्यूल के पूरा होने पर, रिपोर्ट में मॉड्यूल पूरा नहीं हुआ दिखता है. ऐसा तब होता है, जब रिपोर्ट में सबसे हाल ही के इनवॉकेशन (done="false") के दौरान ये काम किए गए हों:
- डिवाइस के कनेक्शन से जुड़ी समस्या की वजह से, मॉड्यूल का टेस्ट रन पूरा नहीं हो सका.
- मॉड्यूल के लिए, उम्मीद के मुताबिक सभी टेस्ट रन नहीं किए गए.
फ़िल्टर करने के अतिरिक्त विकल्पों के साथ,
-r/--retryविकल्प का इस्तेमाल करके फिर से कोशिश की गई. जैसे:- --include-filter
- --exclude-filter
- -t/--test (Option not yet supported on retry)
- --retry-type फ़्लैग का इस्तेमाल नहीं किया जा सका
- --subplan
इन मॉड्यूल के लिए, Module Done (done="true") स्टेटस पाने के लिए, हाल ही के इनवॉकेशन के लिए, यह तरीका फिर से आज़माएं:
run retry --retry <session_id> for Android 9 and later versionsrun cts --retry <session_id> for Android 8.1 and previous versionsअगर किसी मॉड्यूल को ऊपर बताई गई किसी भी समस्या के बिना पूरा किया जाता है, तो नई रिपोर्ट में उसे मॉड्यूल पूरा हुआ के तौर पर मार्क किया जाता है. भले ही, उसमें कोई टेस्ट बाकी न हो.
अपवाद
- CtsNNAPITestCases में एक जानी-पहचानी समस्या है. इसकी वजह, linux/OS में args की सीमा है.
इस मॉड्यूल को सीधे
run cts -m CtsNNAPITestCasesके ज़रिए अलग से फिर से चलाया जा सकता है.
मैं कॉर्पोरेट फ़ायरवॉल के पीछे, टेस्ट की तैयारी को कैसे रोकूं?
सभी ऑटोमेटेड टेस्ट सुइट, रनटाइम के दौरान CTS मीडिया फ़ाइलें या कारोबार की लॉजिक फ़ाइलें डाउनलोड करने की कोशिश करते हैं. कई कॉर्पोरेट एनवायरमेंट में, फ़ायरवॉल और प्रॉक्सी का इस्तेमाल किया जाता है. इस वजह से, टेस्ट की तैयारी नहीं हो पाती. नीचे दी गई लाइन को लागू करें या इसे .profile (Ubuntu पर) में जोड़ें.
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'क्या मुझे Secure Element के लिए, सीटीएस के लिए सिम कार्ड की ज़रूरत है?
टेस्ट के लिए सिम कार्ड की ज़रूरत है या नहीं, यह इस बात पर निर्भर करता है कि टेस्ट डिवाइस में यह सुविधा काम करती है या नहीं.
- अगर आपके डिवाइस को, सुरक्षित एलिमेंट ऐक्सेस करने वाले Android ऐप्लिकेशन के साथ काम करने की ज़रूरत नहीं है, तो HIDL मेनिफ़ेस्ट को इस तरह कॉन्फ़िगर किया जा सकता है कि उसमें
android.hardware.secure_elementHAL एलिमेंट शामिल न हो. सुरक्षित एलिमेंट, मोबाइल नेटवर्क ऑपरेटर (कैरियर) की ओर से डिस्ट्रिब्यूट किए गए UICC (जैसे कि सिम कार्ड) में मौजूद होते हैं या डिवाइस में एम्बेड किए जाते हैं. इस मामले में, android.se.omapi.SEService.getReaders() एपीआई, खाली सूची दिखाता है. साथ ही, सीटीएस टेस्ट अपने-आप पास हो जाता है और सीटीएस के लिए पास होने की रिपोर्ट दिखाता है. - अगर आपके डिवाइस को Android ऐप्लिकेशन के लिए, सुरक्षित एलिमेंट ऐक्सेस करने की सुविधा देनी है, तो आपको सुरक्षित एलिमेंट को सही तरीके से लागू करना होगा.साथ ही, इसकी जांच करनी होगी. सुरक्षित एलिमेंट, मोबाइल नेटवर्क ऑपरेटर (कैरियर) की ओर से डिस्ट्रिब्यूट किए गए यूआईसीसी (जैसे, सिम कार्ड) में मौजूद हो सकते हैं या डिवाइस में एम्बेड किए जा सकते हैं. सुरक्षित एलिमेंट के लिए सीटीएस टेस्ट में, सीटीएस टेस्ट चलाने की तैयारी करने का तरीका बताया गया है. इन टेस्ट से यह पक्का किया जाता है कि Android 9 में जोड़ा गया android.se.omapi एपीआई पैकेज काम कर रहा है. हमारा यह भी सुझाव है कि आप खुद भी कुछ और टेस्ट करें, क्योंकि सीटीएस टेस्ट में बहुत कम चीज़ें शामिल होती हैं.
मुझे Secure Element के लिए, CTS के सिम कार्ड कहां से मिलेंगे?
अपनी पसंद के सिम वेंडर से संपर्क करें.
टोकन शार्डिंग के साथ सीटीएस एक्ज़ीक्यूशन के दौरान, लॉक स्क्रीन पर Orange SIM क्यों दिख रहा है?
सिम कार्ड की जांच करने की सुविधा लॉक होने की वजह से, टेस्ट केस शुरू नहीं होता. टोकन शार्डिंग के साथ सीटीएस को लागू करने से पहले, **सिम कार्ड लॉक करने की सेटिंग में जाकर, सिम कार्ड लॉक करें को बंद करें.