Тестирование мобильных приложений: интервью с Dan Cuellar (Appium)

34f06c0687404bc2bf4f87100a6c8af6.png

В преддверии конференции Heisenbug на наши вопросы касаемо мобильного тестирования согласился ответить Дэн Куэллар — создатель опенсорсного фреймворка Appium. До этого Дэн возглавлял отдел тестирования Shazam (Лондон) и Zoosk (Сан-Франциско), ранее — занимался разработкой Microsoft Outlook для Mac и других продуктов из офисной линейки.

Дэн — сторонник опенсорсных решений и тестирования программного обеспечения. Бакалавр компьютерных наук (Школа Компьютерных Наук Университета Карнеги-Меллона, Питтсбург).

— Если мы говорим о мобильном тестировании, то могли бы вы поподробнее рассказать, почему решили выбрать именно эту сферу? Вы начали работать в мобайле ещё в Майкрософт?

d4df081f78b14de29c4c905b5c67f74f.jpg— В Майкрософт я работал над пакетом Офиса для iPad, правда, уже в конце своей карьеры там. В то время мы использовали другой фреймворк для автоматизации тестирования. Я создал Appium, когда начал работать в Zoosk — это дейтинговый сайт в США. У нас было очень популярное мобильное приложение, но не было ничего для автоматизации тестирования, поэтому я изучил то, что было на рынке на тот момент, и пришёл к выводу, что ни один фреймворк не может удовлетворить мои потребности. Что делать в таких ситуациях? Сделать свой собственный.

О программировании на мобильных устройствах


— Если рассмотреть развитие программирования на мобильных устройствах, то какие стадии вы могли бы выделить? Ну, что было в самом начале, что стало следующим шагом в развитии, считаете ли вы, что он уже состоялся, или есть еще куда расти?

 — Первым шагом я бы назвал открытие Apple«ом «ворот» AppStore. Сперва, понятное дело, там был Дикий Запад и какие-то примитивные инструменты. Через несколько лет средства для разработчика (XCode и Android Studio) «настоялись» и уже смогли отвечать большинству потребностей программистов. Мне сложно разграничить какие-то конкретные фазы в развитии данных инструментов, но я бы отдельно отметил, что ARC для iOS открыл новые возможности, так же как и привёл новых людей с собой, так же как и Swift, собственно. Что же касается Android, то я бы, скорее всего, разбил эти фазы согласно основным версиям Android SDK. Они практически совпадают.

— Что является основными проблемами мобильной разработки на текущий момент?

— Я бы сказал, что автоматизация тестирования. Некоторые компании с этим успешно справляются, но большинству ещё есть, куда расти. Мне бы очень хотелось, чтобы однажды Appium достиг уровня Selenium, куда сами вендоры пишут дополнения, это привело бы к большей стабильности для всех. Ситуация вида win-win.

Особенности Appium


13debbec78a547bcb5cfb4a8ebdf111b.png

— Если мы говорим об 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 — отличный способ работать


d2944bc1d1534dc6b96c5399087a0147.jpeg

— Немного личный вопрос –, а почему вы поддерживаете идеологию 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-тестов
  • Статический вынос мозга: что скрывают анализаторы кода?

Комментарии (0)

© Habrahabr.ru