Как стать автором
Обновить
49.21

Тестирование мобильных приложений *

Методы, советы, опыт

Сначала показывать
Порог рейтинга
Уровень сложности

«Арендовал телефон — стал фермером»: знакомство с Mobile Farm

Время на прочтение7 мин
Количество просмотров6.3K

Привет, Хабр! На связи Саша, менеджер фермы мобильных устройств в Selectel. Чуть больше года назад я выпустил текст про наши эксперименты во время работы над продуктом, чтобы клиенты могли тестировать ферму удаленно. Тогда мы находились только в начале пути и показали первый вариант решения. Не обошлось без сложностей, которые мы выяснили в том числе благодаря вам. Спасибо, что вписались в авантюру и попробовали себя в роли фермера!

С тех пор многое изменилось: ферма мобильных устройств вышла в релиз, разрослась до 100+ устройств разных моделей и форм-факторов, а в панели управления появился крутой интерфейс. Хочу вкратце рассказать о наших достижениях за последний год и показать, как живет продукт сегодня. Подробности под катом!
Читать дальше →
Всего голосов 31: ↑31 и ↓0+51
Комментарии10

Новости

Устройство для энтузиастов — телефон на ОС «Аврора»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров17K

«Аврора» на фоне «Авроры».

Привет, читатель!

ОС «Аврора» — это отечественный форк финского проекта. Система позиционируется как решение для корпоративного сегмента, однако не так давно появились устройства для личного пользования. Я давно ждал, что эта операционка станет доступна рядовому потребителю и появится возможность разрабатывать под нее приложения.

Недавно посмотрел видео на тему покупки и использования устройства на базе этой ОС и, вдохновившись, пошел в ближайший магазин за смартфоном. После покупки пользовался им как основным девайсом некоторое время и свой опыт изложил в этой статье.
Читать дальше →
Всего голосов 60: ↑56 и ↓4+66
Комментарии47

Утечки памяти в мобильных приложениях: руководство для QA-инженеров

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.8K

Меня зовут Ира и я руковожу отделом тестирования мобильной платформы: наш отдел занимается разработкой инструментов для автоматизации тестирования мобильных приложений Ozon и тестированием внутренних библиотек, которые используются в наших приложениях. Около года назад мы пытались понять, почему у одной из команд джоба с автотестами отваливается по тайм-ауту. К слову, это был проект мобильного приложения для продавцов, и на нем у нас для автоматизации тестирования используются нативные фреймворки: Kaspresso + Kotlin для Android и XCTest + Swift для iOS.

Одна из гипотез заключалась в том, что в приложении могут быть утечки памяти и что-то зависает. Спойлер: дело было не в этом. В общем, около года назад я проверяла, что к чему там у нас с памятью приложения, а сейчас поняла, что полученными знаниями можно и поделиться.

Эта статья будет полезна тем, кто только начинает изучать, что происходит со стабильностью мобильного приложения. Внутри статьи разберёмся с тем, как приложение работает с оперативной памятью; что такое утечки памяти и когда они возникают; как утечки влияют на стабильность работы приложения и как их находить.

Читать далее
Всего голосов 66: ↑65 и ↓1+73
Комментарии11

Как моя 9-месячная дочь заработала больше 1000 долларов в программе bug bounty

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров42K

Всем привет! Сегодня хочу поделиться историей, которая приключилась с моей семьей. Статья не о том, как заработать денег. Это просто рассказ об интересном случае и некоторых тревожных мыслях, связанных с ним.

Читать далее
Всего голосов 121: ↑117 и ↓4+141
Комментарии76

Истории

Неочевидные возможности короля картографического ПО на гаджетах

Время на прочтение10 мин
Количество просмотров45K

Дисклеймер:
Все нижеизложенное является лишь наблюдением и субъективной оценкой на основе личного опыта автора, а не утверждением.

🔥 Примечание — эта статья автора расположилась на первом месте по рейтингу/просмотрам в хабе OSM за 2023г.

Читать далее
Всего голосов 52: ↑52 и ↓0+52
Комментарии156

«Вам повезло!» или как Яндекс устранял баг

Время на прочтение2 мин
Количество просмотров30K

Предисловие

Hello, team! Возможно, столь завуалированное название статьи Вас заинтересовало, и вы решили прочитать ее во что бы то ни стало, дабы понять суть. Но на деле все куда проще, а остроты данной ситуации подбавляют лишь комические реплики службы поддержки Яндекс (далее - ЯД), которая красиво "отшила" мой баг-репорт.

Читать далее
Всего голосов 116: ↑104 и ↓12+121
Комментарии65

Колхоз. Большая история фермы устройств Яндекса

Время на прочтение20 мин
Количество просмотров38K
Все новые сервисы Яндекса, а также апдейты к существующим приложениям и сайтам нужно тестировать: на айфонах, андроидах, десктопах, умных колонках, телевизорах. Раньше часть тестировщиков работали на личных телефонах и компьютерах, а часть — использовали для тестов корпоративные девайсы. Процесс не был гибким и с трудом масштабировался. Поэтому мы сделали свою клауд-ферму устройств. Сначала ей пользовались только отдельные команды тестирования, но со временем ферма стала особенно популярна и среди разработчиков. В итоге мы собрали почти 800 разных девайсов, которые теперь доступны 24/7.



Меня зовут Кирилл Коргов, я отвечаю за то, чтобы ферма устройств работала и развивалась. Кстати, называть её просто фермой было бы скучно, поэтому где-то на заре проекта мы по-доброму назвали её близким по смыслу словом «Колхоз». Если интересно, с чего Колхоз начинался, как пандемия привела к неожиданному росту его популярности и что общего у макбуков с лотками для офисной бумаги, прошу под кат.
Читать дальше →
Всего голосов 106: ↑106 и ↓0+106
Комментарии52

11 признаков Senior QA, к которым я пришёл за годы работы в тестировании

Время на прочтение5 мин
Количество просмотров51K

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

За 9 лет работы в роли Head of QA, я для себя сформулировал набор качеств и модель поведения, которым должен соответствовать настоящий сеньор QA. Своими наблюдениями поделился под катом.

Читать далее
Всего голосов 68: ↑61 и ↓7+62
Комментарии43

Как молодой девушке уехать на Яндекс.Такси в лес и пропасть без вести

Время на прочтение3 мин
Количество просмотров135K

Любой человек может оказаться в неприятной ситуации когда он едет ночью, в лес, в багажнике... Предусмотрительные граждане пытаются избежать подобных инцидентов выбирая сервисы такси известных брендов, которые декларируют безопасность поездки, контроль за водителями и даже вешают в приложении огромную кнопку "БЕЗОПАСНОСТЬ" которую надо жать в случае если что-то пошло не так.

Но помогает ли эта кнопка? Давайте проверим на практике.

Поехать в лес в багажнике вместе с автором
Всего голосов 260: ↑237 и ↓23+281
Комментарии501

Дополняем чек-лист тестирования при обновлении иконки и сплеша в мобильных приложениях

Время на прочтение3 мин
Количество просмотров7.2K


Алоха! Меня зовут Даша, я тестирую мобильные приложения. Скоро Хэллоуин, а FunCorp традиционно обновляет к некоторым праздникам иконку и сплеш. Сейчас именно такой случай, потому что большинство наших пользователей находятся в США. Задача показалась тривиальной, я быстро составила базовый чек-лист на 8 пунктов, но в процессе нашла ещё несколько кейсов, и он вырос до 13-ти (прилагается).

Здесь нет rocket science, я лишь расскажу, на что стоит обращать внимание в таких тасках, чтобы не пропустить лишних багов в прод — и на Android, и на iOS.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+54
Комментарии8

«Однорукий интерфейс»: баг или фича, позволяющая Делимобилю отнимать деньги у пользователей?

Время на прочтение10 мин
Количество просмотров61K
История о том, как с помощью одной нехитрой уловки в логике работы мобильного приложения (и не только) Делимобиль занимается перекладыванием ответственности за автомобиль и выписывает крупные штрафы за то, чего пользователь не совершал.

Также в статье пойдет речь о таких абстракциях, как пользователь — это заказчик, договор — это техническое задание, приложение — это сотрудник компании, а баг-репорт — это исковое заявление.



В конце девяностых, начале нулевых мы повсеместно сталкивались с понятием «однорукий бандит». Так назвали популярные игровые автоматы — яркие, красивые, простые и удобные конструкции, заманивающие граждан. Потянув одной рукой рычаг такого автомата, можно было остаться без денег.

Как говорится, времена меняются. Бандиты существует теперь в специализированных игровых зонах. А на смену им приходят интерфейсы, у которых вместо одного рычага одна кнопка, и с которыми мы также взаимодействуем одной рукой, только уже через смартфон.
Читать дальше →
Всего голосов 173: ↑162 и ↓11+207
Комментарии448

Яндекс автоматически привязывает карту к другому аккаунту

Время на прочтение3 мин
Количество просмотров29K
В последнее время многие сервисы стараются запоминать данные банковской карты при оплате, чтобы в следующий раз пользователю было удобнее платить, и не нужно было заполнять данные карты снова. Почти уверен, что во всех учебниках по маркетингу написано, что в случае привязки карты вероятность покупки возрастает на 146%.



Из способов привязки можно выделить 3 самых основных:

  • Предлагать ненавязчиво — кому нужно сам поставит галочку;
  • Предлагать активно — галочка у привязки стоит по умолчанию, кто забыл её убрать — сам виноват;
  • Привязывать без какого-то уведомления — сервис сам знает, как пользователю будет лучше.

Во всех этих вариантах есть одно общее: привязка происходит к тому аккаунту, где выполняется оплата. Сегодня я хочу рассказать Вам о том, что Яндекс изобрел 4-й вариант привязки: в некоторых случаях карта может быть привязана к (почти) чужому аккаунту.
Почему почти - расскажу далее
Всего голосов 48: ↑41 и ↓7+53
Комментарии101

«Социальный мониторинг». Счёт 1:0 в нашу пользу

Время на прочтение6 мин
Количество просмотров28K

Введение


Приложение вышло → увидели тихий ужас → начали писать отрицательные отзывы → разобрали по полочкам → приложение удалили (отправили на доработку).

Всем привет, в данной статье, когда всё миновало, я хочу рассказать Вам о двух ключевых стадиях из перечисленных выше.

Что за приложение можно почитать тут.
А про оправдания и отправку на доработку тут.

Под катом мы посмотрим с Вами что же такого увидели в самом начале разбора приложения и пробежимся полностью по интересным моментам из кода. Насладимся дырявостью приложения и ни в какую не будем принимать “посмотрите за какие мы сроки это сделали”.

Предыстория


Для меня началось всё в Telegram канале “IT и COPM”. Далеко не сразу увидел пост с ссылкой на приложение в Play Market’e и apk’шку ниже. Только спустя минут 30, от количества постов в этом канале, я решил почитать. На тот момент ребята уже декомпилировали приложение и активно смотрели куда отправляются данные. Выдернули некоторые эндпоинты, хосты, токен, начали постить скриншоты кусков кода. Приложив apk’шку попросили кого-нибудь опубликовать декомплированный код на GitHub — спустя полтора часа он был выложен. Тут подключился я…
Всего голосов 54: ↑48 и ↓6+59
Комментарии48

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн

Локализация приложений: как мы подружили перевод и разработку

Время на прочтение14 мин
Количество просмотров28K


Привет, Хабр! Я ведущий разработчик системы локализации в Badoo. Мы работаем с несколькими большими проектами: Badoo, Bumble, Lumen и Chappy. Сейчас в системе локализации у нас находятся 150 000 фраз и текстов, переведённых на 52 языка. При этом каждое из наших приложений имеет свою аудиторию, свои рынки, свой стиль общения с пользователями, версии для веба и для мобильных платформ.


В этой статье я расскажу, как мы выстроили процесс локализации, как подходим к контролю качества, как релизим переводы в зависимости от платформы, и главное — как мы добились того, что разработчики хорошо отзываются о нашей системе переводов. Это очень важный момент: над проектами трудятся более 300 разработчиков, работа которых должна быть комфортной. Разработчики не переводчики и не должны думать о переводах.


Статья написана по мотивам моего доклада на конференции Highload++ в ноябре.

Читать дальше →
Всего голосов 48: ↑46 и ↓2+61
Комментарии26

Гиперкуб. Как мы обеспечили разработчиков тестовыми устройствами и не потеряли их

Время на прочтение11 мин
Количество просмотров35K

Невозможно полноценно тестировать и отлаживать мобильные приложения без тестовых устройств. Таких устройств должно быть много, потому что один и тот же код на разных моделях ведёт себя по-разному. Но как организовать учёт устройств? Как сделать так, чтобы разработчики и тестировщики быстро и без волокиты получали конкретный смартфон в необходимой конфигурации?


Меня зовут Алексей Лавренюк. Вы можете знать меня как одного из авторов Яндекс.Танка и докладчика на тему нагрузочного тестирования. Потом я измерял энергопотребление мобильных телефонов. Теперь я делаю Яндекс.Ровер в команде беспилотных автомобилей (и иногда подрабатываю Дедом Морозом). А между телефонами и Ровером был Гиперкуб.


Пару лет назад в наш отдел нагрузочного тестирования зашёл руководитель мобильной разработки и пожаловался на ситуацию с тестовыми устройствами. Телефоны кочевали из рук в руки, выбрать и быстро найти телефон было проблемой. У нас уже был опыт работы с мобильными устройствами: мы строили цифровой амперметр, чтобы измерять их энергопотребление. Поэтому мы решили помочь коллегам и быстро сделать классную штуку: казалось, работы всего на три месяца. Смеюсь над собой, наивным, из 2020 года и рассказываю, что нас ждало на самом деле.




Читать дальше →
Всего голосов 83: ↑81 и ↓2+105
Комментарии57

Как ездить на такси за чужой счёт — уязвимости на примере одного сервиса

Время на прочтение6 мин
Количество просмотров36K
После нахождения уязвимостей в мобайл-банкинге украинского банка (пост) я захотел немного сменить направление и перейти от финансовых сервисов к другим.

На глаза попалась рекламная статья про обновлённое мобильное приложение такси, его я и выбрал своим подопытным.

Здесь инструменты те же: ПК, Fiddler, Android-смартфон – устанавливаем приложение и отслеживаем его запросы.

Я специально не рассматривал запросы и ответы при регистрации или логине (например, не стал проверять возможность перебора пароля), а перешёл к функциям, доступным после регистрации.

Так как у меня не было истории поездок с помощью данного сервиса, а проводить реальную поездку для тестирования мне не хотелось, мне нужны были данные кого-либо ещё из клиентов. Я решил спросить знакомых на наличие аккаунта в сервисе. Среди знакомых нашлись клиенты этого такси, но вызывали они его по-старинке – с помощью звонка.

Тогда я начал искать номера телефонов среди общедоступной в интернете информации – например, на официальном сайте и среди отзывов в соцсетях (зачастую недовольные клиенты, описывая жалобы, вместо отправки компании в личку своих контактов оставляют их в комментариях на всеобщее обозрение). В итоге я нашёл пару телефонов на одном из сайтов по поиску работы. Один из них я подставил в последующие запросы и получил информацию, которая не должна была быть доступна кому-либо извне.


Читать дальше →
Всего голосов 96: ↑96 и ↓0+96
Комментарии22

Уязвимости Киевстара: 1) разбор предыдущего поста про пароли + 2) инфо о покупках, проходящих через сервисы Киевстара

Время на прочтение7 мин
Количество просмотров34K
Привет. Я тот, кто полгода назад получил логины и пароли Киевстара от таких важных сервисов, как: JIRA, Amazon Web Services, Apple Developer, Google Developer, Bitbucket и многих других, зарепортил их по Bug Bounty и получил 50 долларов различные комментарии к репостам моей публикации.

Например:


Спасибо вам за поддержку и комментарии! Итоги голосования:


Детали о старой и новой ситуации тут
Всего голосов 65: ↑60 и ↓5+55
Комментарии42

Как я чуть не подхватил вирус, пытаясь продать сапоги

Время на прочтение22 мин
Количество просмотров45K


Я из тех людей, кто с наступлением осени старается проводить на улице меньше времени. В Москве это не сложно: ограничиваешься маршрутом от дома до офиса и обратно. Однако промозглая погода может причинить дискомфорт и в помещении, особенно если ваше рабочее место, как и моё, находится у окна, а каждый второй коллега, жалуясь на духоту, просит проветрить кабинет. Чтобы не впасть в хандру, этой осенью я обновил гардероб.

Размышляя о судьбе ненужных вещей, я прикидывал, что с ними делать: выкинуть, порезать на тряпки, отдать донашивать младшему брату? Но для одной вещи ни один из этих способов не годился: то были кожаные сапоги 44 размера приличного вида, но порядком мне надоевшие. Их я решил продать на Avito. Загрузил фотографии, указал ненастоящее имя (информационная безопасность же), выставил сапоги, пару других вещей и пошёл спать. Откуда мне было знать, что это обернётся длительным анализом приложения на предмет скрытых угроз?
Читать дальше →
Всего голосов 165: ↑154 и ↓11+143
Комментарии85

UI-автотесты: как делать не стоит

Время на прочтение11 мин
Количество просмотров77K
Здравствуй, Хабр. Меня зовут Виталий Котов, я работаю в отделе тестирования компании Badoo. Я пишу много UI-автотестов, но ещё больше работаю с теми, кто занимается этим не так давно и ещё не успел наступить на все грабли.

Итак, сложив свой собственный опыт и наблюдения за другими ребятами, я решил подготовить для вас коллекцию того, «как писать тесты не стоит». Каждый пример я подкрепил подробным описанием, примерами кода и скриншотами.

Статья будет интересна начинающим авторам UI-тестов, но и старожилы в этой теме наверняка узнают что-то новое, либо просто улыбнутся, вспомнив себя «в молодости». :)

Поехали!



Читать дальше →
Всего голосов 65: ↑62 и ↓3+59
Комментарии64

Bug Bounty Киевстара: награда за админский доступ к сервисам Jira, AWS, Apple, Google Developer, Bitbucket — 50 долларов

Время на прочтение4 мин
Количество просмотров46K
История о совпадении, везении и вознаграждении.

Два года назад пользователь dinikin написал пост, как он нашёл уязвимость в личном кабинете крупнейшего мобильного оператора Украины — Киевстар. Уязвимость позволяла добавлять к себе в аккаунт без верификации любой номер телефона Киевстар и полностью управлять им:

  • просматривать баланс и детализацию звонков;
  • просматривать PUK-код и серийный номер SIM-карты, что позволяет самостоятельно заменить SIM-карту;
  • добавлять новые услуги и менять тарифный план;
  • и самое главное — переводить деньги с телефона на телефон.

Уязвимость была закрыта, а автору в благодарность выплатили огромную премию подключили 4000 мегабайт интернета на 3 месяца.

Добавляем произвольный телефон в личном кабинете оператора мобильной связи Киевстар (Украина)

Позже хабрапользователь rewiaca в своём посте "Почему в Украине нет белых хакеров или история взлома Киевстар" описал ситуацию со столь щедрой наградой более эмоционально.

В комментариях тогда отметился Виталий Султан, Soultan, Chief Digital Officer Киевстар, пообещав вскоре запустить в компании Bug Bounty.

И вот, спустя почти два года, Киевстар анонсирует запуск собственной программы Bug Bounty. Одной из первых фраз в анонсе была следующая:
В «Киевстаре» отметили, что приняли решение запустить программу после того, как нашли уязвимость во время бета-тестирования обновленной системы «Мой Киевстар».
Как видим, компания лукавит, ведь именно пользователь Habrahabr.ru dinikin нашёл уязвимость в системе «Мой Киевстар».
Впрочем, ближе к делу.
Всего голосов 83: ↑75 и ↓8+67
Комментарии190
1