Android ओपन सोर्स प्रोजेक्ट (एओएसपी), लागू करने की प्रक्रिया के अलग-अलग हिस्सों की जांच करने के लिए, कई टूल और टेस्ट सुइट उपलब्ध कराता है. इस सेक्शन में मौजूद पेजों का इस्तेमाल करने से पहले, आपको इन शब्दों के बारे में जानकारी होनी चाहिए:
- Android के साथ काम करने वाला डिवाइस
- ऐसा डिवाइस जो Android SDK और NDK का इस्तेमाल करके, तीसरे पक्ष के डेवलपर के लिखे गए किसी भी तीसरे पक्ष के ऐप्लिकेशन को चला सकता है. यह ज़रूरी है कि Android पर चलने वाले डिवाइस, कंपैटबिलिटी डेफ़िनिशन दस्तावेज़ (सीडीडी) की ज़रूरी शर्तों को पूरा करते हों. साथ ही, उन्हें कंपैटबिलिटी टेस्ट सुइट (सीटीएस) में पास किया गया हो. Android के साथ काम करने वाले डिवाइस, Android नेटवर्क में शामिल हो सकते हैं. इसमें, Google Play का लाइसेंस, ऐप्लिकेशन और एपीआई के Google Mobile Services (GMS) सुइट का लाइसेंस, और Android ट्रेडमार्क का इस्तेमाल शामिल है. Android सोर्स कोड का इस्तेमाल कोई भी कर सकता है. हालांकि, किसी डिवाइस को Android के साथ काम करने वाला माना जा सकता है, इसके लिए ज़रूरी है कि वह Android के साथ काम करता हो.
- आर्टफ़ैक्ट
- बिल्ड से जुड़ा लॉग, जो स्थानीय समस्या हल करने की सुविधा देता है.
- कंपैटबिलिटी डेफ़िनिशन दस्तावेज़ (सीडीडी)
- यह एक ऐसा दस्तावेज़ है जिसमें Android के साथ काम करने वाले किसी डिवाइस के सॉफ़्टवेयर और हार्डवेयर की ज़रूरी शर्तों की जानकारी होती है.
- कंपैटबिलिटी टेस्ट सुइट (सीटीएस)
मुफ़्त में उपलब्ध, व्यावसायिक ग्रेड का टेस्ट सुइट. इसे AOSP में बाइनरी या सोर्स के तौर पर डाउनलोड किया जा सकता है. सीटीएस, यूनिट टेस्ट का एक सेट है. इसे आपके रोज़ के वर्कफ़्लो में इंटिग्रेट करने के लिए डिज़ाइन किया गया है. सीटीएस का मकसद, यह पक्का करना है कि सिस्टम, ऐप्लिकेशन के साथ काम नहीं करता या नहीं. साथ ही, यह भी पक्का किया जाता है कि सॉफ़्टवेयर डेवलपमेंट की पूरी प्रोसेस के दौरान उसके साथ काम करता रहे.
सीटीएस और प्लैटफ़ॉर्म टेस्ट, एक-दूसरे से अलग नहीं हैं. यहां कुछ सामान्य दिशा-निर्देश दिए गए हैं:
- अगर कोई टेस्ट, फ़्रेमवर्क एपीआई फ़ंक्शन या व्यवहार के सही होने का दावा कर रहा है और यह टेस्ट सभी OEM पार्टनर पर लागू किया जाना चाहिए, तो यह CTS में होना चाहिए.
- अगर किसी टेस्ट का मकसद प्लैटफ़ॉर्म के डेवलपमेंट के दौरान, रिग्रेशन को पकड़ना है और उसे करने के लिए खास अनुमति की ज़रूरत पड़ सकती है और वह लागू करने की जानकारी (जैसा कि AOSP में रिलीज़ किया गया है) पर निर्भर हो सकता है, तो उसे प्लैटफ़ॉर्म टेस्ट माना जाना चाहिए.
- Google मोबाइल सेवाएं (GMS)
Google के उन ऐप्लिकेशन और एपीआई का कलेक्शन जिन्हें डिवाइसों पर पहले से इंस्टॉल किया जा सकता है.
- GoogleTest (GTest)
C++ टेस्टिंग और मॉकिंग फ़्रेमवर्क. GTest बाइनरी आम तौर पर, कम लेवल की एब्स्ट्रैक्शन लेयर को ऐक्सेस करती हैं या अलग-अलग सिस्टम सेवाओं के लिए रॉ आईपीसी करती हैं. आम तौर पर, GTest के लिए टेस्टिंग का तरीका, जांच की जा रही सेवा के साथ पूरी तरह से जुड़ा होता है. CTS में GTest फ़्रेमवर्क शामिल होता है.
- इंस्ट्रुमेंटेशन टेस्ट
am instrument
कमांड से लॉन्च किया गया, टेस्ट को चलाने के लिए खास एनवायरमेंट. इसमें, टारगेट की गई ऐप्लिकेशन प्रोसेस को रीस्टार्ट किया जाता है और बुनियादी ऐप्लिकेशन कॉन्टेक्स्ट के साथ शुरू किया जाता है. साथ ही, ऐप्लिकेशन प्रोसेस की वर्चुअल मशीन में इंस्ट्रूमेंटेशन थ्रेड शुरू किया जाता है. सीटीएस में इंस्ट्रूमेंटेशन टेस्ट शामिल होते हैं.- लॉगकैट
यह एक कमांड-लाइन टूल है, जो सिस्टम मैसेज का लॉग बनाता है. इसमें, डिवाइस में गड़बड़ी होने पर स्टैक ट्रेस और
Log
क्लास की मदद से, ऐप्लिकेशन से लिखे गए मैसेज शामिल होते हैं.- लॉगिंग
कंप्यूटर सिस्टम के इवेंट, जैसे कि गड़बड़ियों को ट्रैक करने के लिए लॉग का इस्तेमाल करना. Android में लॉगिंग करना मुश्किल है, क्योंकि Logcat टूल में कई स्टैंडर्ड का इस्तेमाल किया जाता है.
- postsubmit test
Android टेस्ट, जो किसी सामान्य कर्नेल शाखा में नया पैच कमिट किए जाने पर किया जाता है. शाखा के नाम के कुछ हिस्से के तौर पर
aosp_kernel
डालकर, आपको उपलब्ध नतीजों के साथ कर्नेल शाखाओं की सूची दिख सकती है. उदाहरण के लिए,android-mainline
के लिए नतीजे, https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid पर देखे जा सकते हैं.- सबमिट करने से पहले की जाने वाली जांच
यह एक टेस्ट है, जिसका इस्तेमाल आम कर्नेल में गड़बड़ियों को रोकने के लिए किया जाता है.
- Trade Federation
इसे Tradefed भी कहा जाता है. यह Android डिवाइसों पर टेस्ट चलाने के लिए डिज़ाइन किया गया, लगातार टेस्ट करने वाला फ़्रेमवर्क है. उदाहरण के लिए, Tradefed का इस्तेमाल, Compatibility Test Suite और Vendor Test Suite टेस्ट चलाने के लिए किया जाता है.
- वेंडर टेस्ट सुइट (वीटीएस)
Android टेस्टिंग के लिए कई सुविधाओं का सेट, टेस्ट-ड्रिवन डेवलपमेंट प्रोसेस को बढ़ावा देना, और हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) और ओएस कर्नेल टेस्टिंग को ऑटोमेट करना.
प्लैटफ़ॉर्म टेस्ट के टाइप
प्लैटफ़ॉर्म टेस्ट आम तौर पर, Android सिस्टम की एक या उससे ज़्यादा सेवाओं या एचएएल लेयर के साथ इंटरैक्ट करता है. साथ ही, टेस्ट किए जा रहे विषय की जांच करता है और जांच के नतीजों के सही होने की पुष्टि करता है. प्लैटफ़ॉर्म टेस्ट में ये काम किए जा सकते हैं:
- (टाइप 1) Android फ़्रेमवर्क का इस्तेमाल करने वाले एक्सरसाइज़ फ़्रेमवर्क एपीआई. इस्तेमाल किए जा रहे खास एपीआई में ये शामिल हो सकते हैं:
- तीसरे पक्ष के ऐप्लिकेशन के लिए बनाए गए सार्वजनिक एपीआई
- छिपे हुए एपीआई, जो खास ऐप्लिकेशन के लिए हैं. जैसे, सिस्टम एपीआई या निजी एपीआई (
@hide
याprotected
,package private
)
- (टाइप 2) रॉ बाइंडर या आईपीसी प्रॉक्सी का इस्तेमाल करके, Android सिस्टम की सेवाओं को सीधे तौर पर शुरू करें.
- (तीसरा टाइप) लो-लेवल एपीआई या आईपीसी इंटरफ़ेस का इस्तेमाल करके, सीधे एचएएल के साथ इंटरैक्ट करें.
टाइप 1 और 2 टेस्ट आम तौर पर इंस्ट्रूमेंटेशन टेस्ट होते हैं, जबकि टाइप 3 टेस्ट आम तौर पर GTests होते हैं.
आगे क्या करना है?
ज़्यादा जानकारी के लिए, यहां दिए गए दस्तावेज़ पढ़ें:
अगर आपने Android आर्किटेक्चर की पढ़ाई नहीं की है, तो स्ट्रक्चर की खास जानकारी देखें.
अगर आपका डिवाइस Android के साथ काम करता है, तो Android के साथ काम करने वाले प्रोग्राम की खास जानकारी देखें.
इंस्ट्रूमेंटेशन, फ़ंक्शनल, मेट्रिक, और JAR होस्ट टेस्ट को प्लैटफ़ॉर्म की लगातार टेस्टिंग सेवा में इंटिग्रेट करने के लिए, टेस्ट डेवलपमेंट वर्कफ़्लो देखें.
अपने डिवाइसों में मौजूद कमजोरियों का पता लगाने और उन्हें ठीक करने के लिए, सुरक्षा जांच देखें.
अपने एचएएल और कर्नेल को लागू करने की जांच करने के बारे में जानने के लिए, वेंडर टेस्ट सुइट (वीटीएस) और इन्फ़्रास्ट्रक्चर देखें.
ऐप्लिकेशन की जांच करने के लिए, Android ऐप्लिकेशन की जांच करने के बुनियादी सिद्धांत पढ़ें. साथ ही, दिए गए सैंपल का इस्तेमाल करके, Kotlin में Android 05.1:टेस्टिंग के बुनियादी सिद्धांत को पूरा करें.
रेपो हुक की मदद से, सबमिट करने से पहले की जाने वाली बुनियादी टेस्टिंग के बारे में जानें. इन हुक का इस्तेमाल, आगे बढ़ने से पहले, लिंटर चलाने, फ़ॉर्मैटिंग की जांच करने, और यूनिट जांच को ट्रिगर करने के लिए किया जा सकता है. जैसे, कोई कमिट अपलोड करना. ये हुक डिफ़ॉल्ट रूप से बंद होते हैं. ज़्यादा जानकारी के लिए, AOSP Preupload हुक देखें.
डेटा लॉग करने के बारे में ज़्यादा जानने के लिए, लॉग इन करने के बारे में जानकारी पाना लेख पढ़ें.
Android कोड को डीबग करने का तरीका जानने के लिए, Android प्लैटफ़ॉर्म के नेटिव कोड को डीबग करना लेख पढ़ें.