19 पॉइंट द्वारा GN⁺ 2024-04-09 | 4 टिप्पणियां | WhatsApp पर शेयर करें
  • मोबाइल ऐप की UI टेस्टिंग को ऑटोमेट करने का सबसे आसान तरीका
  • UI elements की अस्थिरता के प्रति अंतर्निहित tolerance है
    • UI elements हमेशा अपेक्षित स्थान पर हों, यह ज़रूरी नहीं, इसलिए सिर्फ़ स्क्रीन को tap करना हमेशा काम नहीं करता
    • यह मोबाइल application और device की अस्थिरता को स्वीकार करता है और उसके अनुसार प्रतिक्रिया देने की कोशिश करता है
  • Delay के प्रति भी अंतर्निहित tolerance है
    • टेस्ट में sleep() call डालने की ज़रूरत नहीं है
    • यह समझता है कि content load होने में समय लग सकता है (जैसे network के ज़रिए), इसलिए अपने-आप इंतज़ार करता है, लेकिन ज़रूरत से ज़्यादा देर तक नहीं
  • बहुत तेज़ iteration संभव है
    • टेस्ट interpret किए जाते हैं, इसलिए compile करने की ज़रूरत नहीं
    • यह test files को लगातार monitor कर सकता है और बदलाव होने पर फिर से चला सकता है
  • declarative होते हुए भी शक्तिशाली syntax देता है
    • yaml files में टेस्ट define किए जाते हैं
  • setup आसान है
    • यह एक single binary है जो हर जगह काम करता है

GN⁺ की राय

  • Maestro मोबाइल ऐप टेस्ट ऑटोमेशन के लिए एक नया tool है, जो Appium, Espresso, UIAutomator, XCTest जैसे मौजूदा tools की सीमाओं को दूर करने की कोशिश करता है। खास तौर पर, UI elements की अस्थिरता और delays के प्रति इसकी अंतर्निहित tolerance, मौजूदा tools के उपयोग में आने वाली समस्याओं को कम कर सकती है।
  • क्योंकि यह YAML-आधारित declarative syntax इस्तेमाल करता है, इसलिए non-developer QA engineers भी आसानी से test cases लिख सकते हैं। हालांकि, अगर कोई YAML syntax से परिचित नहीं है, तो सीखने की कुछ लागत हो सकती है।
  • मोबाइल ऐप टेस्ट ऑटोमेशन tools में Appium का व्यापक उपयोग होता है। Appium का फ़ायदा यह है कि यह कई mobile platforms और programming languages को support करता है, लेकिन stability issues के कारण test failure rate ज़्यादा हो सकता है। Maestro Appium की इन समस्याओं को कितनी हद तक हल कर पाता है, यह देखना होगा।
  • अभी Maestro की documentation अच्छी है और इसका Slack community भी सक्रिय है, इसलिए इसे अपनाने पर विचार किया जा सकता है। लेकिन यह अभी शुरुआती version में है, इसलिए production environment में लागू करने से पहले पर्याप्त सत्यापन ज़रूरी होगा।

4 टिप्पणियां

 
laeyoung 2024-04-12

मैंने करके देखा, और यह काफ़ी जल्दी हो जाता है (setup से लेकर पहले test के लिए yaml बनाने तक लगभग 1 घंटे के अंदर), इसलिए अच्छा लगा।

 
rabolution 2024-04-09

maestro सरल है और इसकी कई अच्छी बातें हैं। लेकिन अभी Android में Korean इनपुट की समस्या है। https://github.com/mobile-dev-inc/maestro/issues/146

एक और कमी यह है कि यह दूसरे test tools की तुलना में तेज़ी से execute नहीं होता। आम तौर पर test tools असली user के विपरीत बहुत तेज़ चलते हैं, इसलिए अगर wait को बारीकी से design न किया जाए तो flaky failures की वजह से test fail होने की समस्या होती थी। लेकिन maestro इतना धीमा है कि कभी-कभी लगता है जैसे इसने बस धीरे-धीरे इंतज़ार करके ही इस समस्या को हल करने का फैसला किया हो। ^^;;;

 
rabolution 2024-04-09

एक तरफ web frontend testing में accessibility elements का उपयोग करने वाला approach लोकप्रिय हो रहा है, और mobile में भी ऐसा ही है। ( https://blog.banksalad.com/tech/test-in-banksalad-ios-2/ संदर्भ )

Maestro text और id पर ज़्यादा निर्भर करता है, इसलिए "상품 목록" जैसे link, button, heading आदि के role में फर्क करना मुश्किल लगा। web में aria-checked, aria-expanded आदि से जिन हिस्सों को verify किया जा सकता है, उनकी कमी भी खली।

मेरे मामले में id conflict रोकने के लिए test-id में prefix वगैरह जोड़ने पड़ते थे, और आखिर में इस तरह लाए गए element ने अपेक्षित text render किया है या नहीं, इसे फिर से test करना पड़ता था, जो काफ़ी झंझट भरा था.

 
smboy86 2024-04-09

जानकारी से भरपूर टिप्पणी के लिए धन्यवाद