воскресенье, 29 апреля 2012 г.

Выбираем и приобретаем девайсы для тестирования - август 2015

"На каких девайсах тестировать приложения?", - является краеугольным камнем тестирования. Соответственно, необходимо выработать стратегию тестирования и уже на ee основе приобретать устройства для разработки/тестирования. Разработка мобильного ПО - очень динамичная область и никогда не стоит на месте. Необходимо быть готовым к обновлению Вашей тестовой стратегии и постоянном обновлении парка устройств

Если приложение уже запущено, то самым первым шагом будет изучение Вашей аудитории, благо информация доступная в Google Play, App Store. После этого можно пропустить половину статьи ;)

Если приложение еще в стадии концепта/разработки, то лучше ознакомиться с балансом сил на каждом из рынков:
  1. так и соотношения сил вендоров девайсов в разбивке по регионам/странам

Информация к размышлению о Китайском рынке и экспансии :)

iOS

Итак, на данный момент, чтобы покрывать 90% рынка нам необходимо поддерживать:

     1. Три типа устройств:

  • телефоны
  • планшеты
  • плееры iPod touch

c шестью разрешениями экрана:

  • 960x640:      iPhone 4, iPhone 4S, iPod touch 4g,  iPod touch 4g 2012
  • 1024x768:    iPad 2, iPad mini
  • 1136x640:    iPod touch 5g, iPhone 5, iPhone 5C, iPhone5S
  • 1334×750:    iPhone 6*
  • 1920×1080:  iPhone 6+*
  • 2048x1536:  iPad 3, iPad 4, iPad Air, iPad mini retina
  • ARM v7: iPhone 4/4S, iPod touch 3g - iPod touch 4g 2012, iPad, iPad 2, iPad 2, iPad 3;
  • ARM v7s: iPhone 5, iPhone 5c, iPad 4, iPod touch 5g
  • ARM 64bit*: iPhone 5S, iPhone 6, iPhone 6+, iPad Air, iPad Air 2, iPad mini retina 1/2
*c июня 2015 обязательно поддерживать 64 бита как для новых приложений, так и для обновления старых

     3. и OS:

  • 7.x
  • 8.x
  • 9.x - ожидается в сентябре 2015, уже есть девелоперская бета 4 - самое время начинать миграцию
Пользователи быстро и охотно обновляются, особенно если сравнивать с темпами внедрения новых версий в Android. К примеру, за 72 часа доля iOS 8 выросла с 0 до 24%

David Smith тоже отслеживает статистику версий iOS и используемых устройств относительно своего приложения Audiobooks. За что ему ОГРОМНОЕ спасибо!




Кто же эти "таинственные ретрограды", не обновляющие прошивку до iOS8 :)? 
  1. владельцы "серых" разлоченных iPhone, т.к. нередко на новую прошивку нет анлока, позволяющего совершать звонки.
  2. владельцы iPhone 4 - даже iOS6 работает посредственно (обещание ускорения работы iOS7 в iOS7.1 так и остались обещаниями)
  3. оставшиеся на iOS6, которым не нравится дизайн iOS7/8 
  4. оставшиеся на iOS7, потому что iOS8 сильнее тормозит на их девайсах (в большинстве случаев - байки :) ) 

Рассмотрим 2 ситуации

      1. "эконом-вариант":
  • iPhone6 plus - новейшее "железо", поддерживает iOS8/9. В zoom режиме - UI как у iPhone6, а также новые восхитительные баги если UI написан спустя рукава :)
  • iPhone6 - новейшее "железо", поддерживает ios8/9. В zoom режиме разрешение как у 5/5С/5S, а также новые восхитительные баги если UI написан спустя рукава :)
  • iPhone5S - как второй по популярности iPhone в данный момент
  • iPod touch 5G - чуть "придушенный" по железу iPhone5 (ниже частота процессора и 512 RAM). Очень популярен в Америке у подростков, которым родители "зажали" айфон. Удобно тестировать приложение в условиях недостатка RAM
  • iPhone 4S - как эталон low-end телефона 
  • iPad mini - без iPad 2 можно обойтись - "железо" такое же. Заодно и протестируете usability на уменьшеном экране. Единственный из non retina девайсов. Можно использовать как эталон low-end таблетки
  • iPad Air2 - новейшее железо, retina дисплей
Все девайсы из этого списка можно обновить до iOS9 - нет бесцельно потраченных денег. iPad Air2 - пока единственный iPad поддерживающий split view в iOS9 (возможностей других iPad не хватит). Ждем новых iPhone/iPad в сентябре :)

      2. более расточительный вариант:
  • iPhone 4 (iOS7) - как последний мамонт не iOS8 и выше - наш "эталон" производительности :)
  • iPhone 4S 3шт. (iOS7, iOS8, iOS9)
  • iPod touch 5g (iOS7)
  • iPhone 5/5С* (iOS8)
  • iPhone 5S 2шт. (iOS8, iOS9)
  • iPad 2 (iOS7),
  • iPad mini 2шт. (iOS8, iOS9)
  • iPad mini 2 (retina)** (идентичная по железу iPad Air, но занимает меньше места и поможет в с юзабилити при небольшом экране таблетки)
  • iPad Air2 2шт. (iOS8, iOS9)
* идентичны по "железу", отличие лишь в корпусе
** идентичен по "железу" iPad Air, отличие только в размерах

Android

Проблема фрагментированности - одна из наиболее острых проблем Android. Логотип с зеленым человечка можно встретить уже не только на холодильнике и стиральной машинке, но и на спутнике.
К, сожалению, с выбором девайсов под Android не все так просто и четкие рекомендации по приобретению дать сложно. Обусловлено это: фрагментированностью, желанием вендоров кастомизировать прошивку и региональными предпочтениями пользователей.  Разбивку по вендорам можно посмотреть в шапке статьи.


Фрагментированность: Android OS - система с открытым исходным кодом, соответственно приходится поддерживать множество комбинацией программного и аппаратного обеспечения. 

Кастомизация: вендорам нужно выделять свои девайсы - как созданием кастомных оболочек, так и, иногда, модификацией составных частей системы (изменения в Android, обновление библиотек, кастомные лаунчеры). Что порождает баги, встречающиеся только на устройствах определенной марки (или даже на конкретных устройствах). Нередко в change-логах на PlayStore появляется: "Ура, теперь наше приложение запускается и работает на девайсе bla-bla-bla" 

Региональные особенности: Наивно ожидать, что в Японии и Китае будут популярны девайсы Motorola или Xiaomi будет популярен в Австралии.  


Краткий дайджест по устройствам на Android:

  1. 3 типа устройств:

  • телефоны
  • планшеты
  • другие устройства (плееры, навигаторы, камеры, телевизоры и тп)
      cо множеством разрешений экрана и screen density (DPI)

Самыми ходовыми разрешениями на данный момент являются: 

  • WVGA (800x480) - де-факто для очень старых hi-end девайсов (Galaxy S2) или low-end устройств 2013 года
  • qHD (960x540) - старые middle-end девайсы (а-ля HTC One S и тп) и китайцы 2013 года
  • HD (1280x720 aka 720p) - стандарт для middle end телефонов даже сейчас
  • FullHD (1920x1080) - стандарт для топовых смартфонов 2014 года и выше. Даже в 2015 не все компании считают 2к разрешение адекватным по соотношению цена/мощность железа/время автономной работы, как пример - Sony Z3, HTC One M9
  • 1440p aka 2k (2560x1440) - стандарт для самых топовых телефонов конца 2014 - середины 2015 года (LG G3/G4, Galaxy S6, MiNote Pro, Galaxy Note4)
  • FullHD/FullHD+ (1920x1080, 1920x1200) - достаточно популярное разрешение для middle-to-high end планшетов в 2013 году.
  • 2K tablet (WQXGA 2560x1600) - практически стандарт для hi-end планшетов (Sony Z4 Tablet, Galaxy Tab S, Asus ZenPad S)

     2.  Наборы логики под архитектуры:

  • ARMv7 и далее
  • x86
  • MIPS

     3.  OS: 4.0.x - 5.x

Из конкретных рекомендаций по покупке: 

1.  изучите долю рынка конкретной версии Android OS, наиболее ходовое разрешения экрана, и наиболее популярные девайсы для Вашей целевой аудитории


На данный момент для смартфонов наиболее популярна версия OS это KitKat (4.4). Froyo, Gingerbread уже ушли со сцены - все больше разработчиков ставят минимальную версию OS 4.0 или даже 4.1

Ожидается:
  • дальнейший рост доли версии KitKat и Lollipop в третьем и четвертом квартале - т.к. большинство новых устройств (даже "китайцев") выходят уже минимум с 4.4, а то и 5.0. 
  • постепенный рост доли Android M, которую по слухам выпустят в сентябре-октябре. В данный момент доступна beta 2

       2.  следует иметь как минимум по одному устройству с логикой от ведущих производителей.

ARM:

  • Qualcomm
  • MediaTek
  • Samsung
  • Nvidia
* Texas Instruments - уже экзотика - компания покидает рынок
x86:
"Зачем?", - спросите Вы. Существуют нюансы, связанные с ограничениями платформы (например Tegra 2 не поддерживает инструкции NEON, поэтому некоторые операции могут занимать больше времени чем на других платформах) А также ошибки с конкретными наборами логики и ПО: если при проигрывании потокового аудио терялись фреймы - на устройствах с Tegra 2 тембр голоса поднимался в несколько раз; в то же время на логике TI, Samsung были всего лишь небольшие паузы в воспроизведении). Особенно это касается приложения работающих с мультимедиа-контентом и игр.


На основе выбранных наборов логики следует выделить наиболее популярные девайсы для региона, в котором будет распространяться Ваше приложение. Статистика ниже для приложения App Brain из их аналитической статьи :)

Например, для Европейского региона, в данный момент популярны телефоныSamsung Galaxy S3 (когда же его сбросят с пьедестала?!), Samsung Galaxy S5, Samsung Galaxy S6, Samsung Galaxy Note 3, Moto G, HTC One M8, Sony Xperia Z3, LG G3.

популярные планшеты: актуальной информации от крупных агенств нет, поэтому буду опираться на внутреннюю статистику - которая достаточно репрезентативка (основана на милиионах уникальных пользователей в день). Как и заведено - балом практически единолично правит Samsung (с редкими вкраплениями Asus, Acer, Sony, Lenovo).


Пока топ 10 таблеток выглядит так: Galaxy Tab 2 7.0, Galaxy Tab 3 7.0, Galaxy Tab 3 Lite, Galaxy Tab 2 10.1, Galaxy Tab 3 8.0, Galaxy Note 10.1, Galaxy Note 8.0, Xperia T2 Ultra, Galaxy Tab, Galaxy Tab 3 10.1 3G

    3.  обязательно приобретите официальные девайсы от Google:

  • поддержка от Google (в т.ч. можно собрать прошивку из исходных кодов с необходимыми правками);
  • первыми получают обновления OS;
  • уж на референсных девайсах-то Ваше приложение должно работать безупречно :)
Особенно рекомендую Nexus 10 - можно эмулировать практически любое разрешние экрана и плотность пикселов из-за гигантского разрешения дисплея.

    4.  Очень желательно донести до заказчика сведения о фрагментированности, особенно если Ваше приложение не "заточено" под конкретные устройства и:

** Мне очень помогает. На практике я стараюсь серьезно поддерживать около 10 устройств. Раз в неделю устраиваю "день Device Anywhere" - провожу smoke-тесты на различных устройствах для уверенности в качестве. Из-за верстки "спустя рукава" или "быстрофиков" - оная может поплыть на двух устройствах (обычно таблетках) с одинаковым дюймажом и разрешением (например производители округляют плотность пикселов в разные стороны и тп)

Остальные out-of-scope устройства стараемся поддержать после релиза первой версии. всегда найдется какое-нибудь устройство, на котором приложение крашится на старте или еще где-то практически со 100% вероятностью.

Полезные ссылки по теме:

среда, 18 апреля 2012 г.

Заметка о тестировании мобильных бизнес-приложений от Keane

Очень много здравых мыслей. Табличка Keane’s Recommended Strategy for Testing очень классно сделана. Пока из минусов вижу только ее некоторую "устаревшесть", прошло уже 5 лет, как ни как.

Читаем

В дополнении к ней рекомендую почитать UTC for Android  - хорошо интерполируется и на другие мобильные платформы

Планирую в течении недели-двух подготовить статью о выборе девайсов для тестирования для iOS, Android приложений. Не переключайтесь :)

четверг, 29 марта 2012 г.

О прошедшем Testing Dojo #1

Вчера был на первом Киевском Testing Dojo, организованное QA Skills

Обстановка была очень позитивной и домашней: приветливые люди, попкорн, пиво и заряд позитива :) Разделились по командам и выбрали начали сетапить веб-приложение. К сожалению, многие (в том числе и я :( ) не сумели быстро восстановить SQL базу. Поэтому, на первой части мы тестировали приложение связанное с поиском файлов, а во второй - альфа-версию калькулятора.

Наша команда - Crashers - состояла из: Александра Майданюка, Наталии ХолодюкВладимира Коноваленко и меня.

В начале Андрей Дзыня рассказал о эвристиках и турах в тестировании:
    Feature tour
    Complexity tour
    Claims tour
    Configuration tour
    User tour
    Testability tour
    Scenario tour

    Variability tour
    Interoperability tour
    Data tour
    Structure tour
Далее обрисовал наши цели: пройти как можно больше туров и разобраться что конкретно мы исследуем в туре. Также были обозначено сколько очков полагается за каждый баг:
При тестировании первого приложения успел побывать в роли наблюдателя и регистратора. Прошли Feature tour, Complexity tour. Очень интересно работать в команде, меняться ролями и, особенно, наблюдать со стороны на коллег по команде: как действуют, как у них "работают мозги" :) Про работу соображалки - мне было особенно интересно, т.к. я работаю на мобильных проектах, и тестировщик там в 90% один.
В первой части у нас был небольшой хаос - притирались друг к другу. Но в перерыве мы собрались, разделили роли и составили небольшую mind-карту.

При тестировании второго приложения все было намного организованнее. Мы разделились на 2 группы в первом под туре: 2 тестировщика, 1 наблюдатель и 1 регистратор - и дело пошло. Нашли много багов - часто регистратор не успевал записывать :) Прошли Claims tour, Configurations tour.

Все команды нашли много багов, но наша команда победила с небольшим отрывом по очкам. На подведение итого и подсчет очков было выделено мало времени, кто знает как сложилась бы ситуация при других обстоятельствах.
Искренне поздравляю Александра, Наталию и Владимира с победой! Очень благодарен команде и организаторам за подобный опыт!


   Работа кипит   

Усиленно тестируем, макушки аж горят :) 
(в порядке удаления от камеры: я, Наталия, Александр, Владимир)


Приз :)



Ссылки:
1. О Testing Dojo от организатора -  Андрея Дзыни: http://www.adzynia.com/2012/03/testing-dojo.html и презентация http://www.slideshare.net/AndrewDzynia/testing-dojo-kyiv-testing-heuristics
2. Об эвристиках от Jonathan Kohl: http://www.kohl.ca/blog/archives/000179.html 
3. Об эвристиках от Mike Kelly: http://www.testingreflections.com/node/view/2823

среда, 21 марта 2012 г.

Небольшой оффтопик о концерте Nightwish


Давеча, 17 марта, побывал на концерте Nightwish в Киеве. Последний раз был еще во "времена Тарьи", году эдак в 2007 :) Ребята молодцы, выкладывались по-полной. Нет, щенячьего восторга, как ребята впереди не испытал, но все было очень по высокому разряду. Постановка и эффекты - отличные. Единственное что не понравилось (хотя, может, и придираюсь) - звук гитар очень смазанный был, почти что гул. Только на соляках было отчетливо слышно. Фотки, к сожалению, получились отстойные - т.к. на телефон фотографировал. 

 

четверг, 23 февраля 2012 г.

Про веб-камеры и жадность :)

Вот уже три дня разведываю прямые ссылки на стримы веб-камер с помощью WireShark и копания в исходниках страниц. Чего только не нагляделся: и зашитых паролей от админок веб-сайтов и веб-камер, и управляемых камер на JAVA которые вешают все браузеры, и посылания java-script команд, и подстановку кукисов.

Что характерно, в странах СНГ менее жадные до ресурсов люди - стримы в *.mjpg, *.wmv, *.asf и иже с ними - обычное дело, да и ссылки на стримы обычно без WireShark можно найти.
Европейцы и американцы значительно жаднее: больше танцев с бубнами, чтобы линки найти; да и большинство камер у них транслирует *.jpg с авто обновлением либо вручную, либо раз в несколько минут.

вторник, 21 февраля 2012 г.

Memory-leak в iOS и Android

Android

NOTE1: лики лучше искать на эмуляторе. На Android в эмуляторе можно находить лики даже в приложениях, сорцов которых у вас нет. (На девайсе в большинстве случаев надо править некоторые конфигурационные файлы, а для этого надо обладать root-правами ). Но придется смириться с некоторыми тормозами в чистке heap и добытии *.hprof файлов с эмулятора (иногда до 3-4 минут)
  1. Качаем и ставим Eclipse memory analyzer
  2. Запускаем Eclipse и подключаем эмулятор или девайс
  3. DDMS>Devices>Update heap
  4. В DDMS выбираем вкладку Heap 
  5. Интенсивно используем проверяемое приложение
  6. Наблюдаем за потребление памяти
  7. Кликаем Cause GC, если потребление не уменьшилось через 30 секунд то
  8. Кликаем Dump HPROF file и сохраняем файл
  9. Конвертируем hprof-conv исходный_файл конечный_файл
  10. Запускаем Memory Ananlyzer>Open Heap Dump
  11. Выбираем Leak Suspects Report
  12. Анализируем подозреваемых
  13. Переключаемся на вкладку Overview>клик на Dominator Tree
  14. Анализируем что течет
  15. Закрываем приложение – наблюдаем сгенерированные файлы отчётов в папке, куда был скопирован *.hprof файл

вторник, 14 февраля 2012 г.

AirPlay

Сегодня наконец-то удалось потестировать AirPlay на iOS 5 + AppleTV. Mirroring, естественно, завелся сразу, но вот трансляцию *.mjpeg видео c девайса на телек не удалось завести вот так сразу (ни из приложения с помощью web-view, ни из Safari), разработчики думают дальше.
А вот тестирование YouTube и кино удалось на славу :-)