Automatyzacja testowania aplikacji mobilnych pojawiła się praktycznie jednocześnie z masowym rozpowszechnieniem smartfonów. Początkowo automatyzacja była trudna, ponieważ narzędzia znacznie różniły się w zależności od platformy, co tworzyło problemy z utrzymywaniem uniwersalnych testów.
Na początku automatyzacja aplikacji mobilnych była prowadzona oddzielnymi narzędziami dla każdej platformy, na przykład, UI Automator dla Androida i UIAutomation/XCUITest dla iOS. Prowadziło to do dublowania scenariuszy testowych i dodatkowych kosztów.
Z czasem pojawiły się ramy cross-platformowe — na przykład, Appium, pozwalające na wykorzystanie wspólnego kodu dla obu platform, a różnorodność bibliotek i sposobów integracji się rozszerzyła.
Główne trudności:
Do automatyzacji aplikacji mobilnych zaleca się korzystanie z narzędzi cross-platformowych (Appium, Detox itp.), a testy budować zgodnie z zasadą ponownego wykorzystania kodu z uwzględnieniem szczególnych cech platformy. Ważne jest to, aby testy były wspierane przez wysokiej jakości mocki i ekspresową instalację danych testowych.
Kluczowe cechy:
Czy można uruchomić testy dla aplikacji iOS na komputerze z systemem Windows przy użyciu Appium?
Nie, pełnoprawna automatyzacja testowania aplikacji iOS jest możliwa tylko na macOS, ponieważ narzędzia takie jak XCUITest/Xcode uznają tylko system Apple.
Dlaczego nie zaleca się uruchamiania testów Selenium/Webdriver bezpośrednio dla aplikacji mobilnych?
Selenium/Webdriver są przeznaczone do testowania przeglądarek. Do aplikacji mobilnych używane są specyficzne sterowniki (na przykład Appium), które emulują pracę wewnątrz aplikacji.
Czy można ufać tylko testowaniu na emulatorach i nie używać rzeczywistych urządzeń?
Nie, tylko emulatory nie pokrywają wszystkich cech platformy: problemy z wydajnością, różnice w sensorach i zachowaniach systemów operacyjnych ujawniają się tylko na rzeczywistych urządzeniach.
Zespół automatyzacji testów pisał oddzielne testy dla Androida za pomocą UI Automator i przez XCUITest dla iOS, nie używając cross-platformowej powłoki.
Zalety:
Wady:
Zespół wprowadził Appium z wzorem Page Object i udało się pokryć 90% testów wspólną logiką, pozostawiając specyficzne zachowania tylko w oddzielnych metodach.
Zalety:
Wady: