В преддверии конференции Heisenbug на наши вопросы касаемо мобильного тестирования согласился ответить Дэн Куэллар – создатель опенсорсного фреймворка Appium. До этого Дэн возглавлял отдел тестирования Shazam (Лондон) и Zoosk (Сан-Франциско), ранее – занимался разработкой Microsoft Outlook для Mac и других продуктов из офисной линейки.
Дэн – сторонник опенсорсных решений и тестирования программного обеспечения. Бакалавр компьютерных наук (Школа Компьютерных Наук Университета Карнеги-Меллона, Питтсбург).
– Если мы говорим о мобильном тестировании, то могли бы вы поподробнее рассказать, почему решили выбрать именно эту сферу? Вы начали работать в мобайле ещё в Майкрософт?
– В Майкрософт я работал над пакетом Офиса для iPad, правда, уже в конце своей карьеры там. В то время мы использовали другой фреймворк для автоматизации тестирования. Я создал Appium, когда начал работать в Zoosk – это дейтинговый сайт в США. У нас было очень популярное мобильное приложение, но не было ничего для автоматизации тестирования, поэтому я изучил то, что было на рынке на тот момент, и пришёл к выводу, что ни один фреймворк не может удовлетворить мои потребности. Что делать в таких ситуациях? Сделать свой собственный.
О программировании на мобильных устройствах
– Если рассмотреть развитие программирования на мобильных устройствах, то какие стадии вы могли бы выделить? Ну, что было в самом начале, что стало следующим шагом в развитии, считаете ли вы, что он уже состоялся, или есть еще куда расти?
– Первым шагом я бы назвал открытие Apple’ом «ворот» AppStore. Сперва, понятное дело, там был Дикий Запад и какие-то примитивные инструменты. Через несколько лет средства для разработчика (XCode и Android Studio) «настоялись» и уже смогли отвечать большинству потребностей программистов. Мне сложно разграничить какие-то конкретные фазы в развитии данных инструментов, но я бы отдельно отметил, что ARC для iOS открыл новые возможности, так же как и привёл новых людей с собой, так же как и Swift, собственно. Что же касается Android, то я бы, скорее всего, разбил эти фазы согласно основным версиям Android SDK. Они практически совпадают.
– Что является основными проблемами мобильной разработки на текущий момент?
– Я бы сказал, что автоматизация тестирования. Некоторые компании с этим успешно справляются, но большинству ещё есть, куда расти. Мне бы очень хотелось, чтобы однажды Appium достиг уровня Selenium, куда сами вендоры пишут дополнения, это привело бы к большей стабильности для всех. Ситуация вида win-win.
Особенности Appium
– Если мы говорим об Appium, то что стало основной причиной для его появления? Ведь в то время уже были разные фреймворки. Разве эмуляторов недостаточно?
– Appium закрывает несколько потребностей, которые не смогли быть решены с помощью SDK вендора. Первая – это независимость от языка. Другие фреймворки требуют использования специфических языков (в случае с iOS это даже язык, который вообще отличается от языка разработки), что приводило к невозможности автоматизации процесса тестирования, так как даже приходилось обращаться к другим специалистам для написания тестов.
Appium же создал общий фреймворк для iOS и Android, что позволило обмениваться кодом. Ну и отдельно стоит отметить, что Appium упаковал это всё в знакомую модель от Selenium real-time сервера, что в принципе является стандартом для веб автоматизации, соответственно, это привело к небольшой стоимости внедрения и использования разработчиками.
– Знаете ли вы об опыте использования Appium в Яндексе – одном из наших IT-лидеров? Эти парни даже написали очень подробный отчёт о применении, в том числе подробно описали все проблемы, с которыми столкнулись, правда, буду честен – это было даже раньше версий 1.0 и 1.1
– Скажу больше – я даже встречался с программистами Яндекса в Санкт-Петербурге в этом году, и они показали мне, как у них сейчас обстоят дела с нашим фреймворком. Боюсь, что я не имею права рассказывать это в интервью, но эти парни используют наш фреймворк на полную, и да, мы с ними успешно коммуницируем по всем проблемам, о которых они нам сообщают.
– Кстати, они отдельно отметили проблемы с производительностью на больших объёмах тестовых данных – как сейчас с этим обстоит дело? Удалось достичь каких-то успехов в решении проблемы?
– Версия 1.0 уже стала многократно быстрее и стабильнее, в принципе, это же можно сказать и о версии 1.5 применимо к 1.0. С одной стороны – да, всё стало лучше, с другой – наши руки связаны отсутствием поддержки со стороны Apple. Они сами (Apple) часто ломают свои SDK для автоматизации, на которых у нас всё построено, а так как это закрытый источник, то мы полностью зависим от того, когда и как они это починят.
О рынке мобильных приложений
– Если мы говорим о том, что всё больше людей переходят на использование только мобильных телефонов и откровенной перегрузке рынка мобильных предложений, как вы считаете, что можно считать лучшей стратегией – выпустить приложение как можно быстрее и планомерно улучшать и вычищать его от багов, или же досконально оттестировать его, учитывая все возможные проблемы, но при этом запуститься позже?
– Лет пять назад я бы смело сказал – запускать и чем быстрее, тем лучше. В 2008-м можно было написать полную лажу и заработать на этом миллионы, а сейчас рынок весьма и весьма более требователен. Мне кажется, что сейчас еще и не менее важно и быстро отвечать на замечания пользователей, держать руку на пульсе, оперативно все править, так сказать, еще и быстрый цикл доработки. Полуготовая v1 (первая версия) на современном мобильном рынке просто не выживет.
Opensource – отличный способ работать
– Немного личный вопрос – а почему вы поддерживаете идеологию opensource?
– Я поддерживаю эту идеологию потому, что это отличный способ работать. У многих людей возникают одинаковые проблемы, которые не относятся к их работе напрямую, но их надо решить. Стоит всем собраться и приложить немного усилий, как получается отличный инструмент, которым еще и приятно поделиться. Это позволяет существовать небольшим компаниям, особенно тем, которые только выходят на рынок, и получать все необходимые технические решения, без того, чтобы платить огромные деньги.
Большие бизнесы могут позволить себе заплатить за MSSQL потому что это, в свою очередь, приносит им большую прибыть. А общественные организации или стартапы вынуждены придумывать какие-то обходные пути, чтобы решить эту задачу бесплатно. Для них лицензия за 10,000 USD бессмысленна – они даже не работают с такими суммами в принципе. Я считаю, что предоставлять широкий доступ к разным техническим решениям – это правильный путь, ведь чем больше выбора у каждого человека, тем больше у него возможностей чего-то достичь, в чём-то реализоваться. Поэтому в целом я считаю, что наличие опенсорсных решений – это отличная альтернатива платным, хотя платное решение совсем не обязательно значит плохое.
– Ну и последний вопрос – почему вы выбрали эту конференцию? Могли бы вы оценить наших разработчиков и то, как они выглядят на мировом рынке?
– Мне всегда нравится встречаться и общаться с разными людьми – из других стран, с другим жизненным опытом. Я уже выступал в России до этого, и могу сказать, что тут очень квалифицированные разработчики.
Выше мы уже обсуждали, что ваши ребята из Яндекса настолько комплексно используют наш фреймворк, что это едва ли не единственный пример такого рода в мире. Так что я приезжаю сюда не только поделиться своим опытом, но и получить новый.
— Отлично. Спасибо за ответы!
А для расширения кругозора в сфере тестирования советуем вам посетить конференцию Гейзенбаг 2016 Moscow. Кстати, на конференции можно будет встретиться с Дэном, послушать его доклад, а потом и лично пообщаться в дискуссионной зоне.
Список докладов:
- No Such Thing as Manual Testing and Other Confusions
- Appium: Automation for Apps
- Как научить роботов играть в игры?
- Hero’s Journey to Perfect System Tests — Eight Assessment Criteria for Tests’ Architecture Design
- Page Objects — лучше меньше, да лучше
- Тестирование распределенных систем
- Тестирование Android–приложения Juno с ️: CI, Unit, Integration и Functional (UI) тесты. 100% Kotlin, 90%+ RxJava, Spek, JUnit, DSL для UI тестов
- Combining manual and automated testing: process and tools
- Список покупок: что нужно не забыть при запуске JMeter-тестов
- Статический вынос мозга: что скрывают анализаторы кода?
Автор: JUG.ru Group