Sobes.tech
Middle

როგორ შეიძლება განასხვავოთ ადგილობრივი აპლიკაციების ტესტირების თვისებები?

sobes.tech AI

პასუხი AI-სგან

ნატიური მობილური აპლიკაციების ტესტირების თავისებურებები:

  • მოწყობილობებისა და პლატფორმების მრავალფეროვნება: საჭიროა ტესტირება რეალურ მოწყობილობებზე (მრავალი მწარმოებელი, მოდელები, ეკრანის გაფართოებები) და ოპერაციული სისტემებზე (iOS, Android) და მათი ვერსიებზე. ემულატორები და სიმულატორები ეხმარებიან, მაგრამ სრულად ვერ ჩანაცვლებენ რეალურ მოწყობილობებს.
  • hardware-თან ურთიერთქმედება: ტესტირება მოწყობილობის ჰარდვერის კომპონენტებთან ინტეგრაციის (კამერა, გეოლოკაცია, Bluetooth, აქსელერომეტრი, მიკროფონი).
  • პროდუქტიულობა და რესურსების მოხმარება: მნიშვნელოვანია შეფასება ბატარეის, მეხსიერების, მონაცემთა ნაკადის მოხმარებისა და აპლიკაციის სიჩქარის სხვადასხვა პირობებში.
  • ინტერაქტიულობა და UX: ტესტირება ჟესტების (pinch, swipe, tap), ეკრანის მიმართულების (portrait, landscape), ასევე ინტერფეისის გამოყენების კომფორტის სხვადასხვა ზომის ეკრანებზე.
  • შეწყვეტები (Interruptions): ტესტირება აპლიკაციის ქცევაზე შემომავალი ზარების, SMS-ების, შეტყობინებების, ქსელის დაკარგვის დროს.
  • ფონზე მუშაობა: როგორ იქცევა აპლიკაცია, როდესაც ის არ არის აქტიური ან მუშაობს ფონზე.
  • ოფლაინ რეჟიმი: ფუნქციონალის ტესტირება ინტერნეტთან კავშირის არარსებობის დროს და მონაცემების სინქრონიზაცია მის აღდგენისას.
  • განახლებები: განახლებების პროცესის და სმარტფონის ვერსიებთან თავსებადობის ტესტირება.
  • ინსტალაცია/წაშლა: სწორი ინსტალაციის, წაშლის და მონაცემების გასუფთავების ტესტები.
  • უსაფრთხოება: მონაცემების დაცვა, ავტორიზაცია, პაროლების და სხვა სენსიტიური მონაცემების შენახვა.
  • მოწყობილობის რესურსების წვდომა: დაშვების მოთხოვნების და მათი სწორად გამოყენების ტესტირება (კონტაქტებზე, ფოტოების, ფაილების წვდომა).
  • ინსტრუმენტები და ავტომატიზაცია: სპეციფიკური ინსტრუმენტების გამოყენება ტესტირებისთვის (Appium, Espresso, XCUITest) და პლატფორმები რეალურ მოწყობილობებზე ტესტირებისთვის (BrowserStack, Sauce Labs).

შედარება ვებ-აპლიკაციებთან (ტესტირების კონტექსტში):

თავისებურება ვებ-აპლიკაცია ნატიური აპლიკაცია
ბრაუზერის დამოკიდებულება მაღალი (საჭიროა ტესტირება სხვადასხვა ბრაუზერებზე) დაბალი
ოპერაციული სისტემის დამოკიდებულება დაბალი (ძირითადად ბრაუზერზეა დამოკიდებული) მაღალი (საჭიროა ტესტირება სხვადასხვა OS და ვერსიებზე)
hardware-ის წვდომა შეზღუდული (მომიჯნავე Browser API-ს საშუალებით) სრული
გავრცელება URL-ის მეშვეობით აპლიკაციების მაღაზიებით (App Store, Google Play)
პროდუქტიულობა ბრაუზერის, ქსელის, სერვერის გავლენით მოწყობილობის, აპლიკაციის ოპტიმიზაციის მიხედვით
განახლების პროცესი მყისიერად ხელმისაწვდომი მომხმარებლის მიერ განახლება სჭირდება

ნატიური აპლიკაციების ავტომატიზებული ტესტირება ხშირად მოითხოვს სპეციალიზებული ფრეიმვორკების გამოყენებას, რომლებიც ურთიერთქმედებენ მომხმარებლის ინტერფეისის ელემენტებთან ოპერაციული სისტემის დონეზე:

// ავტომატიზებული ტესტის მაგალითი Appium-ით (Android)
@Test
public void simpleAppTest() {
    AndroidDriver driver;
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("platformName", "Android");
    caps.setCapability("automationName", "UiAutomator2");
    caps.setCapability("deviceName", "Android Emulator");
    caps.setCapability("appPackage", "com.android.calculator2");
    caps.setCapability("appActivity", "com.android.calculator2.Calculator");

    try {
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
        MobileElement el1 = (MobileElement) driver.findElementById("com.android.calculator2:id/digit_2");
        el1.click();
        MobileElement el2 = (MobileElement) driver.findElementByAccessibilityId("plus");
        el2.click();
        MobileElement el3 = (MobileElement) driver.findElementById("com.android.calculator2:id/digit_3");
        el3.click();
        MobileElement el4 = (MobileElement) driver.findElementByAccessibilityId("equals");
        el4.click();
        MobileElement result = (MobileElement) driver.findElementCast("id", "com.android.calculator2:id/result");
        System.out.println(result.getText()); // შედეგის გამოტანა
        driver.quit();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}