Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Тестирование PhoneGap-приложений: специфика + опыт

1,102 views

Published on

Доклад Сергея Иванова на конференции SQA Days-20. 24-26 ноября 2016. Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Тестирование PhoneGap-приложений: специфика + опыт

  1. 1. Software quality assurance days 20 Международная конференция по вопросам качества ПО sqadays.com Минск. 24–26 ноября 2016 Сергей Иванов Харьков, Украина Тестирование PhoneGap-приложений: специфика + опыт
  2. 2. О чем пойдет речь Виды кроссплатформенных приложений Особенности Phonegap (и в целом HTML) приложений К чему быть готовым при тестировании Какие инструменты могут помочь Пара слов про автоматизацию Тестирование PhoneGap-приложений: специфика + опыт
  3. 3. Тестирование PhoneGap-приложений: специфика + опыт Какие бывают?
  4. 4. Тестирование PhoneGap-приложений: специфика + опыт Gamedev
  5. 5. Тестирование PhoneGap-приложений: специфика + опыт Compile to Native C++ Ruby or C# JS JS
  6. 6. Тестирование PhoneGap-приложений: специфика + опыт Hybrid (HTML + JS)
  7. 7. http://propertycross.com/ Тестирование PhoneGap-приложений: специфика + опыт Где можно пощупать и сравнить?
  8. 8. Тестирование PhoneGap-приложений: специфика + опыт В чем соль? ? Приложение работает в мини-браузере (webview)
  9. 9. Тестирование PhoneGap-приложений: специфика + опыт WTFview? iframe или вкладка браузера И в нем приложение Web-приложение И скучно как-то
  10. 10. Тестирование PhoneGap-приложений: специфика + опыт В чем соль? Приложение работает в мини-браузере (webview), но есть (ограниченный) доступ к Native API
  11. 11. Камера Файловая система Компас GPS Медиа Уведомления Cеть Тестирование PhoneGap-приложений: специфика + опыт Native API? Акселерометр Контакты Сканер отпечатков пальцев
  12. 12. Любые. От простых до сложных. Ограничение - плагины Тестирование PhoneGap-приложений: специфика + опыт Какие приложения возможны?
  13. 13. Тестирование PhoneGap-приложений: специфика + опыт Подбор тестового окружения SPA js приложение, работающее в специфическом браузере (webview) Нативные плагины
  14. 14. Свежатина с приходом 7.0 Тестирование PhoneGap-приложений: специфика + опыт Прекрасный мир webview на Android Страх и ужас до 4.4 Немножко стабильности и отладки с 4.4 Красота (нет!) начиная с 5.0
  15. 15. Android default (webkit) Надстройки производителей Нет возможности дебага Тестирование PhoneGap-приложений: специфика + опыт Android webviewS до 4.4
  16. 16. Одинаковое (почти) на разных девайсах (Chromium 30 on 4.4.0 – 4.4.2, Chromium 33 on 4.4.3 – 4.4.4) Можно подебажить (chrome://inspect/#devices) Тестирование PhoneGap-приложений: специфика + опыт 4.4 - now Chromium!
  17. 17. Android System WebView Одинаковое (ну совсем почти) на всех девайсах Внезапно обновляется и ломает что-то Внезапно обновляется и чинит что-то Можно подписаться на betа (на гугл акк) Комменты :) Тестирование PhoneGap-приложений: специфика + опыт 5.0 - auto updating
  18. 18. Берется напрямую из chrome.apk Т.е. зависит от версии хрома на девайсе Можно брать из chrome dev или beta, выбирается в dev settings Тестирование PhoneGap-приложений: специфика + опыт 7.0 - choose your own
  19. 19. Crosswalk project: Одинаковое webview +25 мб к apk Незаменим для поддержки Android <4.4 Два apk (arm/Intel) Тестирование PhoneGap-приложений: специфика + опыт Сильно много? Упростим)
  20. 20. “The web has always been a second-class citizen on iOS (which is ironic, since the iPhone is largely responsible for the mobile web existing as it does today). UIWebView is massive and clunky and leaks memory. It lags behind Mobile Safari, which has the benefit of the Nitro JavaScript engine.” Тестирование PhoneGap-приложений: специфика + опыт iOS до 8.0 UIWEBVIEW Slow JS Written by Mattt Thompson — August 24th, 2014
  21. 21. WKWebView Быстрее, выше, сильнее (60FPS scrolling, поддержка жестов) Обновляется с обновлением ОС Минорные апдейты почти ничего не ломают Мажорные - могут убить всё нафиг (iOS 9 App Transport Security) Тестирование PhoneGap-приложений: специфика + опыт iOS 8+
  22. 22. Тестирование PhoneGap-приложений: специфика + опыт Совет Читайте what’s new и смотрите betа
  23. 23. Краши, ANR, зависят от девайса - всё как всегда) Тестирование PhoneGap-приложений: специфика + опыт А нативные плагины?
  24. 24. Какие версии ОС поддерживаем? Есть ли плагины? В итоге выборка может быть существенно меньше, чем для натива, если мало используем system API, а webview - одинаковые Тестирование PhoneGap-приложений: специфика + опыт Выводы по тестовому окружению
  25. 25. В JS Большая часть В логике JS (не зависит от webview) В работе JS в разных webview Нет крашей Есть “белый экран” Тестирование PhoneGap-приложений: специфика + опыт Какие ошибки могут быть? ● В HTML ○ Верстка ● В нативной части ○ Меньшая часть ○ Краши
  26. 26. Опять плагин - NetworkStatus Можем хранить данные в: Файловой системе Local storage Тестирование PhoneGap-приложений: специфика + опыт Ну и сеть, куда без нее
  27. 27. Тестирование PhoneGap-приложений: специфика + опыт Ошибки поинтереснее-поспецифичнее
  28. 28. Тестирование PhoneGap-приложений: специфика + опыт Скорость работы и плавность анимаций Сильно зависит от девайса Грустно-печальная не так хороша как в нативе Hardware acceleration
  29. 29. Click vs touch 300 ms delay Touchstart - touchend - 300 ms wait for tap - no tap -> click UI изменяется -> ghostclick Тестирование PhoneGap-приложений: специфика + опыт Ghost clicks
  30. 30. Клавиатура - плагин) Может вызвать window.resize Тестирование PhoneGap-приложений: специфика + опыт Инпуты + клавиатуры
  31. 31. В приложении реализуются посредством верстки (html/css) 1 CSS Pixel = ~1.5 Device Pixel (для High-DPI) Проблемы с размерами отдельных элементов (e.g. шрифтов) Сплеши, иконки приложения - через config.xml Тестирование PhoneGap-приложений: специфика + опыт Различные разрешения/dpi
  32. 32. Тестирование PhoneGap-приложений: специфика + опыт Галактеко опасносте!
  33. 33. Одно webview, вся навигация - внутри iOS - только кнопки в приложении А в Android есть Back должен возвращать на прошлый экран (а не закрывать приложение) должен закрывать приложение (а не делать ничего) Тестирование PhoneGap-приложений: специфика + опыт Навигация внутри приложения
  34. 34. Одно webview, вся навигация - внутри. Что происходит при смене ориентации в Android? Тестирование PhoneGap-приложений: специфика + опыт Смена ориентации
  35. 35. Одно webview, вся навигация - внутри Сложно вернуться на текущий скрин Тестирование PhoneGap-приложений: специфика + опыт Восстановление приложения
  36. 36. Скоро рассвет... Тестирование PhoneGap-приложений: специфика + опыт InAppBrowser
  37. 37. Тестирование PhoneGap-приложений: специфика + опыт Что есть полезного?
  38. 38. Надо допиливать, но работать будут Тестирование PhoneGap-приложений: специфика + опыт Встраиваемые фреймворки-инструменты
  39. 39. Менее полезные Тестирование PhoneGap-приложений: специфика + опыт Инструменты для тестирования нативных Пример: Logcat - краши редки -> информации мало, важнее - то, что в JS происходит
  40. 40. iOS: xCode Safari remote Debugging with Web Inspector Тестирование PhoneGap-приложений: специфика + опыт Debugging Android: Chrome remote Debugging (chrome://inspect)
  41. 41. Нет доступа к плагинам Вообще не то webview где в итоге все будет работать Тестирование PhoneGap-приложений: специфика + опыт А еще можно поднять Web-версию ● Быстро ● Доступно Но логику JS проверить можно)
  42. 42. Ну….есть ripple) Вернее был) Тестирование PhoneGap-приложений: специфика + опыт Специальные инструменты
  43. 43. Доступные инструменты собраны в одном месте Удобненько Mac’овские штучки под виндой Тестирование PhoneGap-приложений: специфика + опыт GapDebug
  44. 44. Тестирование PhoneGap-приложений: специфика + опыт Пара слов об автоматизации driver.switch_to.context(context_name)
  45. 45. Тестирование PhoneGap-приложений: специфика + опыт Разбейте по уровням * картинка с пирамидой уровней тестирования * JS - автоматизируйте Web-версию с помощью Selenium. Быстрее, стабильнее. Services - автоматизируйте с помощью soapUI или python + requests или что угодно. Native - ручками
  46. 46. Тестирование PhoneGap-приложений: специфика + опыт Такой себе последний слайд WebView - своенравно Платформы - разные Развивается - быстро Разделяйте native и JS части
  47. 47. Тестирование PhoneGap-приложений: специфика + опыт Спасибо за внимание s.ivanov@mobidev.biz

×