सीटीएस के बारे में अक्सर पूछे जाने वाले सवाल

Android Compatibility Program, Android के नेटवर्क के लिए सकारात्मक सुझाव/राय पाने में अहम भूमिका निभाता है. CTS, बड़े पैमाने पर यह पक्का करने का मुख्य टूल है कि डिवाइस पर सुविधा काम करती है या नहीं. Android टीम, CTS टूल और टेस्ट कवरेज को लगातार बेहतर बना रही है. टेस्ट केस को नियमित तौर पर जोड़ने से, साथ काम करने वाले डिवाइसों की क्वालिटी में काफ़ी सुधार हुआ है.

सामान्य सवाल

इस सेक्शन में, सीटीएस के बारे में अक्सर पूछे जाने वाले सामान्य सवालों के जवाब दिए गए हैं.

CTS किस तरह की चीज़ों की जांच करता है?

सीटीएस, यह जांच करता है कि Android के साथ काम करने वाले सभी स्ट्रॉन्ग-टाइप्ड एपीआई मौजूद हैं और सही तरीके से काम कर रहे हैं. सीटीएस, एपीआई के अलावा सिस्टम के अन्य व्यवहारों की भी जांच करता है. जैसे, ऐप्लिकेशन का लाइफ़साइकल और परफ़ॉर्मेंस.

सीटीएस को किस तरह का लाइसेंस मिला है?

सीटीएस को उसी Apache Software License 2.0 के तहत लाइसेंस दिया गया है जिसका इस्तेमाल ज़्यादातर Android डिवाइसों में किया जाता है.

क्या कोडेक की पुष्टि CTS से की जाती है?

हां. सभी ज़रूरी कोडेक की पुष्टि, CTS करता है.

परीक्षा से जुड़े सवाल

इस सेक्शन में, अक्सर पूछे जाने वाले ऐसे सवाल दिए गए हैं जिनसे सीटीएस टेस्ट को ज़्यादा असरदार तरीके से चलाने में मदद मिलती है.

CTS Sharding और TF Sharding में क्या अंतर है?

CTS Sharding और TF Sharding, दोनों अलग-अलग टेस्ट प्लान हैं. ये अलग-अलग टेस्ट इंफ़्रास्ट्रक्चर कोडबेस पर काम करते हैं. अलग-अलग वर्शन में रन कमांड एक जैसी होती है, लेकिन शार्डिंग का नतीजा अलग-अलग होता है. CTS Sharding, टेस्ट केस को डिवाइस अंडर टेस्ट (डीयूटी) को स्टैटिक तौर पर इस तरह असाइन करता है:

TF Sharding, उपलब्ध DUT को टेस्ट केस इस तरह से डाइनैमिक तरीके से असाइन करता है:

एक से ज़्यादा एबीआई के साथ काम करने वाले डिवाइस से क्या उम्मीद की जाती है?

डिवाइस को, हर एबीआई मोड के लिए सभी सीटीएस और सीटीएस वेरिफ़ायर टेस्ट पास करने होंगे. इसलिए, किसी खास एबीआइ के लिए ऐप्लिकेशन को एक्ज़ीक्यूट करना ज़रूरी है. एक से ज़्यादा एबीआइ के लिए दिशा-निर्देश यहां दिए गए हैं:

  • CTS और CTS Verifier के लिए, हर आर्किटेक्चर के लिए ARM और x86 रिलीज़ उपलब्ध हैं. इनमें से हर एक, 32-बिट या 64-बिट मोड के साथ काम कर सकता है.
  • अगर कोई डिवाइस ARM और x86, दोनों को सपोर्ट करता है, तो उसे CTS टेस्ट के लिए, ARM और x86, दोनों को पास करना होगा.

सीडीडी 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 versions
run cts --retry <session_id> for Android 8.1 and previous versions

अगर किसी मॉड्यूल को ऊपर बताई गई किसी भी समस्या के बिना पूरा किया जाता है, तो नई रिपोर्ट में उसे मॉड्यूल पूरा हुआ के तौर पर मार्क किया जाता है. भले ही, उसमें कोई टेस्ट बाकी न हो.

अपवाद

  • CtsNNAPITestCases में एक जानी-पहचानी समस्या है. इसकी वजह, Linux/OS में आर्ग्युमेंट की सीमा है. इस मॉड्यूल को run cts -m CtsNNAPITestCases के ज़रिए सीधे तौर पर अलग से फिर से चलाया जा सकता है.

मैं कॉर्पोरेट फ़ायरवॉल के पीछे टेस्ट की तैयारी को कैसे रोकूं?

सभी ऑटोमेटेड टेस्ट सुइट, रनटाइम के दौरान CTS मीडिया फ़ाइलें या कारोबार से जुड़ी लॉजिक फ़ाइलें डाउनलोड करने की कोशिश करते हैं. कई कॉर्पोरेट एनवायरमेंट में, फ़ायरवॉल और प्रॉक्सी का इस्तेमाल किया जाता है. इस वजह से, टेस्ट की तैयारी नहीं हो पाती. नीचे दी गई लाइन को लागू करें या इसे .profile (Ubuntu पर) में जोड़ें.

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

क्या मुझे Secure Element के लिए CTS के लिए सिम कार्ड की ज़रूरत है?

टेस्ट के लिए सिम कार्ड की ज़रूरत है या नहीं, यह इस बात पर निर्भर करता है कि टेस्ट डिवाइस में यह सुविधा काम करती है या नहीं.

  • अगर आपके डिवाइस को, सुरक्षित एलिमेंट ऐक्सेस करने वाले Android ऐप्लिकेशन के साथ काम करने की ज़रूरत नहीं है, तो HIDL मेनिफ़ेस्ट को इस तरह कॉन्फ़िगर किया जा सकता है कि उसमें android.hardware.secure_element HAL एलिमेंट शामिल न हो. सुरक्षित एलिमेंट, मोबाइल नेटवर्क ऑपरेटर (कैरियर) की ओर से डिस्ट्रिब्यूट किए गए UICC (जैसे, सिम कार्ड) में मौजूद होते हैं या डिवाइस में एम्बेड किए जाते हैं. इस मामले में, android.se.omapi.SEService.getReaders() एपीआई, खाली सूची दिखाता है. साथ ही, सीटीएस टेस्ट अपने-आप पास हो जाता है और सीटीएस के लिए पास होने की रिपोर्ट दिखाता है.
  • अगर आपके डिवाइस को, सुरक्षित एलिमेंट ऐक्सेस करने वाले Android ऐप्लिकेशन के साथ काम करने की ज़रूरत है, तो आपको सुरक्षित एलिमेंट को सही तरीके से लागू करना होगा.सुरक्षित एलिमेंट, मोबाइल नेटवर्क ऑपरेटर (कैरियर) की ओर से डिस्ट्रिब्यूट किए गए यूआईसीसी (जैसे, सिम कार्ड) में मौजूद हो सकते हैं या डिवाइस में एम्बेड किए जा सकते हैं. साथ ही, आपको इसकी जांच अपने घर पर करनी होगी. सुरक्षित एलिमेंट के लिए सीटीएस टेस्ट में, सीटीएस टेस्ट चलाने की तैयारी करने का तरीका बताया गया है. इन टेस्ट से यह पक्का किया जाता है कि Android 9 में जोड़ा गया android.se.omapi एपीआई पैकेज काम कर रहा है. हमारा यह भी सुझाव है कि आप खुद भी कुछ और टेस्ट करें, क्योंकि सीटीएस टेस्ट कवरेज बहुत कम होता है.

मुझे Secure Element के लिए, CTS के सिम कार्ड कहां से मिलेंगे?

अपनी पसंद के सिम वेंडर से संपर्क करें.

टोकन शार्डिंग के साथ सीटीएस टेस्ट करते समय, लॉक स्क्रीन पर Orange सिम क्यों दिख रहा है?

सिम कार्ड की जांच करने की सुविधा लॉक होने की वजह से, टेस्ट केस शुरू नहीं होता. टोकन शार्डिंग के साथ सीटीएस चलाने से पहले, **सिम कार्ड लॉक करने की सेटिंग में जाकर सिम कार्ड लॉक करें को बंद करें.

यह टेस्ट तब चलता है, जब डिवाइस में सुविधा के फ़्लैग बंद होते हैं

रिलीज़ बिल्ड में मौजूद सभी फ़्लैग के लिए, @RequiresFlagsEnabled या @RequiresFlagsDisabled एनोटेशन, डिवाइस रिलीज़ कॉन्फ़िगरेशन से नहीं, बल्कि सीटीएस बाइनरी रिलीज़ कॉन्फ़िगरेशन से फ़्लैग की वैल्यू का इस्तेमाल करता है. डिवाइस पर फ़्लैग बंद करने से, जांच बंद नहीं होती है. ऐसा इसलिए, क्योंकि किसी रिलीज़ के लिए चलने वाले सीटीएस टेस्ट का सेट, AOSP प्लैटफ़ॉर्म के रिलीज़ किए गए कॉन्फ़िगरेशन के हिसाब से तय होता है.