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();
}
}