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