Как оптимизировать мобильное приложение в работе с сервером
Тонкая настройка смартфона почти всегда занимает достаточно много времени, а часто и вовсе не имеет смысла, так как всё что подходит для одного приложения, абсолютно неактуально для другого.
После выхода видео о повышении плавности «Рабочего стола MIUI» и «Poco лончера» несколько человек интересовались, возможно ли ускорить другие приложения и игры на смартфоне таким же методом? Эта статья является моим ответом на этот вопрос.
Для начала стоит понимать, что система Android (как и любая другая) обязана уметь переводить написанный программистом текст в машинный код, именно для этого и существуют так называемые компиляторы.
Я не буду забивать вам голову теорией и знаниями, которые вам вряд ли понадобятся, скажу лишь, что методы компиляции приложений могут быть разными.
Благодаря командам которые вы обнаружите ниже, вы сами сможете выбирать как настроить то или иное приложение, а может и вовсе предпочтёте оставить всё как есть. Для выполнения всех операций вам понадобится смартфон, провод питания, компьютер и около десяти минут свободного времени.
Для начала скачиваете из нашего телеграм канала (ссылка ниже) архив, в котором содержится драйвера и программа для настройки. Разархивируете их и устанавливаете драйвер (если не делали этого раньше).
Затем берёте смартфон, включаете в меню «Для разработчиков» отладку по USB и подключаете смартфон к компьютеру выбрав режим «Передача файлов/Android Auto».
Открыв в папку «Программа» пишите в адресной строке - cmd , нажимаете Enter и появляется новое окно, в котором нужно ввести adb devices и снова нажать Enter.
Если после этого надписи на экране похожи на те, что вы видите на изображении ниже, значит всё подключено правильно и можно приступать к основным настройкам.
Теперь покажу доступные команды и объясню что каждая из них делает:
- adb shell cmd package compile -m speed - Уменьшение времени запуска приложения
- adb shell cmd package compile -m time - Ускорение установки обновлений (только установки, не получения)
- adb shell cmd package compile -m everything - Общая оптимизация приложения при которой может быть достигнута максимальная производительность
Таким образом вы сами можете выбрать как именно вы хотите настроить работу той или иной программы в вашем смартфоне. Допустим я хочу сделать общую оптимизацию приложения «Камера» (мод Google камеры для Redmi Note 10 Pro).
Для этого я делаю долгое нажатие на его значок и зайдя в пункт «О приложении», нажимаю на «i» (в правом верхнем углу) где меня интересует строчка «Имя пакета» (всё это вы можете делать не отключая смартфон от компьютера, поэтому это удобно).
Теперь ввожу на компьютере выбранную команду и добавляю к ней имя пакета, чтобы указать какое именно приложение я хочу оптимизировать. В конечном итоге команда (в моём случае) выглядит так - adb shell cmd package compile -m everything com.android.MGС
После ввода нажимаете Enter, дожидаетесь появления надписи « Success » и можете ускорять следующее приложение или просто отключить телефон от компьютера.
Единственное, вам нужно понимать, что ускорение не берётся из ниоткуда. Помимо оптимизации запуска, файлы любого приложения будут перераспределены, из-за чего приложение начнёт занимать больше места в памяти, поэтому вам нужно выбрать что важнее, производительность или свободное место.
На примере этой статьи хочу понять интересна ли вам эта тема, так как в публикациях о настройке смартфона через SetEdit некоторые действия будут примерно такого же уровня "сложности". Так что жду ваших отзывов.
В этой небольшой статье я хочу поделиться с вами опытом, как программно оптимизировать производительность приложения Андроид за 5 простых шагов на примере создания цифровой версии игры «Корона Эмбера».
До создания серьезных приложения со сложной структурой View и Layout'ов мы особо не задумывались над тем, как простые и логичные действия в стиле «смотрите, я набросал дизайн из лэйаутов» могут серьезно замедлить работу всей программы.
Помимо прочего, задача с «Короной Эмбера» осложнялась еще и тем, что игра, которую мы задумали перенести на Андроид платформу, была сама по себе достаточно насыщенной различными компонентами, которые как-то надо было умещать на игровом поле или рядом с ним.
В статье я собрал наш успешный опыт и облёк его в удобную и читабельную форму, полезную для тех, кто все еще гуглит «как программно оптимизировать приложение под Андроид» или «почему мое приложение лагает».
Итак. Исходная точка (то, как это все выглядело ДО оптимизации)
Дизайн приложения был создан из «правильной» кучи около двух сотен View и десятка Layout'ов. Загрузка игрового поля происходила около 5 секунд, а почти каждое действие зависало еще на 1-2 секунды. И если на прогрессивных устройствах и эмуляторах лаги были практически незаметны, то на большинстве менее современных устройств картина выглядела достаточно печальной.
Понятно, что это не устраивало ни меня, ни нашу команду, ни тестеров. И хотя мы были искреннее уверены, что все оптимизировано дальше некуда, мы принялись искать информацию.
Часть знаний, которыми я хочу поделиться, мы нашли здесь — классные видео-уроки с русскими субтитрами (рекомендую), часть — на Хабре, часть — в глубинах Интернета, на том же сайте Google Developers.
Причем, каждый раз получая новую порцию и проводя очередную оптимизацию, мы были уверены «все теперь дальше некуда, быстрее не будет» и с каждым шагом открывали для себя все больше и больше нового.
И вот, как это происходило.
Шаг 1. Измерение
По сути это даже не шаг, а настойчивая рекомендация постоянно измерять свою производительность. Для этого в Андроид Студио предусмотрено несколько специальных программ: Android Device Monitor с HierarhyViewer, SystemTracing, Method Profiling; Android Monitor с Memory, CPU и GPU мониторами. Описывать их работу не цель данной статьи, вы легко можете найти гайды здесь же, на Хабре, или в упомянутых видео-уроках.
Суть в том, что чтобы оптимизировать производительность, нужно сначала понять где же она «спотыкается».
Хотя, даже без измерения, есть несколько вещей, на которые необходимо обращать внимание каждому разработчику и мы шагаем дальше.
Шаг 2. Оптимизация иерархии и снижение веса
Основная потеря производительности приложений происходит при пересчете и перерисовке отображенных Layout'ов. Причем чем «тяжелее» лэйаут — тем дольше происходит перерасчет его показателей. И тут надо обратить внимание на следующие моменты:
— в вашей иерархии не должно быть вложенных LinearLayout с параметрами «weigh» (вес). Измерение такого лэйаута занимает в два (три, четыре! — в зависимости от вложенности) больше времени. Лучше заменить эту конструкцию на GridLayout (или support.v7.GridLayout для API меньше 21);
— некоторые LinearLayout можно заменить на RelativeLayout, тем самым убрав дополнительные вложения, например;
— оказывается, RelativeLayout также измеряется дважды. Где возможно — его нужно заменить на более «легкий» FrameLayout.
Изучив нашу разметку мы с ужасом обнаружили, что в ней есть вложенные до четырех (!) раз LinearLayout с параметром вес, игровое поле состоит из почти сотни RelativeLayout (клетки поля), а некоторые Layout просто не нужны.
(Зеленым отмечено допустимое вложение, желтым — нежелательное, оранжевым — опасное, красным — «никогда-так-не-делайте!»)
После этого мы немного переработали структуру. «Персонажа» вынесли в отдельный фрагмент с RelativeLayout, все вложенные Linear заменили на (один!) support.v7.GridLayout, а все RelativeLayout (на скрине их не видно — это клетки поля) заменили на FrameLayout. Получилось и симпатишней и производительней.
Однако до конца наши проблемы это не решило, и мы пошли дальше.
Шаг 3. Лишняя перерисовка (Overdraw)
Оказалось, что Андроид тщательно прорисовывает каждую картинку, каждый background у каждого View на экране. Здесь он, конечно, молодец. Но что делать, если одни изображения перекрывают другие, бэкграунды накладываются и часть этой прорисовки становится абсолютно ненужной? Правильно — отключать все, что не видно и не нужно.
Измерить наложение перерисовки оказывается очень просто: на своем устройстве в «Параметрах разработчика» нужно включить «Показывать превышение GPU», запустить приложение и посмотреть на экран.
Цвета View-элементов покажут, насколько у вас все хорошо (или плохо).
Свой цвет — уровень 0, «идеально»
Синий цвет — уровень 1, «нормально.
Зеленый цвет — уровень 2, „допустимо“.
Светло-красный цвет — уровень 3, „нежелательно“.
Красный цвет — уровень 4+, „не дай бог“.
Наша картинка вновь ввергла нас в ужас:
Нам пришлось снова пройтись по всей разметке и отключить background там, где он оказался лишним. Не забыли и про основной бэк приложения — одной простой строчкой:
В теме приложения выключили и его. И вот что получилось в итоге. Может и не везде идеально, но вполне допустимо. (Почти все View опустились на 3 уровня!)
Шаг 4. Кэширование — ключ к успеху
Тоже вполне очевидная вещь, которая не казалась обязательной — это кэширование. В частности (в данном случае) кэширование шрифта.
Как вы уже наверное обратили внимание, везде, включая логи, используется свой шрифт и, о (опять) ужас!, каждый раз, для каждого нового текста он подгружается заново из Assets. Каждый раз, Карл! (черным цветом — основной потом, коричневым — работа Assesnager'а).
С кэшированием до этого никто из нас не сталкивался, но тут нас выручил один хороший человек со StackOverflow и подсказал простой код:
Применив который, лично я вообще практически забыл, что такое лаги.
Шаг 5. „А это — под укроп!“
Как в анекдоте, где мужику сказали, что он получит под надел столько земли, сколько сам сможет измерить и он скакал, бежал, шел, полз и в конце изможденный снял с себя шапку и кинул на сколько смог со словами: „А это — под укроп“, так и мы стремились максимально до мельчайших деталей оптимизировать производительность.
Поэтому пришло время оптимизации кода. Конечно, то как пишется код — это уже больше дело правильной привычки, и тут можно только дать несколько общих рекомендаций (более подробно их можно найти в любой статье по программной оптимизации). Вот с чем столкнулась наша команда:
— создавайте поменьше „ненужных“ циклов. Если что-то можно сделать без них — делайте без них;
— не создавайте переменных в цикле. Лучше создать их за его пределами, а в цикле просто обновлять;
— если есть необходимость обратиться к ресурсам неоднократно (с помощью gerResources() или же просто в другой класс/массив, например, myList.get (0)) — лучше запишите полученный результат в новую переменную и используйте ее: int myItem = myList.get(0); — это тоже подарит вашему приложению миллисекунды свободного времени;
— по возможности используйте статические методы (если нет необходимости обращаться к самому классу);
— ну и классический способ: на финальном этапе программирования убирайте инкапсуляцию (геттеры и сеттеры) и обращайтесь к переменной напрямую.
Подводя итог
Уверен, что сделанные шаги не являются окончательными и всегда будет „место под укроп“, до которого мы не добрались. Всегда готов узнать о шаге №6, 7… и даже №157, если вы захотите ими поделиться в комментариях. Более того, за „науку“ буду благодарен.
А пока, резюмируем, что же нужно сделать, чтобы ваше приложение начало „летать“:
1. Измерьте производительность своего приложения и найдите источник проблемы. Может у вас это будет не шрифт, а, например, утечка памяти (включаем Memory Monitor);
2. Оптимизируйте структуру и иерархию View (включаем HierarhyViewer и здравый смысл);
3. Убираем везде все ненужные бэки, включая background приложения (в этом случае учтите, что для корректного отображения вам все равно понадобится общий бэк);
4. Смотрим на часто используемые ресурсы/загрузки/картинки/шрифты и кэшируем их;
5. Делаем оптимизацию программного кода.
В итоге, после всех этих шагов, картинка трассинга приложения стала выглядеть вот так:
задержки практически исчезли (или стали незаметны), что нас вполне устроило.
Ну и конечно, первая мысль, которая пришла ко мне в голову после всей нашей оптимизации: „Вау! Теперь же можно добавить еще больше View и Layout на основной экран!“
Наверное, каждому знакома ситуация, когда спустя недолгое время после покупки смартфон начинает работать заметно медленнее. Чаще всего от этого страдают наши родители и дети, которым мы по “наследству” передаем свои старые устройства. Сегодня мы рассмотрим несколько наиболее эффективных решений данной проблемы: от самых простых до в меру продвинутых действий.
И хотя все “иллюстрации” будут приведены для Android, но в большинстве своем все они актуальны и для других мобильных операционных систем.
Освобождаем место для системы
Для начала обратите внимание на то, сколько у вашего телефона осталось свободной памяти. Это можно сделать, зайдя в «Настройки» и там перейдя в «Хранилище». Для корректной работы системы необходимо иметь небольшой запас дискового хранилища. Если же места нет, то система пытается его выделить, освобождая свои резервы. А на это уходит то самое дополнительное время, которое мы с вами и наблюдаем, как «тормоза». Я рекомендую следить, чтобы было свободно не менее 5 Гб памяти. Чем больше, тем лучше.
Здесь мы встречаемся с первой важной проблемой, где же это место найти. Ведь все в нашем телефоне нам нужно.
Помогая ускорить работу устройств своим родителям и знакомым, я заметил много абсолютно одинаковых фотографий, сделанных «на всякий случай». Иногда бывают видеоролики, которые нужны были в моменте, а теперь просто лежат пустым грузом. Благодаря таким файлам можно высвободить иногда даже очень внушительное по объему пространство.
Ну и не забываем о возможности перекинуть данные в облако или на внешний хранитель (карту памяти, флешку или жесткий диск).
После этих действий, зачастую сразу видно, что система стала меньше «задумываться» при запуске приложений и переключении между ними.
Следующим шагом имеет смысл удалить те приложения, которыми вы не пользовались как минимум 3 недели. Память под приложения в системе имеет строго ограниченный объем, который не зависит от оставшегося места на диске. То есть бывает такое, что памяти вроде еще много, а в вверху горит значок о том, что все место кончилось. В этом случае лучше какие-нибудь программы удалить.
Здесь будьте внимательны! Удалять нужно само приложение, а не иконку на заглавном экране (проверить это можно через меню «Настройки» — «Приложения»).
Бывает и такое, что некоторые программы удалить нельзя в принципе. Тогда постарайтесь их хотя бы “отключить”. Эту функцию они сами предлагают вместо удаления.
Режим энергосбережения
Обратите особое внимание и на то, чтобы режим энергосбережения был отключен либо установлен как «оптимальный». Это также может дать заметный прирост в скорости. В попытках продлить работку аккумулятора, система может искусственно занижать частоту работы процессора. В нашем случае — это абсолютно лишнее.
Виджеты
Обычно я рекомендую отключить все, что вы используете менее раза в день. А потом, при необходимости, можно вернуть, если что-то вдруг понадобилось.
Очищаем кэш браузера и системы
Для продвинутых пользователей я лично рекомендую очистить кэш браузера и системы. Кэш это информация, которая загружается на ваш смартфон, например, при открытии любого сайта. По ходу использования такая информация копится и может достигать нескольких гигабайт. При этом никакой полезной работы вся эта куча не делает. По факту — это просто мусор, который надо время от времени вычищать.
Для начала выполним очистку в браузере. Для этого в настройках перейдем – «История» — «Очистить историю» и там нажать “Удалить данные”. За непосредственно кэш отвечает третья галочка сверху.
У приложений тоже скапливается подобный мусор, но его очистить немного сложнее. Например, в телефонах Xiaomi нужно зайти в раздел «Хранилище» — «Данные кэша» и согласится на его очистку. У других производителей для этих целей имеются специальные, вшитые в систему программы. У Самсунг, например, это «Обслуживание устройства», а у менее известных брендов «Менеджер хранилища».
Также эту функцию можно осуществить из системного меню, зажав при старте аппарата громкость вверх и кнопку включения. Там нужно войти в меню «Recovery» и выполнить функцию «Wipe Cache» и выбрать «Yes». Больше там ничего там не трогайте!
Еще один способ очистки
Эти же действия можно осуществить и установив специальные приложения из Play Market, например, «One Booster», «Booster Master» и «Ant Booster». Подобных приложений целая куча.
Однако, через системные функции будет намного надежнее. После оптимизации обязательно удалите все эти “бустеры”, так как ресурсы они жрут будь здоров. То есть, установили — почистили- удалили.
Промежуточные итоги
Так мы очистили место в общей памяти, удалили ненужные приложения и виджеты и почистили кэш. Этих действий уже достаточно, чтобы на собственном опыте ощутить значительный прирост скорости работы смартфона.
Данная процедура лично у меня занимает от 3 до 5 минут, после чего даже старенькие телефоны родителей начинают “бегать” заметно шустрее.
Далее рекомендуется выключить и включить телефон снова. Обратите внимание! Не перезагрузить, а именно выключить, а затем включить. Это очень разные процессы и только полное отключение позволяет очистить служебные области памяти.
Визуальное обнаружение «тяжелых» программ
Не менее полезно будет войти в настройки аккумулятора обратить внимание на те приложения, которые больше других нагружают систему. У меня, как видите, есть возможность скрыть системные процессы, с которыми мы сделать ничего не можем, и показывать только установленные мною приложения. В числе таких гигантов я лично заметил, например, популярную сеть Тик Ток и Фейсбук.
Автозагрузка
Также у некоторых смартфонов есть встроенный редактор автозагрузки приложений. Ну или его можно также на один раз установить из магазина приложений. Для примера можно привести «Boot Apps» или «Auto Start Manager». Таких программ тоже очень много.
Устанавливаем приложение, даем ему разрешения и в нем уже отключаем вообще все. Это позволит нам при старте системы сохранить максимальное число оперативной памяти и загружать туда только то, что действительно необходимо. Было такое, что в автозагрузку себя прописывали даже разные игры, установленные «от нечего делать». Подобный расход полезных мощностей должен быть немедленно пресечен.
Системное ограничение числа фоновых процессов
Системное ограничение числа фоновых процессов я лично трогать не рекомендую, так как всякие социальные сети уже давно стали актуальной нормой общения, и постоянная выгрузка их из памяти только добавит только лишних проблем.
Главное придерживаться разумного их количества. Восемь-десять социальных сетей в активном режиме даже современный флагман могут неслабо так нагрузить, что уж говорить о аппаратах пятилетней давности.
Однако у тех же смартфонов Xiaomi я нашел интересную функцию, позволяющую выгружать некоторые приложения из памяти. Это полезно, так как на социальные сети можно поставить запрет, а, например, на тайм киллер — нет.
Однако ставить для этих целей какие-нибудь внешние менеджеры я лично не рекомендую. Так что внимательно изучите настройки производительности своего устройства. Может там есть что-то еще удобнее.
Альтернативная память для системы
Еще один интересный прием пригодится, если вы купили актуальный, но достаточно бюджетный “китайский” телефон для своих родителей или ребенка. У меня вот как раз такой случай. Проблема тут заключается в том, что обычно в них экономят на всем, включая даже системную память. То есть она тут банально очень медленная. Но решение есть. Достаточно установить в такой смартфон любую современную карту памяти и назначить ее системной.
Сделать это очень просто, достаточно установить такую карточку в смартфон и включить его. Телефон сам спросит использовать данную карточку в виде системной памяти или просто как внешний накопитель. Выбирайте первый пункт и сами увидите насколько положительно это скажется на скорости работы.
Без подобного финта мой старый XGODY буквально ходил пешком, теперь же им вполне можно пользоваться.
Если ничего не помогло
Однако бывают ситуации, когда даже эти методы оказываются неэффективными. В этом случае поможет полный сброс устройства до заводских настроек. Обычно эта функция находится в «Настройки» — «Система» — «Сброс настроек». Предварительно обязательно сохраните все важные вам данные в облако, на флешку или в любое другое место, поскольку все это будет принудительно удалено. Сам я обычно делаю бэкап системы и переношу папку с ним на компьютер, чтобы после процесса очистки снова развернуть на систему. Но это лучше придержать на совсем уж крайний случай.
Послесловие
Уверен, при помощи приведенных простых, но безусловно важных шагов вы легко сможете ускорить не только свой смартфон, но и помочь менее опытным пользователям легко справится с подобными проблемами. Если же у вас есть собственные идеи относительно данной тематики, обязательно оставляйте их в комментариях.
В июле 2021 года увидел свет отчёт App Attention Index, который подтверждает возросшую зависимость пользователей от цифровых сервисов. Не менее интересным стал и другой результат анализа: 13 000 респондентов не готовы терпеть нестабильную работу приложений, а также воспринимают любые технические проблемы через призму репутации бренда.
И это в тот самый момент, когда мобильные устройства стали главным инструментом для выхода в интернет в России. Только в прошлом году более 70% населения страны по крайней мере один раз в месяц использовали для этого гаджет.
Мобильные приложения уже не просто часть уникального торгового предложения, но и обязательное условие выхода на рынок с точки зрения эффективного выполнения бизнес-задач. Поэтому для успешного релиза компании всё чаще уделяют время тестированию такого ПО, в частности, пристальной оценке производительности.
Поэтому мы подготовили для вас обзор трёх принципов обеспечения качества мобильных программных продуктов, а также пошагово рассказали, как внедрить их правильно.
ТЕСТИРОВАНИЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ: 3 ПРИНЦИПА
QA-стратегия для мобильного ПО, помимо тестирования ИТ-продукта, включает проверку совместимости с устройством, сервером и сетью. Предлагаем подробнее рассмотреть каждый из них в контексте обеспечения качества ПО.
Принцип №1. Производительность устройства
Первым шагом к выявлению потенциальных дефектов является определение работоспособности мобильного приложения на конкретных гаджетах. Необходимо убедиться, что тестируемое ПО стабильно функционирует на устройствах с различными параметрами.
Чем выше частота кадров (frame rate), тем реалистичнее картинка, что упрощает её восприятие для пользователя. Это напрямую связано с центральным и графическим процессорами, обеспечивающими общее функционирование устройства. Важно убедиться, что тестируемое ПО не потребляет слишком много ресурсов, ведь это помогает избежать приостановки приложения либо сбоев в работе.
Потребление памяти ― потенциальное узкое место для программного продукта. Внедрение новых функциональностей увеличивает индикатор загрузки оперативной памяти (memory usage), что может повлиять на производительность системы, а также на работу ИТ-продукта в целом.
При длительном использовании некоторые мобильные приложения также ускоряют расход заряда батареи и вызывают перегрев устройства. Поэтому QA-специалистам следует оценить эти негативные последствия и убедиться, что ПО использует необходимый заряд.
Ещё один важный аспект ― скорость. Готовы ли пользователи ждать 10 секунд, пока откроется приложение или слишком продолжительная активация скорее подтолкнёт к установке альтернативы? Всё чаще второй вариант оказывается более популярным. Поэтому так важно наверняка знать время загрузки приложения и своевременно вносить изменения при необходимости.
Проверить следует и качество взаимодействия тестируемого ПО с уже установленными программными продуктами. Чтобы это сделать, ответьте себе на следующие вопросы:
- «Остаётся ли приложение стабильным в фоновом режиме?»
- «Сохраняются ли введённые символы (буквы и знаки) при параллельном использовании нескольких приложений?»
- «Возможно ли экспортировать информацию из одного приложения в другое?»
Принцип №2. Производительность сервера
Оперативные ответы от сервера и обработка данных определяют уровень производительности системы. Задержка при отправке, получении информации увеличивает время отклика, что сказывается на общем восприятии ИТ-решения.
Более того, количество API-запросов от тестируемого приложения может вызвать перегрузку. С каждой новой введённой функциональностью увеличивается стек API-вызовов, что влияет на общую производительность. Тестирование API перед выпуском в релиз помогает минимизировать риски низкой или недостаточной производительности мобильного приложения.
Для тех случаев, когда основной сервер недоступен, стоит создать резервный для получения данных без задержек. Чтобы предотвратить потерю данных в критической ситуации, синхронизируйте отказоустойчивые и основные сервера, разработайте политику резервного копирования и следуйте ей.
Принцип №3. Производительность сети
На этом уровне проверяется работа приложения при подключении к различным сетям. Основные тестируемые параметры ― это задержка и пропускная способность.
Оценка времени отправки пакетов данных от клиента к серверу и обратно вместе с максимальным объёмом информации, которую ИТ-решение способно передать, ― это основа для стабильной производительности сети.
Моделируя 3G-, 4G- и 5G-сети, QA-эксперты могут проводить более точные проверки производительности и быть уверенными, что пользователи не столкнутся с задержками или потерей данных во время использования мобильных приложений.
УСПЕШНОЕ ТЕСТИРОВАНИЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ: ТРЕХЭТАПНЫЙ СЦЕНАРИЙ
В основе любого QA-сценария лежит тщательно разработанная стратегия тестирования. Внедрить её помогут инженеры по обеспечению качества, которые понимают логику ПО и могут дать рекомендации по повышению эффективности работы приложения.
Важно пройти следующие шаги, чтобы достичь поставленных бизнес-целей и обеспечить высокую производительность мобильного приложения.
Шаг 1. Внедрить QA на ранних этапах жизненного цикла разработки ПО
Согласно World Quality Report (Мировому отчёту по качеству) 2020-2021, 52% респондентов готовится к тестированию и проводит его уже на старте своих ИТ-проектов, что позволяет минимизировать появление дефектов производительности после выпуска продукта на рынок.
Чтобы избежать дорогостоящего исправления таких ошибок, улучшить перфоманс команды и ускорить релиз, менеджеры по обеспечению качества внедряют Agile, DevOps и тестирование shift left (проверки на начальных этапах разработки ПО).
Шаг 2. Выбрать надёжный инструментарий
Тестирование производительности подразумевает эмуляцию поведения реального пользователя.
Читайте также: