ऑटोमेशन फ्रेमवर्क के साथ एंड्रॉइड ऐप टेस्टिंग ट्यूटोरियल

विषय - सूची:

Anonim

Android परीक्षण क्यों?

Android दुनिया का सबसे बड़ा ऑपरेटिंग सिस्टम है। इसी समय, एंड्रॉइड खंडित है। आपके डिवाइस के साथ संगत डिवाइस और Android संस्करण के टन हैं।

इससे कोई फर्क नहीं पड़ता कि आप डिजाइन और कार्यान्वयन में कितना समय लगाते हैं, गलतियाँ अपरिहार्य हैं, और बग दिखाई देंगे।

इस ट्यूटोरियल में, आप सीखेंगे-

  • Android परीक्षण क्यों?
  • Android परीक्षण रणनीति
    • इकाई परीक्षण
    • एकीकरण परीक्षण
    • संचालन परीक्षण
    • सिस्टम परीक्षण
  • स्वचालित एंड्राइड परीक्षण
    • Android परीक्षण रूपरेखा
    • रोबोइलेक्ट्रिक टेस्टिंग फ्रेमवर्क
  • Android परीक्षण के मिथक
  • Android परीक्षण में सर्वोत्तम अभ्यास

Android परीक्षण रणनीति

एक सही Android परीक्षण रणनीति में निम्नलिखित शामिल होना चाहिए

  1. इकाई परीक्षण
  2. एकीकरण परीक्षण
  3. ऑपरेशनल टेस्ट
  4. सिस्टम टेस्ट

इकाई परीक्षण

यूनिट टेस्ट में एक या एक से अधिक कार्यक्रमों के सेट शामिल होते हैं जो स्रोत कोड की एक परमाणु इकाई को सत्यापित करने के लिए डिज़ाइन किए जाते हैं, जैसे कि एक विधि या एक वर्ग।

Android प्लेटफॉर्म प्री-इंटीग्रेटेड Junit 3.0 फ्रेमवर्क आता है। यह इकाई परीक्षण को स्वचालित करने के लिए खुला स्रोत ढांचा है। एंड्रॉइड टेस्टिंग फ्रेमवर्क डेवलपर के लिए प्रभावी यूनिट टेस्ट प्रोग्राम लिखने के लिए शक्तिशाली उपकरण है।

Android और JUnit ढांचे का एकीकरण

यूनिट टेस्टिंग के अलावा यूजर इंटरफेस (यूआई) टेस्ट हैं। ये परीक्षण आपके लक्ष्य एप्लिकेशन के UI घटकों से संबंधित हैं। यूआई परीक्षण सुनिश्चित करते हैं कि आपका एप्लिकेशन डिवाइस पर उपयोगकर्ता कार्यों के अनुक्रम के जवाब में सही यूआई आउटपुट लौटाता है।

आवेदन पर आम उपयोगकर्ता यूआई कार्रवाई

डिवाइस पर UI परीक्षण करने का सामान्य तरीका एंड्रॉइड इंस्ट्रूमेंटेशन है। लेकिन इसमें प्रदर्शन के मुद्दे हैं। एंड्रॉइड पर UI परीक्षण करने के लिए सबसे अच्छे टूल में से एक रोबोटियम है।

एकीकरण परीक्षण

एकीकरण परीक्षण में, सभी इकाई परीक्षण किए गए मॉड्यूल, संयुक्त और सत्यापित हैं। एंड्रॉइड में, इंटीग्रेशन टेस्ट में प्रायः सर्विस टेस्टिंग, एक्टिविटी टेस्टिंग, कंटेंट प्रोवाइडर टेस्टिंग आदि जैसे ऑन्ड्रोइड घटकों के साथ इंटीग्रेशन चेकिंग इंटीग्रेशन होता है

Android पर एकीकरण परीक्षण के प्रकार

एंड्रॉइड के लिए ट्रॉयड, रोबोइलेक्ट्रिक, रोबोटियम जैसे एकीकरण परीक्षण करने के लिए कई परीक्षण रूपरेखाओं का उपयोग किया जाता है।

संचालन परीक्षण

  • ऑपरेशनल को कार्यात्मक परीक्षण या स्वीकृति टेस्ट भी कहा जाता है। वे आवेदन की पूर्णता और शुद्धता की जांच के लिए डिज़ाइन किए गए उच्च स्तरीय परीक्षण हैं।
  • एंड्रॉइड में, FitNesse ओपन-सोर्स फ्रेमवर्क है जो लक्ष्य एप्लिकेशन के लिए परिचालन परीक्षण करना आसान बनाता है।

सिस्टम परीक्षण

सिस्टम टेस्टिंग में सिस्टम को संपूर्ण के रूप में परखा जाता है और घटकों, सॉफ्टवेयर और हार्डवेयर के बीच की बातचीत की जाँच की जाती है।

Android में, सिस्टम टेस्टिंग में सामान्य रूप से शामिल हैं

  • जीयूआई परीक्षण
  • प्रयोज्य परीक्षण
  • प्रदर्शन जांच
  • तनाव परीक्षण

उपरोक्त सूची में, प्रदर्शन परीक्षण को अधिक ध्यान दिया गया है। आप Android पर प्रदर्शन परीक्षण करने के लिए Traceview जैसे टूल का उपयोग कर सकते हैं। यह टूल आपके एप्लिकेशन को डीबग करने और इसके प्रदर्शन को प्रोफाइल करने में आपकी सहायता कर सकता है।

स्वचालित एंड्राइड परीक्षण

जैसे-जैसे Android का विखंडन होता है, उपकरणों की भीड़ पर परीक्षण आवश्यक है। लेकिन इससे आपका पैसा भी खर्च होगा। स्वचालित Android परीक्षण लागत को कम करने में मदद कर सकता है

स्वचालित Android परीक्षण के लाभ

  • परीक्षण मामलों को निष्पादित करने के लिए समय कम करें
  • अपनी विकास प्रक्रिया की उत्पादकता बढ़ाएँ
  • प्रारंभिक बग का पता लगाना, सॉफ़्टवेयर रखरखाव पर लागत बचाना
  • जल्दी से पाया और कार्यान्वयन पर बग को ठीक करें
  • सॉफ्टवेयर की गुणवत्ता सुनिश्चित करें

हम निम्नलिखित 2 रूपरेखाओं का अध्ययन करेंगे

  • Android परीक्षण रूपरेखा
  • रोबोइलेक्ट्रिक टेस्टिंग फ्रेमवर्क

Android परीक्षण रूपरेखा

एंड्रॉइड एप्लिकेशन के लिए मानक परीक्षण ढांचे में से एक एंड्रॉइड टेस्टिंग फ्रेमवर्क है । यह एक शक्तिशाली और उपयोग में आसान परीक्षण ढाँचा है जो Android SDK टूल के साथ अच्छी तरह से एकीकृत है।

Android परीक्षण ढांचा वास्तुकला

  1. एप्लिकेशन पैकेज आपका लक्ष्य अनुप्रयोग है जिसे जांचने की आवश्यकता है
  2. इंस्ट्रूमेंटेशन टेस्टर रनर टेस्ट केस रनर है जो टारगेट एप्लिकेशन पर टेस्ट केस को निष्पादित करता है। उसमे समाविष्ट हैं:

2a) टेस्ट टूल: बिल्डिंग टेस्ट के लिए एक एसडीके टूल। वे ग्रहण आईडीई में एकीकृत हैं या कमांड लाइन के रूप में चलते हैं।

2 बी) मंकी रनर: एक उपकरण जो प्रोग्राम लिखने के लिए एपीआई प्रदान करता है जो एंड्रॉइड कोड के बाहर एक एंड्रॉइड डिवाइस या एमुलेटर को नियंत्रित करता है।

  1. टेस्ट पैकेज को टेस्ट प्रोजेक्ट में व्यवस्थित किया जाता है। यह पैकेज नामकरण सम्मेलन का अनुसरण करता है। अगर परीक्षण के तहत आवेदन में पैकेज का "com.mydomain.myapp" नाम है, तो टेस्ट पैकेज "com.mydomain.myapp.test" होना चाहिए। इस पैकेज में नीचे की ओर 2 ऑब्जेक्ट शामिल हैं।

3 ए) टेस्ट केस क्लास: टारगेट एप्लिकेशन पर निष्पादित करने के लिए टेस्ट मेथड्स को शामिल करें।

3 बी) नकली वस्तुएं: नकली डेटा शामिल है जो परीक्षण मामलों के लिए नमूना इनपुट के रूप में उपयोग किया जाएगा।

Android टेस्ट केस क्लासेस

AndroidTestCase वर्ग आरेख

  1. TestCase में JUnit परीक्षण चलाने के लिए JUnit विधियाँ शामिल हैं
  2. TestSuite का उपयोग परीक्षण मामलों के सेट को चलाने के लिए किया जाता है
  3. इंस्ट्रुमेंटेशनटेस्टसाइट एक टेस्टसुइट है जो इंस्ट्रूमेंटेशन टेस्टस्टेक में इंस्ट्रूमेंटेशन को चलाता है।
  4. इंस्ट्रूमेंटेशन टेस्टर रनर टेस्ट केस रनर है जो टारगेट एप्लिकेशन पर टेस्ट केस निष्पादित करता है।
  5. AndroidTestCase JUnit TestCase का विस्तार करता है। इसमें एक्टिविटी कॉन्सेप्ट जैसे संसाधनों तक पहुंचने के तरीके हैं।
  6. ApplicationTestCase एक नियंत्रित वातावरण में अनुप्रयोग कक्षाओं की पुष्टि करता है।
  7. इंस्ट्रूमेंटेशन टेस्ट एक विशेष सुविधा या लक्ष्य आवेदन के व्यवहार की पुष्टि करता है, उदाहरण के लिए, आवेदन के यूआई आउटपुट को सत्यापित करें।
  8. एक्टिविटीटेस्टक बेस क्लास है जो एप्लिकेशन एक्टिविटीज के परीक्षण का समर्थन करता है।
  9. ProviderTestCase एकल ContentProvider के परीक्षण के लिए वर्ग है।
  10. ServiceTestCase का उपयोग परीक्षण वातावरण में सेवा वर्गों का परीक्षण करने के लिए किया जाता है। यह सेवा के जीवन चक्र का भी समर्थन करता है।
  11. SingeLauchActivityTestCase का उपयोग एकल गतिविधि का एक इंस्ट्रुमेंटेशनटेस्टकेस के साथ परीक्षण करने के लिए किया जाता है।
  12. ActivityUnitTestCase <गतिविधि> का उपयोग एकल पृथक गतिविधि का परीक्षण करने के लिए किया जाता है।
  13. ActivityInstrumentationTestCase2 <गतिविधि> JUnit TestCase वर्ग का विस्तार करता है। यह आपको इंस्ट्रूमेंटेशन के साथ एप्लिकेशन को लक्षित करने के लिए जोड़ता है। इस वर्ग के साथ, आप एप्लिकेशन के GUI घटक तक पहुंच सकते हैं और UI को UI इवेंट (कीस्ट्रोक या टच इवेंट) भेज सकते हैं।

नीचे ActivInstrumentationTestCase का एक उदाहरण है। यह कैलकुलेटर अनुप्रयोग के यूआई ऑपरेशन की पुष्टि करता है, यूआई आउटपुट की शुद्धता की जांच करता है।

ActivityInstrumentationTestCase2 परीक्षण उदाहरण

रोबोइलेक्ट्रिक टेस्टिंग फ्रेमवर्क

डिवाइस या एमुलेटर के साथ एंड्रॉइड टेस्टिंग फ्रेमवर्क का उपयोग करके परीक्षण करना मुश्किल है। बिल्डिंग और रनिंग टेस्ट धीमा है और विकास के लिए काफी प्रयास कर रहा है। इस समस्या को ठीक करने के लिए, एक और विकल्प है - रोबोइलेक्ट्रिक परीक्षण ढांचा।

रोबोइलेक्ट्रिक ढांचा आपको डिवाइस या एमुलेटर की आवश्यकता के बिना सीधे जेवीएम पर Android परीक्षण चलाने की अनुमति देता है।

रोबोइलेक्ट्रिक की अग्रिम विशेषताएं

रोबोइलेक्ट्रिक टेस्ट केस क्लासेस

रोबोइलेक्ट्रिक का संचालन

  • जैसा कि ऊपर दिखाया गया है, रोबोइलेक्ट्रिक निम्नलिखित क्रियाएं कर सकता है:
  • पंजीकृत करें और एक छाया वर्ग बनाएं
  • एंड्रॉइड क्लास के लोडिंग को रोकें
  • एंड्रॉइड क्लास की विधि निकायों को ओवरराइड करने के लिए जावास्विस्ट का उपयोग करता है
  • Android क्लास के लिए बाइंड शैडो ऑब्जेक्ट
  • यह एंड्रॉइड वातावरण के बिना कोड को परीक्षण के तहत निष्पादित करने की अनुमति देता है।

अन्य परीक्षण रूपरेखा

परीक्षण रूपरेखाओं के अलावा जिनका उल्लेख ऊपर किया गया था, कई अन्य परीक्षण ढांचे हैं जैसे:

  • Android जूनिट रिपोर्ट, Android के लिए एक कस्टम इंस्ट्रूमेंटेशन टेस्ट रनर जो अन्य उपकरणों के साथ एकीकरण के लिए XML रिपोर्ट उत्पन्न करता है।
  • एक्सप्रेसो
  • Appium

Android परीक्षण के मिथक

कई उद्यम एंड्रॉइड टेस्टिंग रणनीतियों को विकसित करते हैं जो सामान्य गलत धारणाओं पर आधारित हैं। यह खंड कुछ लोकप्रिय मिथकों और Android परीक्षण की वास्तविकताओं की जांच करता है।

मिथक # 1: सभी एंड्रॉइड डिवाइस समान हैं ... एमुलेटर पर परीक्षण पर्याप्त है

एक सरल उदाहरण से शुरू करते हैं। एक एप्लिकेशन एमुलेटर एस पर पूरी तरह से काम करता है लेकिन कुछ वास्तविक उपकरणों पर, यह निष्पादन के दौरान क्रैश हो जाता है

असली डिवाइस पर निष्पादन के दौरान एप्लिकेशन क्रैश हो जाता है

आपके मोबाइल परीक्षण के लिए एमुलेटर पर्याप्त नहीं हैं । आपको वास्तविक उपकरणों पर अपने ऐप का परीक्षण करना चाहिए।

मिथक # 2: कुछ सामान्य उपकरणों पर परीक्षण पर्याप्त है

  • विभिन्न उपकरणों पर, आपका एप्लिकेशन अलग दिखता है क्योंकि विभिन्न उपकरणों में अलग-अलग हार्डवेयर, स्क्रीन आकार, मेमोरी आदि हैं। आपको अपने एप्लिकेशन को विभिन्न उपकरणों, OS संस्करणों, वाहक नेटवर्क और स्थानों पर परीक्षण करना होगा।

मिथक # 3: लॉन्च से ठीक पहले खोजपूर्ण परीक्षण पर्याप्त है

  • आम तौर पर सभी परीक्षण में, हम परीक्षण मामलों को डिजाइन करते हैं फिर उन्हें निष्पादित करते हैं। लेकिन खोजपूर्ण परीक्षण, परीक्षण डिजाइन और निष्पादन सभी में एक साथ किया जाएगा।
  • खोजपूर्ण परीक्षण में, कोई योजना नहीं है और कोई तैयारी नहीं है, तब परीक्षक ऐसे परीक्षण करेगा जो वह करना चाहता है। कुछ कार्यों का बार-बार परीक्षण किया जाएगा, जबकि कुछ कार्यों का परीक्षण पूरी तरह से नहीं किया जाएगा।

मिथक # 4: यदि आवेदन में कुछ कीड़े हैं, तो उपयोगकर्ता समझेंगे

  • यदि एप्लिकेशन काम नहीं करता है और बग्स हैं, तो उपयोगकर्ता आपके ऐप को अनइंस्टॉल कर देते हैं
  • Google Play में खराब समीक्षा का पहला कारण गुणवत्ता के मुद्दे हैं। यह आपकी प्रतिष्ठा को प्रभावित करता है और आप ग्राहक का विश्वास खो देते हैं।

इसलिए इसके लिए एक उचित एंड्रॉइड परीक्षण रणनीति आवश्यक है

Android परीक्षण में सर्वोत्तम अभ्यास

  • एप्लिकेशन डेवलपर्स को उसी समय परीक्षण के मामले बनाने चाहिए जब वे कोड लिख रहे हों
  • सभी परीक्षण मामलों को स्रोत कोड के साथ-साथ संस्करण नियंत्रण में संग्रहीत किया जाना चाहिए
  • हर बार कोड बदलने पर निरंतर एकीकरण और परीक्षण चलाएं
  • एमुलेटर और रूट किए गए उपकरणों का उपयोग करने से बचें