krzysztof Ścira: real testing of hybrid mobile apps
TRANSCRIPT
REAL testing of hybrid mobile apps
Krzysztof "Procek" Ścira
PRAWDZIWE testowaniehybrydowych aplikacji mobilnych
...in perfect world...w idealnym świecie
You have HTML5* knowledgeMasz wiedzę z HTML5*
You write modern web codePiszesz nowoczesny kod webowy
Clicking on HTML selectorKlikanie po selektorach HTML
✗ multiple elements on single selectorWiele elementów na pojedynczym selektorze
✗ clicking beyond screenklikanie poza ekranem
✗ hidden elementsukryte elementy
✗ JS programmatically click*programowe kliknięcia JS*
✔easy to definełatwe do definiowania
✔RWD supportwsparcie RWD
Clicking on the screen X, YKlikanie w zdefiniowany na ekranie punkt X, Y
✗ only on specified screen resolutionwyłącznie na zdefiniowanej rozdzielczości ekranu
✗ may fail on user data changesmoże zawieźć przy zmianie danych użytkownika
✔native clickklik natywny
✔more posibilitieswięcej możliwości
Real testing - only on physical devicesPrawdziwe testowanie – jedynie na
fizycznych urządzeniach
● desktop WebView != Mobile WebView● iOS != Android != Windows Phone● emulator + Cordova Plugins
What you see and what you cannot seeCo widać, a czego nie widać
● hittable (iOS - XCODE)● visible (Android - uiautomatorviewer)● .lenght()?! (front-end - jQuery)
Native functionalities require „native” user actions
Natywne funkcjonalności wymagają„natywnych” akcji użytkownika
IngredientsSkładniki
● ADB● node.js● AngularJS● Coffee or Melissa*
*for Calm or Furious developer ;)
make native actions on devicewith front-end logic
wykonywanie natywnych akcji na urządzeniuprzy pomocy logiki front-endowej
Clue!
ADB
adb shell input tap 300 300adb shell input swipe 100 200 100 850adb shell input text lolloadb shell input trackball roll 0 -5adb shell input keyevent KEYCODE_BACKadb shell input keyevent 4
node.js
exec('adb shell input swipe 100 200 100 850', function (err, stdout, stderr) { if (err){ throw err; } else{ console.log('done'); }});
● save tests and run it directly on webservicezapisywanie testów i uruchamianie ich bezpośrednio na webservice
● prepare project for continuous integrationprzygotowanie projektu pod continuous integration
● iOS and Windows Phone supportwsparcie platform iOS i Windows Phone
● what do YOU need?a czego Ty potrzebujesz?
TODO
About me
Krzysztof "Procek" Ścira● MEng Information
Technology in Metallurgy● Front-end developer
& desi9n.pl CEO● front-end coach in SAGES● [email protected]